#include <suifpasses/passes.h>
Class diagram for PipelinablePass:

Public Members | |
| PipelinablePass ( SuifEnv* suif_env, const LString &name ) | |
| virtual | ~PipelinablePass () = 0 |
| virtual void | initialize () |
| Initialize the pass. | |
| virtual void | execute () |
| will execute the Pass as if it is not pipelined. | |
| virtual Module* | clone () const = 0 |
| May return "this" if the pass has no state. | |
| virtual void | do_file_set_block ( FileSetBlock* file_set_block ) |
| Override this if computation is to be applied to a file_set_block. More... | |
| virtual void | do_file_block ( FileBlock* file_block ) |
| Override this if computation is to be applied to a file_block. More... | |
| virtual void | do_procedure_definition ( ProcedureDefinition* proc_def ) |
| Override this if computation is to be applied to a procedure_definition. More... | |
| virtual void | do_variable_definition ( VariableDefinition* var_def ) |
| Override this if computation is to be applied to a variable_definition. More... | |
| virtual void | finalize () |
| Override this if computation is to be executed after all processing is done. More... | |
In the pipelined execution mode, the system will apply all the computations from the PipelinablePasses to a procedure before moving to another. This execution order should have a better data locality.
[pure virtual]
[virtual]Initialize the pass.
Reimplemented from Module.
Reimplemented in walker_based_module, UnconvertFromFortranForm, SuifCFGraphPass, RequireProcedureReturns, RemoveIfAndLoopPass, RemoveExplicitLoopLabels, PrintDotSuifCFGraphPass, One2MultiArrayExpressionPass, NormalizeProcedureReturns, MarkGuardedFors, LoadExpressionDismantlerPass, IfConditionsToBinaryExprs, GuardAllFors, FoldStatementsPass, FlattenStatementListsPass, FixupExplicitLoopLabels, FieldBuilderPass, DismantleStmtsWithJumpsInside, DismantleMultiEntryScopeStatements, DismantleEmptyScopeStatements, DismantleCallArguments, DeadcodePass, CopyPropPass, ConvertToFortranForm, CFor2ForPass, CallExpressionDismantlerPass, ArrayReferenceDismantlerPass, AddStatementListsToProcs, AddProcedureEndLabelsPass, and AddExplicitLoopLabels.
[virtual]will execute the Pass as if it is not pipelined.
Reimplemented from Module.
Reimplemented in PipelinerDispatchPass.
[pure virtual]May return "this" if the pass has no state.
Reimplemented from Module.
Reimplemented in walker_based_module, UnconvertFromFortranForm, SuifCFGraphPass, RequireProcedureReturns, RemoveIfAndLoopPass, RemoveExplicitLoopLabels, PrintSuifCFGraphPass, PrintDotSuifCFGraphPass, print_pass, PipelinerDispatchPass, One2MultiArrayExpressionPass, NormalizeProcedureReturns, MarkGuardedFors, MarkEntryPointsPass, LoadExpressionDismantlerPass, InlinePass, IfConditionsToBinaryExprs, GuardAllFors, globalize_class_variable_symbols_pass, globalize_class_method_symbols_pass, globalize_class_method_symbols_pass, FoldStatementsPass, FlattenStatementListsPass, FixupExplicitLoopLabels, FieldBuilderPass, DismantleStmtsWithJumpsInside, DismantleMultiEntryScopeStatements, DismantleEmptyScopeStatements, DismantleCallArguments, dismantle_if_statements_pass, dismantle_if_statements_pass, DeadcodePass, CopyPropPass, ConvertToFortranForm, ConstantFolderPass, CFor2ForPass, CallExpressionDismantlerPass, build_single_vtable_pass, AvoidLabelCollisions, ArrayReferenceDismantlerPass, AddStatementListsToProcs, AddProcedureEndLabelsPass, and AddExplicitLoopLabels.
[virtual]Override this if computation is to be applied to a file_set_block.
The default is empty.
Reimplemented from Pass.
Reimplemented in print_pass, PipelinerDispatchPass, and globalize_class_method_symbols_pass.
[virtual]Override this if computation is to be applied to a file_block.
The default is empty.
Reimplemented in PipelinerDispatchPass, globalize_class_variable_symbols_pass, globalize_class_method_symbols_pass, globalize_class_method_symbols_pass, and build_single_vtable_pass.
[virtual]Override this if computation is to be applied to a procedure_definition.
The default is empty.
Reimplemented in walker_based_module, UnconvertFromFortranForm, SuifCFGraphPass, RequireProcedureReturns, RemoveIfAndLoopPass, RemoveExplicitLoopLabels, PrintSuifCFGraphPass, PrintDotSuifCFGraphPass, PipelinerDispatchPass, One2MultiArrayExpressionPass, NormalizeProcedureReturns, MarkGuardedFors, MarkEntryPointsPass, LoadExpressionDismantlerPass, InlinePass, IfConditionsToBinaryExprs, GuardAllFors, globalize_class_method_symbols_pass, FoldStatementsPass, FlattenStatementListsPass, FixupExplicitLoopLabels, FieldBuilderPass, DismantleStmtsWithJumpsInside, DismantleMultiEntryScopeStatements, DismantleEmptyScopeStatements, DismantleCallArguments, dismantle_if_statements_pass, dismantle_if_statements_pass, DeadcodePass, CopyPropPass, ConvertToFortranForm, ConstantFolderPass, CFor2ForPass, CallExpressionDismantlerPass, AvoidLabelCollisions, ArrayReferenceDismantlerPass, AddStatementListsToProcs, AddProcedureEndLabelsPass, and AddExplicitLoopLabels.
[virtual]Override this if computation is to be applied to a variable_definition.
The default is empty.
Reimplemented in PipelinerDispatchPass, and globalize_class_method_symbols_pass.
[virtual]Override this if computation is to be executed after all processing is done.
The default is empty.
Reimplemented in CFor2ForPass.
written by Dimitri van Heesch, © 1997-1999