CACAO
Public Member Functions | Private Member Functions | Private Attributes
cacao::jit::compiler2::ListSchedulingPass Class Reference

ListSchedulingPass. More...

Inheritance diagram for cacao::jit::compiler2::ListSchedulingPass:
cacao::jit::compiler2::Pass cacao::jit::compiler2::memory::ManagerMixin< ListSchedulingPass > cacao::jit::compiler2::InstructionSchedule< Instruction >

Public Member Functions

 ListSchedulingPass ()
 
virtual bool run (JITData &JD)
 Run the Pass. More...
 
virtual bool verify () const
 Verify the Result. More...
 
virtual PassUsageget_PassUsage (PassUsage &PU) const
 Set the requirements for the pass. More...
 
- Public Member Functions inherited from cacao::jit::compiler2::Pass
 Pass ()
 
void set_PassRunner (PassRunner *pr)
 
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 bool is_enabled () const
 Allows concrete passes to enable/disable themselves the way they like. More...
 
virtual void initialize ()
 Initialize the Pass. More...
 
virtual void finalize ()
 Finalize the Pass. More...
 
virtual ~Pass ()
 Destructor. More...
 
- Public Member Functions inherited from cacao::jit::compiler2::InstructionSchedule< Instruction >
 InstructionSchedule ()
 
Instructionoperator[] (const BeginInst *BI) const
 
Instructionget (const BeginInst *BI) const
 
const_inst_iterator inst_begin (const BeginInst *BI) const
 
const_inst_iterator inst_end (const BeginInst *BI) const
 
const_reverse_inst_iterator inst_rbegin (const BeginInst *BI) const
 
const_reverse_inst_iterator inst_rend (const BeginInst *BI) const
 

Private Member Functions

void schedule (BeginInst *begin)
 Schedule the instructions within the block that starts at begin. More...
 

Private Attributes

MethodM
 The Method to process. More...
 
GlobalScheduleGS
 The current GlobalSchedule of the processed Method. More...
 

Additional Inherited Members

- Public Types inherited from cacao::jit::compiler2::InstructionSchedule< Instruction >
typedef alloc::vector
< Instruction * >::type 
InstructionListTy
 
typedef
InstructionListTy::const_iterator 
const_inst_iterator
 
typedef
InstructionListTy::const_reverse_iterator 
const_reverse_inst_iterator
 
- Static Public Member Functions inherited from cacao::jit::compiler2::Pass
template<class T >
static PassInfo::IDTy ID ()
 This template will return a unique ID for each type that it is called with. More...
 
- Static Public Member Functions inherited from cacao::jit::compiler2::memory::ManagerMixin< ListSchedulingPass >
static voidoperator new (std::size_t size) throw (std::bad_alloc)
 normal new More...
 
static voidoperator new (std::size_t size, void *ptr) throw ()
 placement new More...
 
static voidoperator new (std::size_t size, const std::nothrow_t &nt) throw ()
 nothrow new More...
 
static void operator delete (void *pMemory) throw ()
 normal delete More...
 
static void operator delete (void *pMemory, void *ptr) throw ()
 placement delete More...
 
static void operator delete (void *pMemory, const std::nothrow_t &) throw ()
 nothrow delete More...
 
static voidoperator new[] (std::size_t size) throw (std::bad_alloc)
 normal new[] More...
 
static voidoperator new[] (std::size_t size, void *ptr) throw ()
 placement new[] More...
 
static voidoperator new[] (std::size_t size, const std::nothrow_t &nt) throw ()
 nothrow new[] More...
 
static void operator delete[] (void *pMemory) throw ()
 normal delete[] More...
 
static void operator delete[] (void *pMemory, void *ptr) throw ()
 placement delete[] More...
 
static void operator delete[] (void *pMemory, const std::nothrow_t &) throw ()
 nothrow delete[] More...
 
- Protected Types inherited from cacao::jit::compiler2::InstructionSchedule< Instruction >
typedef alloc::unordered_map
< const BeginInst
*, InstructionListTy >::type 
MapTy
 
- Protected Attributes inherited from cacao::jit::compiler2::InstructionSchedule< Instruction >
MapTy map
 

Detailed Description

ListSchedulingPass.

Constructs an instruction schedule for each basic block based on a classical list scheduling algorithm.

Definition at line 47 of file ListSchedulingPass.hpp.

Constructor & Destructor Documentation

cacao::jit::compiler2::ListSchedulingPass::ListSchedulingPass ( )
inline

Definition at line 69 of file ListSchedulingPass.hpp.

Member Function Documentation

PassUsage & cacao::jit::compiler2::ListSchedulingPass::get_PassUsage ( PassUsage PU) const
virtual

Set the requirements for the pass.

Reimplemented from cacao::jit::compiler2::Pass.

Definition at line 240 of file ListSchedulingPass.cpp.

bool cacao::jit::compiler2::ListSchedulingPass::run ( JITData JD)
virtual

Run the Pass.

This method implements the compiler pass.

Returns
false if a problem occurred, true otherwise

Implements cacao::jit::compiler2::Pass.

Definition at line 199 of file ListSchedulingPass.cpp.

void cacao::jit::compiler2::ListSchedulingPass::schedule ( BeginInst begin)
private

Schedule the instructions within the block that starts at begin.

Definition at line 143 of file ListSchedulingPass.cpp.

bool cacao::jit::compiler2::ListSchedulingPass::verify ( ) const
virtual

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 from cacao::jit::compiler2::Pass.

Definition at line 221 of file ListSchedulingPass.cpp.

Field Documentation

GlobalSchedule* cacao::jit::compiler2::ListSchedulingPass::GS
private

The current GlobalSchedule of the processed Method.

Definition at line 60 of file ListSchedulingPass.hpp.

Method* cacao::jit::compiler2::ListSchedulingPass::M
private

The Method to process.

Definition at line 55 of file ListSchedulingPass.hpp.


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