CACAO
Public Member Functions | Private Member Functions | Private Attributes
cacao::jit::compiler2::Pass Class Referenceabstract

Pass superclass All compiler passes should inheritate this class. More...

Inheritance diagram for cacao::jit::compiler2::Pass:
cacao::jit::compiler2::BasicBlockPrinterPass cacao::jit::compiler2::BasicBlockSchedulingPass cacao::jit::compiler2::CFGConstructionPass cacao::jit::compiler2::CFGMetaPass cacao::jit::compiler2::CodeGenPass cacao::jit::compiler2::ConstantPropagationPass cacao::jit::compiler2::DeadCodeEliminationPass cacao::jit::compiler2::DisassemblerPass cacao::jit::compiler2::DominatorPass cacao::jit::compiler2::DomTreePrinterPass cacao::jit::compiler2::ExamplePass cacao::jit::compiler2::GlobalSchedulePrinterPass< _T > cacao::jit::compiler2::GlobalValueNumberingPass cacao::jit::compiler2::ICMDPrinterPass cacao::jit::compiler2::InstructionMetaPass cacao::jit::compiler2::LinearScanAllocatorPass cacao::jit::compiler2::LivetimeAnalysisPass cacao::jit::compiler2::LoopPassBase< _T > cacao::jit::compiler2::LoopTreePrinterPass cacao::jit::compiler2::MachineInstructionPrinterPass cacao::jit::compiler2::MachineInstructionSchedulingPass cacao::jit::compiler2::ObjectFileWriterPass cacao::jit::compiler2::ParserPass cacao::jit::compiler2::RegisterAllocatorPass cacao::jit::compiler2::ScheduleClickPass cacao::jit::compiler2::ScheduleEarlyPass cacao::jit::compiler2::ScheduleLatePass cacao::jit::compiler2::SSAConstructionPass cacao::jit::compiler2::SSAPrinterPass cacao::jit::compiler2::StackAnalysisPass cacao::jit::compiler2::VerifierPass

Public Member Functions

 Pass ()
 
void set_PassManager (PassManager *PM)
 
template<class _PassClass >
_PassClass * get_Pass () const
 Get the result of a previous compiler pass. More...
 
template<class _PassClass >
_PassClass * get_Pass_if_available () const
 Get the result of a previous compiler pass. More...
 
virtual PassUsageget_PassUsage (PassUsage &PU) const
 Set the requirements for the pass. More...
 
virtual void initialize ()
 Initialize the Pass. More...
 
virtual void finalize ()
 Finalize the Pass. More...
 
virtual bool run (JITData &JD)=0
 Run the Pass. More...
 
virtual bool verify () const
 Verify the Result. More...
 
virtual ~Pass ()
 Destructor. More...
 

Private Member Functions

bool allowed_to_use_result (char &id) const
 

Private Attributes

PassManagerpm
 

Detailed Description

Pass superclass All compiler passes should inheritate this class.

TODO: more info

Definition at line 48 of file Pass.hpp.

Constructor & Destructor Documentation

cacao::jit::compiler2::Pass::Pass ( )
inline

Definition at line 53 of file Pass.hpp.

virtual cacao::jit::compiler2::Pass::~Pass ( )
inlinevirtual

Destructor.

Definition at line 126 of file Pass.hpp.

Member Function Documentation

bool cacao::jit::compiler2::Pass::allowed_to_use_result ( char &  id) const
private

Definition at line 33 of file Pass.cpp.

virtual void cacao::jit::compiler2::Pass::finalize ( )
inlinevirtual

Finalize the Pass.

This method is called by the PassManager after the pass is no longer used. It should be used to clean up stuff done in initialize().

Definition at line 105 of file Pass.hpp.

template<class _PassClass >
_PassClass* cacao::jit::compiler2::Pass::get_Pass ( ) const
inline

Get the result of a previous compiler pass.

Can only be used if ResultType is added to required in get_PassUsage().

Definition at line 65 of file Pass.hpp.

template<class _PassClass >
_PassClass* cacao::jit::compiler2::Pass::get_Pass_if_available ( ) const
inline

Get the result of a previous compiler pass.

Can only be used if ResultType is added to required in get_PassUsage().

Definition at line 79 of file Pass.hpp.

virtual PassUsage& cacao::jit::compiler2::Pass::get_PassUsage ( PassUsage PU) const
inlinevirtual
virtual void cacao::jit::compiler2::Pass::initialize ( )
inlinevirtual

Initialize the Pass.

This method is called by the PassManager before the pass is started. It should be used to initialize e.g. data structures. A Pass object might be reused so the construtor can not be used in some cases.

Reimplemented in cacao::jit::compiler2::LinearScanAllocatorPass, cacao::jit::compiler2::LivetimeAnalysisPass, cacao::jit::compiler2::BasicBlockSchedulingPass, and cacao::jit::compiler2::MachineInstructionSchedulingPass.

Definition at line 98 of file Pass.hpp.

virtual bool cacao::jit::compiler2::Pass::run ( JITData JD)
pure virtual
void cacao::jit::compiler2::Pass::set_PassManager ( PassManager PM)
inline

Definition at line 55 of file Pass.hpp.

virtual bool cacao::jit::compiler2::Pass::verify ( ) const
inlinevirtual

Verify the Result.

This method is used to verify the result of the pass. It has the same motivation than the assert() statement. It should be only used for debugging purposes and might not be called in release builds.

Reimplemented in cacao::jit::compiler2::LinearScanAllocatorPass, cacao::jit::compiler2::SSAConstructionPass, cacao::jit::compiler2::LivetimeAnalysisPass, cacao::jit::compiler2::BasicBlockSchedulingPass, cacao::jit::compiler2::ScheduleClickPass, and cacao::jit::compiler2::MachineInstructionSchedulingPass.

Definition at line 121 of file Pass.hpp.

Field Documentation

PassManager* cacao::jit::compiler2::Pass::pm
private

Definition at line 50 of file Pass.hpp.


The documentation for this class was generated from the following files: