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_pass walker_based_module iterator_pass RemoveIfAndLoopPass PipelinerDispatchPass One2MultiArrayExpressionPass InlinePass FlattenStatementListsPass FieldBuilderPass CountCallsWithWalkerPass CountCallsWithIteratorPass CallExpressionDismantlerPass CFor2ForPass AvoidLabelCollisions AddProcedureEndLabelsPass

List of all members.

Public Members


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::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_pass, walker_based_module, RemoveIfAndLoopPass, PipelinerDispatchPass, One2MultiArrayExpressionPass, iterator_pass, InlinePass, FlattenStatementListsPass, FieldBuilderPass, CountCallsWithWalkerPass, CountCallsWithIteratorPass, CFor2ForPass, CallExpressionDismantlerPass, AvoidLabelCollisions and AddProcedureEndLabelsPass.

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

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.

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_pass, walker_based_module, RemoveIfAndLoopPass, PipelinerDispatchPass, One2MultiArrayExpressionPass, iterator_pass, InlinePass, FlattenStatementListsPass, FieldBuilderPass, CountCallsWithWalkerPass, CountCallsWithIteratorPass, CFor2ForPass, CallExpressionDismantlerPass, AvoidLabelCollisions and AddProcedureEndLabelsPass.

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.

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 file:
Generated at Mon Nov 22 19:43:39 1999 for NCI SUIF by doxygen  written by Dimitri van Heesch, © 1997-1999