#include <suifpasses/passes.h>
Inheritance diagram for PipelinablePass:
Public Methods | |
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.
|
|
|
May return "this" if the pass has no state.
Reimplemented from Pass.
Reimplemented in AddExplicitLoopLabels, AddProcedureEndLabelsPass, AddStatementListsToProcs, ArrayReferenceDismantlerPass, AvoidLabelCollisions, CFor2ForPass, CallExpressionDismantlerPass, ConstantFolderPass, ConvertToFortranForm, CopyPropPass, CountCallsWithIteratorPass, CountCallsWithWalkerPass, DeadcodePass, DismantleCallArguments, DismantleEmptyScopeStatements, DismantleMultiEntryScopeStatements, DismantleStmtsWithJumpsInside, FieldBuilderPass, FixupExplicitLoopLabels, FlattenStatementListsPass, FoldStatementsPass, GuardAllFors, IfConditionsToBinaryExprs, InlinePass, LoadExpressionDismantlerPass, MarkGuardedFors, NormalizeProcedureReturns, One2MultiArrayExpressionPass, PipelinerDispatchPass, PrintDotSuifCFGraphPass, PrintSuifCFGraphPass, RemoveExplicitLoopLabels, RemoveIfAndLoopPass, RequireProcedureReturns, SuifCFGraphPass, UnconvertFromFortranForm, build_single_vtable_pass, dismantle_if_statements_pass, dismantle_if_statements_pass, globalize_class_method_symbols_pass, globalize_class_method_symbols_pass, globalize_class_variable_symbols_pass, iterator_pass, print_pass, walker_based_module, and walker_pass.
|
Override this if computation is to be applied to a file_block.
The default is empty.
Reimplemented in PipelinerDispatchPass, build_single_vtable_pass, globalize_class_method_symbols_pass, globalize_class_method_symbols_pass, and globalize_class_variable_symbols_pass.
|
Override this if computation is to be applied to a file_set_block.
The default is empty.
Reimplemented from Pass.
Reimplemented in PipelinerDispatchPass, globalize_class_method_symbols_pass, and print_pass.
|
Override this if computation is to be applied to a procedure_definition.
The default is empty.
Reimplemented in AddExplicitLoopLabels, AddProcedureEndLabelsPass, AddStatementListsToProcs, ArrayReferenceDismantlerPass, AvoidLabelCollisions, CFor2ForPass, CallExpressionDismantlerPass, ConstantFolderPass, ConvertToFortranForm, CopyPropPass, CountCallsWithIteratorPass, CountCallsWithWalkerPass, DeadcodePass, DismantleCallArguments, DismantleEmptyScopeStatements, DismantleMultiEntryScopeStatements, DismantleStmtsWithJumpsInside, FieldBuilderPass, FixupExplicitLoopLabels, FlattenStatementListsPass, FoldStatementsPass, GuardAllFors, IfConditionsToBinaryExprs, InlinePass, LoadExpressionDismantlerPass, MarkGuardedFors, NormalizeProcedureReturns, One2MultiArrayExpressionPass, PipelinerDispatchPass, PrintDotSuifCFGraphPass, PrintSuifCFGraphPass, RemoveExplicitLoopLabels, RemoveIfAndLoopPass, RequireProcedureReturns, SuifCFGraphPass, UnconvertFromFortranForm, dismantle_if_statements_pass, dismantle_if_statements_pass, globalize_class_method_symbols_pass, iterator_pass, walker_based_module, and walker_pass.
|
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.
|
will execute the Pass as if it is not pipelined.
Reimplemented from Pass.
Reimplemented in PipelinerDispatchPass.
|
Override this if computation is to be executed after all processing is done.
The default is empty.
Reimplemented in CFor2ForPass.
|
Initialize the pass.
Reimplemented from Pass.
Reimplemented in AddExplicitLoopLabels, AddProcedureEndLabelsPass, AddStatementListsToProcs, ArrayReferenceDismantlerPass, CFor2ForPass, CallExpressionDismantlerPass, ConvertToFortranForm, CopyPropPass, DeadcodePass, DismantleCallArguments, DismantleEmptyScopeStatements, DismantleMultiEntryScopeStatements, DismantleStmtsWithJumpsInside, FieldBuilderPass, FixupExplicitLoopLabels, FlattenStatementListsPass, FoldStatementsPass, GuardAllFors, IfConditionsToBinaryExprs, LoadExpressionDismantlerPass, MarkGuardedFors, NormalizeProcedureReturns, One2MultiArrayExpressionPass, PrintDotSuifCFGraphPass, RemoveExplicitLoopLabels, RemoveIfAndLoopPass, RequireProcedureReturns, SuifCFGraphPass, UnconvertFromFortranForm, and walker_based_module.