Class Hierarchy   Compound List   File List   Header Files   Compound Members   File Members  

PipelinablePass Class Reference

A Pass is Pipelinable if its computation can be applied to each procedure independently. More...

#include <suifpasses/passes.h>

Class diagram for PipelinablePass:

Pass Module walker_based_module print_pass globalize_class_variable_symbols_pass globalize_class_method_symbols_pass dismantle_if_statements_pass build_single_vtable_pass UnconvertFromFortranForm SuifCFGraphPass RequireProcedureReturns RemoveIfAndLoopPass RemoveExplicitLoopLabels PrintSuifCFGraphPass PrintDotSuifCFGraphPass PipelinerDispatchPass One2MultiArrayExpressionPass NormalizeProcedureReturns MarkGuardedFors MarkEntryPointsPass LoadExpressionDismantlerPass InlinePass IfConditionsToBinaryExprs GuardAllFors FoldStatementsPass FlattenStatementListsPass FixupExplicitLoopLabels FieldBuilderPass DismantleStmtsWithJumpsInside DismantleMultiEntryScopeStatements DismantleEmptyScopeStatements DismantleCallArguments DeadcodePass CopyPropPass ConvertToFortranForm ConstantFolderPass CallExpressionDismantlerPass CFor2ForPass AvoidLabelCollisions ArrayReferenceDismantlerPass AddStatementListsToProcs AddProcedureEndLabelsPass AddExplicitLoopLabels

List of all members.


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...


Detailed Description

A Pass is Pipelinable if its computation can be applied to each procedure independently.

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.


Member Function Documentation

PipelinablePass::PipelinablePass (SuifEnv * suif_env, const LString & name)

virtual PipelinablePass::~PipelinablePass () [pure virtual]

virtual void PipelinablePass::initialize (void) [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 void PipelinablePass::execute (void) [virtual]

will execute the Pass as if it is not pipelined.

Reimplemented from Module.

Reimplemented in PipelinerDispatchPass.

virtual Module * PipelinablePass::clone (void) const [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 void PipelinablePass::do_file_set_block (FileSetBlock * file_set_block) [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 void PipelinablePass::do_file_block (FileBlock * file_block) [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 void PipelinablePass::do_procedure_definition (ProcedureDefinition * proc_def) [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 void PipelinablePass::do_variable_definition (VariableDefinition * var_def) [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 void PipelinablePass::finalize () [virtual]

Override this if computation is to be executed after all processing is done.

The default is empty.

Reimplemented in CFor2ForPass.


The documentation for this class was generated from the following files:
Generated at Wed Apr 25 17:35:02 2001 for NCI SUIF by doxygen  written by Dimitri van Heesch, © 1997-1999