Main Page   Class Hierarchy   Compound List   File List   Compound Members   File Members  

Pass Class Reference

A Pass is a Module to be applied to the current FileSetBlock in the suif_env. More...

#include <suifpasses/passes.h>

Inheritance diagram for Pass:

Module AvoidExternCollisions AvoidFileScopeCollisions BuildCppVTablesPass CollectWalkerPass CombinedPass CombinedPassForCpp convertsuif2bto1_pass DismantleCppVTablesPass DismantleStructuredReturns LoweringPass MultiDimArrayDismantlerPass NameAllSymbolsPass NonConstBoundDismantlerPass PaddingPass PipelinablePass RemoveTrashPass RepeatValueBlockBuilderPass S2CPass SetAddrTakenPass StripAnnotesPass StructPaddingPass TypeCheckerPass UnownedPass List of all members.

Public Methods

virtual void initialize ()
 Initialize the pass.

virtual void execute ()
 the default implementation invokes the method do_file_set_block.

virtual Moduleclone () const = 0
 May return "this" if the pass has no state.

virtual void do_file_set_block ( FileSetBlock* file_set_block ) = 0
 your analysis or optimization goes here.


Protected Methods

 Pass ( SuifEnv* suif_env, const LString &name )
virtual ~Pass ()


Detailed Description

A Pass is a Module to be applied to the current FileSetBlock in the suif_env.


Constructor & Destructor Documentation

Pass::Pass ( SuifEnv * suif_env,
const LString & name) [protected]

Pass::~Pass () [protected, virtual]


Member Function Documentation

Module * Pass::clone ( void) const [inline, pure virtual]

May return "this" if the pass has no state.

Reimplemented from Module.

Reimplemented in AddExplicitLoopLabels, AddProcedureEndLabelsPass, AddStatementListsToProcs, ArrayReferenceDismantlerPass, AvoidExternCollisions, AvoidFileScopeCollisions, AvoidLabelCollisions, BuildCppVTablesPass, CFor2ForPass, CIAnnoteStatsPass, CallExpressionDismantlerPass, CiCheckElimPass, CollectWalkerPass, CombinedPass, CombinedPassForCpp, ConstantFolderPass, ConvertToFortranForm, CopyPropPass, CountCallsWithIteratorPass, CountCallsWithWalkerPass, DeadcodePass, DismantleCallArguments, DismantleCppVTablesPass, DismantleEmptyScopeStatements, DismantleMultiEntryScopeStatements, DismantleStmtsWithJumpsInside, DismantleStructuredReturns, FieldBuilderPass, FixupExplicitLoopLabels, FlattenStatementListsPass, FoldStatementsPass, GuardAllFors, IfConditionsToBinaryExprs, InlinePass, LoadExpressionDismantlerPass, LoweringPass, MarkGuardedFors, MultiDimArrayDismantlerPass, NameAllSymbolsPass, NonConstBoundDismantlerPass, NormalizeProcedureReturns, One2MultiArrayExpressionPass, PaddingPass, PipelinablePass, PipelinerDispatchPass, PrintDotSuifCFGraphPass, PrintSuifCFGraphPass, RemoveExplicitLoopLabels, RemoveIfAndLoopPass, RemoveTrashPass, RepeatValueBlockBuilderPass, RequireProcedureReturns, S2CPass, SetAddrTakenPass, StripAnnotesPass, StructPaddingPass, SuifCFGraphPass, TypeCheckerPass, UnconvertFromFortranForm, UnownedPass, build_single_vtable_pass, convertsuif2bto1_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.

void Pass::do_file_set_block ( FileSetBlock * file_set_block) [inline, pure virtual]

your analysis or optimization goes here.

Reimplemented in AvoidExternCollisions, AvoidFileScopeCollisions, BuildCppVTablesPass, CollectWalkerPass, CombinedPass, CombinedPassForCpp, DismantleCppVTablesPass, DismantleStructuredReturns, LoweringPass, MultiDimArrayDismantlerPass, NameAllSymbolsPass, NonConstBoundDismantlerPass, PaddingPass, PipelinablePass, PipelinerDispatchPass, RemoveTrashPass, RepeatValueBlockBuilderPass, S2CPass, SetAddrTakenPass, StripAnnotesPass, StructPaddingPass, TypeCheckerPass, UnownedPass, convertsuif2bto1_pass, globalize_class_method_symbols_pass, and print_pass.

void Pass::execute ( void) [inline, virtual]

the default implementation invokes the method do_file_set_block.

Reimplemented from Module.

Reimplemented in PipelinablePass, and PipelinerDispatchPass.

void Pass::initialize ( void) [inline, virtual]

Initialize the pass.

Reimplemented from Module.

Reimplemented in AddExplicitLoopLabels, AddProcedureEndLabelsPass, AddStatementListsToProcs, ArrayReferenceDismantlerPass, CFor2ForPass, CIAnnoteStatsPass, CallExpressionDismantlerPass, CiCheckElimPass, ClinitElimPass, CollectWalkerPass, ConvertToFortranForm, CopyPropPass, DeadcodePass, DefinitionBlockPass, DismantleCallArguments, DismantleEmptyScopeStatements, DismantleMultiEntryScopeStatements, DismantleStmtsWithJumpsInside, DismantleStructuredReturns, FieldBuilderPass, FixupExplicitLoopLabels, FlattenStatementListsPass, FoldStatementsPass, GuardAllFors, HasClinitPass, IfConditionsToBinaryExprs, InstanceFieldsLayoutOffsetAnnotePass, InstanceFieldsLayoutPass, InstanceMethodCallExpressionLoweringPass, InstanceMethodCallStatementLoweringPass, JavaInstanceMethodCallExpressionLoweringPass, LoadExpressionDismantlerPass, LocalConstPropPass, LocalCopyPropPass, LoweringPass, MarkGuardedFors, MultiDimArrayDismantlerPass, NonConstBoundDismantlerPass, NormalizeProcedureReturns, One2MultiArrayExpressionPass, PaddingPass, PipelinablePass, PrintDotSuifCFGraphPass, RemoveExplicitLoopLabels, RemoveIfAndLoopPass, RepeatValueBlockBuilderPass, RequireProcedureReturns, S2CPass, SetAddrTakenPass, StaticMethodCallExpressionLoweringPass, StaticMethodCallStatementLoweringPass, StripAnnotesPass, SuifCFGraphPass, UnconvertFromFortranForm, VtblAnnotePass, VtblPass, VtblSlotAnnotePass, VtblSlotCountAnnotePass, convertsuif2bto1_pass, and walker_based_module.


The documentation for this class was generated from the following files:
Generated at Mon Jul 31 13:44:19 2000 for NCI SUIF by doxygen 1.1.2 written by Dimitri van Heesch, © 1997-2000