llir-opt
0.0.1
Low-Level Post-Link Optimiser for OCaml and C
|
#include <core/pass.h>
Public Member Functions | |
Pass (PassManager *passManager) | |
virtual | ~Pass () |
virtual bool | Run (Prog &prog)=0 |
virtual const char * | GetPassName () const =0 |
template<typename T > | |
T * | getAnalysis () |
Returns an available analysis. | |
Protected Member Functions | |
const PassConfig & | GetConfig () const |
Returns a reference to the configuration. | |
const Target * | GetTarget () const |
Returns a reference to the target. | |
Protected Attributes | |
PassManager * | passManager_ |
Pass manager scheduling this pass. | |
Abstract base class for program-altering passes.
Pass::Pass | ( | PassManager * | passManager | ) |
Pass initialisation.
|
virtual |
Pass cleanup.
|
pure virtual |
Returns the name of the pass.
Implemented in TailRecElimPass, UndefElimPass, CamlAllocInlinerPass, BypassPhiPass, CamlGlobalSimplifyPass, SpecialisePass, LocalizeSelectPass, PeepholePass, AtomSimplifyPass, ConstGlobalPass, EliminateSelectPass, InlinerPass, LinkPass, MemoryToRegisterPass, MergeStoresPass, PreEvalPass, StackObjectElimPass, StoreToLoadPass, CamlAssignPass, CondSimplifyPass, DeadDataElimPass, DeadStorePass, DedupBlockPass, GlobalForwardPass, LibCSimplifyPass, ObjectSplitPass, PhiTautPass, PointsToAnalysis, SimplifyCfgPass, SimplifyTrampolinePass, UnusedArgPass, ValueNumberingPass, CodeLayoutPass, DeadCodeElimPass, DeadFuncElimPass, DedupConstPass, EliminateTagsPass, LinearisePass, MoveElimPass, MovePushPass, SCCPPass, and AllocSizePass.
|
pure virtual |
Runs the pass on a program.
Implemented in TailRecElimPass, UndefElimPass, CamlAllocInlinerPass, BypassPhiPass, CamlGlobalSimplifyPass, SpecialisePass, LocalizeSelectPass, PeepholePass, AtomSimplifyPass, ConstGlobalPass, EliminateSelectPass, InlinerPass, LinkPass, MemoryToRegisterPass, MergeStoresPass, PreEvalPass, StackObjectElimPass, StoreToLoadPass, CamlAssignPass, CondSimplifyPass, DeadDataElimPass, DeadStorePass, DedupBlockPass, GlobalForwardPass, LibCSimplifyPass, ObjectSplitPass, PhiTautPass, PointsToAnalysis, SimplifyCfgPass, SimplifyTrampolinePass, UnusedArgPass, ValueNumberingPass, CodeLayoutPass, DeadCodeElimPass, DeadFuncElimPass, DedupConstPass, EliminateTagsPass, LinearisePass, MoveElimPass, MovePushPass, SCCPPass, and AllocSizePass.