#include <suifkernel/module.h>
Class diagram for Module:

Public Members | |
| Module (SuifEnv* suif_env, const LString& moduleName = emptyLString ) | |
| virtual | ~Module () |
| virtual LString | get_module_name () const |
| Retrieves the name of a module. More... | |
| virtual Module* | clone () const = 0 |
| generates a new copy of the current instance if necessary The implementor of a subclass is responsible for overriding this method if the implementation has a unique state the default implementation returns the current instance. | |
| virtual bool | delete_me () const |
| tells the system whether an instance of this Module should be deleted after it has been executed the default implementation returns false. | |
| virtual bool | is_initialized () const |
| returns true if the method initalize() was already executed on this instance. | |
| virtual void | initialize () |
| initializes the modules. More... | |
| virtual bool | parse_command_line ( TokenStream* command_line_stream ) |
| parses the input for this Module. | |
| virtual void | execute () |
| executes the Module parse_command_line should be called before this method is invoked. | |
| virtual SuifEnv* | get_suif_env () const |
| virtual bool | supports_interface ( const LString &interface_name ) const |
| Interface required for the SUIF interface support mechanism. More... | |
| virtual Address | get_interface ( const LString &interface_name ) const |
| virtual void | get_supported_interface_list (list<LString> &llist) const |
| write the list of interfaces this module supports to the llist. | |
| virtual void | interface_registered (const LString &producer_module_name, const LString &interface_name) |
| These are callbacks that the module system will give when a new module registers its support for an interface. | |
| virtual void | interface_object_created (Module *producer_module, const LString &interface_name) |
| virtual void | interface_object_destructed (Module *producer_module, const LString &interface_name) |
| void | import_module (const char* module_name) |
| virtual String | get_description () const |
| get the module description. | |
| virtual String | get_usage () const |
Protected Members | |
| virtual void | set_interface ( const LString &interface_name, Address interface) |
| SuifEnv* | _suif_env |
| LString | _module_name |
| OptionLiteral* | _command_name |
| OptionList* | _command_line |
| OptionSelection* | _flags |
| OptionLiteral* | _help_flag |
| suif_hash_map<LString, Address>* | _interfaces |
Friends | |
| class | ModuleSubSystem |
[virtual]
[virtual]Retrieves the name of a module.
This name must be unique for every kind of Module. (it may be called before calling the initialize method)
Reimplemented in TestWalkerModule, and TestCloneModule.
[pure virtual]generates a new copy of the current instance if necessary The implementor of a subclass is responsible for overriding this method if the implementation has a unique state the default implementation returns the current instance.
Reimplemented in XLoadModule, walker_based_module, VtblModule, Vtbl, VirtualTests, ValidateSuifPass, UnownedPass, UnconvertFromFortranForm, TypeCheckerPass, TypeBuilderModule, TimeModule, TestWalkerModule, TestCloneModule, sup_Pass, SuifPrinterModule, SuifModule, SuifClonerModule, SuifCFGraphPass, SuifCFGraphBuilderModule, StructPaddingPass, StripAnnotesPass, SimpleModule, SetAddrTakenPass, SBrowserModule, SaveModule, S2CPass, RequireProcedureReturns, RequireModule, RepeatValueBlockBuilderPass, RemoveTrashPass, RemoveIfAndLoopPass, RemoveExplicitLoopLabels, PrintSuifCFGraphPass, PrintModule, PrintDotSuifCFGraphPass, PrintCallGraphPass, print_pass, PipelinerDispatchPass, Pipeliner, PipelinablePass, Pass, PaddingPass, OsuifTypeBuilderModule, OsuifModule, OsuifextensionModule, One2MultiArrayExpressionPass, NormalizeProcedureReturns, NonConstBoundDismantlerPass, NodeCount, NameAllSymbolsPass, MultiDimArrayDismantlerPass, md_Pass, MCPrintStyleModule, MarkGuardedFors, MarkEntryPointsPass, LoweringPass, Lowering, LocationModule, LoadExpressionDismantlerPass, ListModulesModule, ListInterfacesModule, J2sModule, J2sClosurePass, j2s_Program, j2s_Pass, IputilsModule, InstancefieldslayoutModule, InstanceFieldsLayoutDriver, InlinePass, ImportModule, IfConditionsToBinaryExprs, IdPrinter, GuardAllFors, globalize_class_variable_symbols_pass, globalize_class_method_symbols_pass, globalize_class_method_symbols_pass, GCSymbolTablePass, FoldTable, FoldStatementsPass, FlattenStatementListsPass, FixupExplicitLoopLabels, FieldBuilderPass, EcrModule, EcrAliasPass, Driver, DismantleStructuredReturns, DismantleStmtsWithJumpsInside, DismantleMultiEntryScopeStatements, DismantleEmptyScopeStatements, DismantleCppVTablesPass, DismantleCallArguments, dismantle_if_statements_pass, dismantle_if_statements_pass, DeadcodePass, CreateSuifComplexInputPass, CPrintStyleModule, CppOsuifTypeBuilderModule, CppOsuifModule, CountSuifObjectsPass, CountSuifObjectPass, CopyPropPass, ConvertToFortranForm, convertsuif2bto1_pass, convertsuif1to2b, ConstantFolderPass, CombinedPassForCpp, CombinedPass, CollectWalkerPass, CiModule, CiCheckElimPass, CIAnnoteStatsPass, CFor2ForPass, CfeModule, CallExpressionDismantlerPass, BuildCppVTablesPass, build_single_vtable_pass, BasicModule, AvoidLabelCollisions, AvoidFileScopeCollisions, AvoidExternCollisions, ArrayReferenceDismantlerPass, AddStatementListsToProcs, AddProcedureEndLabelsPass, and AddExplicitLoopLabels.
[virtual]tells the system whether an instance of this Module should be deleted after it has been executed the default implementation returns false.
Reimplemented in ValidateSuifPass, TimeModule, SimpleModule, S2CPass, GCSymbolTablePass, Driver, and CountSuifObjectPass.
[virtual]returns true if the method initalize() was already executed on this instance.
[virtual]initializes the modules.
This method must/will be called before a call to parse_command_line or execute
Reimplemented in XLoadModule, walker_based_module, VtblSlotCountAnnotePass, VtblSlotAnnotePass, VtblPass, VtblModule, VtblAnnotePass, Vtbl, ValidateSuifPass, UnconvertFromFortranForm, TypeBuilderModule, sup_Pass, SuifPrinterModule, SuifModule, SuifClonerModule, SuifCFGraphPass, SuifCFGraphBuilderModule, StripAnnotesPass, StaticMethodCallStatementLoweringPass, StaticMethodCallExpressionLoweringPass, SetAddrTakenPass, SBrowserModule, SaveModule, S2CPass, RequireProcedureReturns, RequireModule, RepeatValueBlockBuilderPass, RemoveIfAndLoopPass, RemoveExplicitLoopLabels, PrintModule, Printmetaloader, Printloader, PrintDotSuifCFGraphPass, Printclosure, PrintCallGraphPass, PipelinablePass, Pass, PaddingPass, OsuifTypeBuilderModule, OsuifModule, OsuifextensionModule, One2MultiArrayExpressionPass, NormalizeProcedureReturns, NonConstBoundDismantlerPass, MultiDimArrayDismantlerPass, md_Pass, MCPrintStyleModule, MarkGuardedFors, LoweringPass, Lowering, LocationModule, LocalCopyPropPass, LocalConstPropPass, LoadExpressionDismantlerPass, ListModulesModule, ListInterfacesModule, JavaInstanceMethodCallExpressionLoweringPass, J2sModule, J2sClosurePass, j2s_Program, j2s_Pass, j2s_FrontEndPass, j2s_FrontEndPass, IputilsModule, InstanceMethodCallStatementLoweringPass, InstanceMethodCallExpressionLoweringPass, InstanceFieldsLayoutPass, InstanceFieldsLayoutOffsetAnnotePass, InstancefieldslayoutModule, InstanceFieldsLayoutDriver, ImportModule, IfConditionsToBinaryExprs, IdPrinter, HasClinitPass, GuardAllFors, GCSymbolTablePass, FrontendPass, FoldTable, FoldStatementsPass, FlattenStatementListsPass, FixupExplicitLoopLabels, FieldBuilderPass, EcrModule, EcrAliasPass, Driver, DismantleStructuredReturns, DismantleStmtsWithJumpsInside, DismantleMultiEntryScopeStatements, DismantleEmptyScopeStatements, DismantleCallArguments, DefinitionBlockPass, DeadcodePass, CPrintStyleModule, CppOsuifTypeBuilderModule, CppOsuifModule, CountSuifObjectPass, CopyPropPass, ConvertToFortranForm, convertsuif2bto1_pass, convertsuif1to2b, CollectWalkerPass, ClinitElimPass, CiModule, CiCheckElimPass, CIAnnoteStatsPass, CFor2ForPass, CfeModule, CallExpressionDismantlerPass, BasicModule, ArrayReferenceDismantlerPass, AddStatementListsToProcs, AddProcedureEndLabelsPass, and AddExplicitLoopLabels.
[virtual]parses the input for this Module.
Reimplemented in VtblSlotCountAnnotePass, VtblSlotAnnotePass, VtblPass, VtblAnnotePass, Vtbl, sup_Pass, StaticMethodCallStatementLoweringPass, StaticMethodCallExpressionLoweringPass, SimpleModule, Printclosure, md_Pass, LoweringPass, Lowering, LocalCopyPropPass, LocalConstPropPass, JavaInstanceMethodCallExpressionLoweringPass, J2sClosurePass, j2s_Program, j2s_Pass, j2s_FrontEndPass, j2s_FrontEndPass, InstanceMethodCallStatementLoweringPass, InstanceMethodCallExpressionLoweringPass, InstanceFieldsLayoutPass, InstanceFieldsLayoutOffsetAnnotePass, InstanceFieldsLayoutDriver, HasClinitPass, Driver, DefinitionBlockPass, CollectWalkerPass, ClinitElimPass, CiCheckElimPass, and CIAnnoteStatsPass.
[virtual]executes the Module parse_command_line should be called before this method is invoked.
Reimplemented in XLoadModule, Vtbl, VirtualTests, ValidateSuifPass, TimeModule, TestWalkerModule, TestCloneModule, SuifPrinterModule, SimpleModule, SBrowserModule, SaveModule, RequireModule, PrintModule, Printmetaloader, Printloader, Printclosure, PipelinerDispatchPass, Pipeliner, PipelinablePass, Pass, NodeCount, Lowering, LocationModule, ListModulesModule, ListInterfacesModule, j2s_Program, InstanceFieldsLayoutDriver, ImportModule, GCSymbolTablePass, FrontendPass, Driver, and CountSuifObjectPass.
[virtual]
[virtual]Interface required for the SUIF interface support mechanism.
This can return pointers to anything. Frequently it will be a pointer to a function to call
[virtual]
[virtual] [virtual]These are callbacks that the module system will give when a new module registers its support for an interface.
[virtual]
Reimplemented in SuifPrinterModule, and EcrAliasPass.
[virtual]
[virtual] [virtual]
[protected, virtual]
[friend]
[protected]
[protected]
[protected]
[protected]
[protected]
[protected]
[protected]
written by Dimitri van Heesch, © 1997-1999