CACAO
Namespaces | Data Structures | Typedefs | Enumerations | Functions | Variables
cacao::jit::compiler2 Namespace Reference

Second stage compiler namespace. More...

Namespaces

 alloc
 
 memory
 
 option
 
 tree
 
 x86_64
 

Data Structures

class  Backend
 
class  BackendBase
 Machine Backend. More...
 
class  LoweringVisitorBase
 
class  BasicBlockSchedule
 BasicBlockSchedule TODO: more info. More...
 
class  LoopScheduler
 
class  BasicBlockSchedulingPass
 BasicBlockSchedulingPass TODO: more info. More...
 
class  CFGConstructionPass
 CFGConstructionPass TODO: more info. More...
 
class  CFGMetaPass
 CFGMetaPass. More...
 
struct  MBBCompare
 
class  CodeGenPass
 CodeGenPass TODO: more info. More...
 
class  CodeMemory
 CodeMemory. More...
 
class  Conditional
 Type Class. More...
 
class  ConstantPropagationPass
 ConstantPropagationPass. More...
 
class  DeadCodeEliminationPass
 DeadCodeEliminationPass. More...
 
class  DisassemblerPass
 DisassemblerPass TODO: more info. More...
 
class  DominatorTree
 
class  DominatorPass
 Calculate the Dominator Tree. More...
 
class  DomTreePrinterPass
 DomTreePrinterPass TODO: more info. More...
 
class  ExamplePass
 ExamplePass. More...
 
class  GlobalSchedule
 GlobalSchedule TODO: more info. More...
 
class  GlobalValueNumberingPass
 GlobalValueNumberingPass. More...
 
class  DFSTraversal
 This helper class creates traversal for a graph. More...
 
class  ICMDPrinterPass
 ICMDPrinterPass. More...
 
class  Instruction
 Instruction super class. More...
 
struct  InstPtrLess
 Less comparator for Instruction pointers. More...
 
class  InstructionMetaPass
 InstructionMetaPass. More...
 
class  LoadInst
 
class  UnaryInst
 
class  BinaryInst
 Binary Instruction. More...
 
class  MultiOpInst
 
class  CondInst
 TODO not a real Instruction... More...
 
class  BeginInst
 This Instruction mark the start of a basic block. More...
 
class  BeginInstRef
 this stores a reference to a begin instruction More...
 
class  EndInst
 This Instruction mark the end of a basic block. More...
 
class  NOPInst
 
class  POPInst
 
class  CHECKNULLInst
 
class  ARRAYLENGTHInst
 
class  NEGInst
 
class  CASTInst
 
class  ADDInst
 
class  SUBInst
 
class  MULInst
 
class  DIVInst
 
class  REMInst
 
class  SHLInst
 
class  USHRInst
 
class  ANDInst
 
class  ORInst
 
class  XORInst
 
class  CMPInst
 
class  CONSTInst
 
class  GETFIELDInst
 
class  PUTFIELDInst
 
class  PUTSTATICInst
 
class  GETSTATICInst
 
class  INCInst
 
class  AREFInst
 
class  ASTOREInst
 
class  ALOADInst
 
class  ARRAYBOUNDSCHECKInst
 
class  RETInst
 
class  LOADInst
 
class  STOREInst
 
class  NEWInst
 
class  NEWARRAYInst
 
class  ANEWARRAYInst
 
class  MULTIANEWARRAYInst
 
class  CHECKCASTInst
 
class  INSTANCEOFInst
 
class  GOTOInst
 
class  JSRInst
 
class  BUILTINInst
 
class  INVOKEVIRTUALInst
 
class  INVOKESPECIALInst
 
class  INVOKESTATICInst
 
class  INVOKEINTERFACEInst
 
class  IFInst
 
class  IF_CMPInst
 
class  TABLESWITCHInst
 
class  LOOKUPSWITCHInst
 
class  RETURNInst
 
class  THROWInst
 
class  COPYInst
 
class  MOVEInst
 
class  GETEXCEPTIONInst
 
class  PHIInst
 
class  ContainerInst
 
class  InstructionSchedule
 InstructionSchedule TODO: more info. More...
 
class  InstructionVisitor
 
class  JITData
 
struct  Move
 
struct  Edge
 
class  LinearScanAllocatorPass
 Linear Scan Allocator. More...
 
class  LivetimeAnalysisPass
 LivetimeAnalysisPass. More...
 
class  UseDef
 
struct  LivetimeRange
 
class  LivetimeInterval
 
class  LivetimeIntervalImpl
 
class  LoopBase
 
class  LoopTreeBase
 
class  LoopPassBase
 Calculate the Loop Tree. More...
 
class  LoopComparator
 
class  LoopTreePrinterPass
 LoopTreePrinterPass TODO: more info. More...
 
class  MachineAddress
 
class  MIIterator
 
class  MachineBasicBlock
 A basic block of (scheduled) machine instructions. More...
 
struct  MoveEdgeFunctor
 
class  MachineOperandDesc
 Descriptor of a MachineOperand. More...
 
class  MachineInstruction
 Proxy to encode explicit and implicit successors. More...
 
class  MachineInstructionPrinterPass
 MachineInstructionPrinterPass TODO: more info. More...
 
class  MachineLabelInst
 
class  MachinePhiInst
 
class  MachineJumpInst
 
class  MBBIterator
 
class  const_MBBIterator
 
class  MBBBuilder
 
class  MachineInstructionSchedule
 
class  MachineInstructionSchedulingPass
 MachineInstructionSchedulingPass TODO: more info. More...
 
class  EmbeddedMachineOperand
 
class  MachineOperand
 Operands that can be directly used by the machine (register, memory, stackslot) More...
 
class  VoidOperand
 
class  Register
 
class  UnassignedReg
 
class  VirtualRegister
 
class  StackSlot
 
class  ManagedStackSlot
 
class  Immediate
 
class  Address
 
struct  MachineOperandComp
 
class  MachineRegister
 
class  NoInst
 
class  Matcher
 
struct  edge
 
class  Method
 
class  MethodDescriptor
 MethodDescriptor TODO: more info. More...
 
class  ObjectFileWriterPass
 ObjectFileWriterPass TODO: more info. More...
 
class  ParserPass
 ParserPass TODO: more info. More...
 
class  Pass
 Pass superclass All compiler passes should inheritate this class. More...
 
class  PassInfo
 
class  PassManager
 Manage the execution of compiler passes. More...
 
struct  PassRegistry
 
class  PassUsage
 Stores the interdependencies of a pass. More...
 
class  RegisterAllocatorPass
 RegisterAllocatorPass. More...
 
class  ScheduleClickPass
 ScheduleClickPass. More...
 
class  ScheduleEarlyPass
 ScheduleEarlyPass. More...
 
class  ScheduleLatePass
 ScheduleLatePass. More...
 
class  SegRef
 Segment reference. More...
 
class  SegmentTag
 
struct  classcomp
 
struct  NormalRefCategory
 
struct  ReverseRefCategory
 
class  Segment
 A segment of the code memory. More...
 
class  ConstTag
 
class  PointerTag
 
class  SSAConstructionPass
 SSAConstructionPass. More...
 
class  SSAPrinterPass
 SSAPrinterPass TODO: more info. More...
 
class  BasicBlockPrinterPass
 BasicBlockPrinterPass TODO: more info. More...
 
class  GlobalSchedulePrinterPass
 GlobalSchedulePrinterPass TODO: more info. More...
 
class  StackAnalysisPass
 StackAnalysisPass TODO: more info. More...
 
class  StackSlotManager
 StackSlot Manager. More...
 
class  Type
 Type Class. More...
 
class  Value
 
class  VerifierPass
 VerifierPass TODO: more info. More...
 

Typedefs

typedef PointerTag
< CodeSegmentType, const
MachineBasicBlock, LabelID
CSLabel
 
typedef Segment
< CodeSegmentType,
ReverseRefCategory
CodeSegment
 
typedef SegRef
< CodeSegmentType,
ReverseRefCategory
CodeFragment
 
typedef u1 MachineCode
 
typedef ConstTag
< DataSegmentType, double,
DoubleID
DSDouble
 
typedef ConstTag
< DataSegmentType, int64_t,
LongID
DSLong
 
typedef ConstTag
< DataSegmentType, float,
FloatID
DSFloat
 
typedef ConstTag
< DataSegmentType, int32_t,
IntID
DSInt
 
typedef PointerTag
< DataSegmentType,
constant_FMIref, FMIRefID
DSFMIRef
 
typedef Segment
< DataSegmentType,
NormalRefCategory
DataSegment
 
typedef SegRef
< DataSegmentType,
NormalRefCategory
DataFragment
 
typedef alloc::list< Move >::type MoveMapTy
 
typedef alloc::map< Edge,
MoveMapTy >::type 
EdgeMoveMapTy
 
typedef alloc::map
< MachineBasicBlock
*, alloc::list
< LivetimeInterval >::type >
::type 
BBtoLTI_Map
 
typedef LoopBase< BeginInstLoop
 
typedef LoopTreeBase< BeginInstLoopTree
 
typedef LoopPassBase< BeginInstLoopPass
 
typedef LoopBase
< MachineBasicBlock
MachineLoop
 
typedef LoopTreeBase
< MachineBasicBlock
MachineLoopTree
 
typedef LoopPassBase
< MachineBasicBlock
MachineLoopPass
 
typedef alloc::list
< MachineOperand * >::type 
OperandFile
 
typedef InstructionNODEPTR_TYPE
 
typedef struct burm_state STATE_TYPE
 
typedef x86_64::X86_64 Target
 
typedef x86_64::NativeRegister NativeRegister
 
typedef x86_64::NativeAddress NativeAddress
 
typedef
x86_64::X86_64LoweringVisitor 
LoweringVisitor
 

Enumerations

enum  CodeSegmentType { LabelID }
 
enum  DataSegmentType {
  DoubleID, LongID, FloatID, IntID,
  FMIRefID
}
 

Functions

MachineCodecompile (methodinfo *m)
 
OStreamoperator<< (OStream &OS, const Conditional::CondID &cond)
 
OStreamoperator<< (OStream &OS, const Instruction *I)
 
OStreamoperator<< (OStream &OS, const Instruction &I)
 
OStreamoperator<< (OStream &OS, const BeginInstRef &BIR)
 
bool operator< (const Edge &lhs, const Edge &rhs)
 
UseDef next_intersection (const LivetimeInterval &a, const LivetimeInterval &b, UseDef pos, UseDef end)
 
OStreamoperator<< (OStream &OS, const LivetimeIntervalImpl &lti)
 
OStreamoperator<< (OStream &OS, const LivetimeInterval &lti)
 
OStreamoperator<< (OStream &OS, const LivetimeInterval *lti)
 
OStreamoperator<< (OStream &OS, const UseDef &usedef)
 
OStreamoperator<< (OStream &OS, const LivetimeRange &range)
 
bool operator< (const UseDef &lhs, const UseDef &rhs)
 less then operator More...
 
bool operator!= (const UseDef &lhs, const UseDef &rhs)
 
bool operator== (const UseDef &lhs, const UseDef &rhs)
 
bool operator<= (const UseDef &lhs, const UseDef &rhs)
 
OStreamoperator<< (OStream &OS, const Loop &L)
 
OStreamoperator<< (OStream &OS, const Loop *L)
 
bool check_is_phi (MachineInstruction *value)
 
OStreamoperator<< (OStream &OS, const MIIterator &it)
 
MachinePhiInstget_phi_from_operand (MachineBasicBlock *MBB, MachineOperand *op)
 
MachineBasicBlockget_edge_block (MachineBasicBlock *from, MachineBasicBlock *to, Backend *backend)
 get a new basic block for a given edge More...
 
MIIterator get_edge_iterator (MachineBasicBlock *from, MachineBasicBlock *to, Backend *backend)
 
MIIterator insert_before (MIIterator pos, MachineInstruction *value)
 Get an edge inserter. More...
 
MIIterator insert_after (MIIterator pos, MachineInstruction *value)
 
bool operator<= (const MIIterator &lhs, const MIIterator &rhs)
 
bool operator> (const MIIterator &lhs, const MIIterator &rhs)
 
bool operator>= (const MIIterator &lhs, const MIIterator &rhs)
 
OStreamoperator<< (OStream &OS, MachineBasicBlock &MBB)
 
template<class InputIterator >
void move_instructions (InputIterator first, InputIterator last, MachineBasicBlock &from, MachineBasicBlock &to)
 Move instructions to another basic block. More...
 
OStreamoperator<< (OStream &OS, const MachineInstruction *MI)
 
OStreamoperator<< (OStream &OS, const MachineInstruction &MI)
 
OStreamoperator<< (OStream &OS, const MachineOperandDesc *MOD)
 
OStreamoperator<< (OStream &OS, const MachineOperandDesc &MOD)
 
OStreamoperator<< (OStream &OS, const MachineLoop &L)
 
OStreamoperator<< (OStream &OS, const MachineLoop *L)
 
OStreamoperator<< (OStream &OS, const MachineOperand &MO)
 
OStreamoperator<< (OStream &OS, const MachineOperand *MO)
 
OStreamoperator<< (OStream &OS, const Method &M)
 
template<typename _NodeType >
edge< _NodeType > make_edge (_NodeType x, _NodeType y)
 
OStreamoperator<< (OStream &OS, const MethodDescriptor &MD)
 
void print_PassDependencyGraph (PassManager &PM)
 
template<class _PassClass >
Passcall_ctor ()
 
template<typename Tag , typename RefCategory >
u1doAccess (SegRef< Tag, RefCategory > &ref, std::size_t i, NormalRefCategory)
 access data More...
 
template<typename Tag , typename RefCategory >
u1doAccess (SegRef< Tag, RefCategory > &ref, std::size_t i, ReverseRefCategory)
 access data More...
 
template<typename Tag , typename RefCategory >
SegRef< Tag, RefCategory >::IdxTy getAddStartIndex (SegRef< Tag, RefCategory > &ref, std::size_t v, NormalRefCategory)
 get subreference More...
 
template<typename Tag , typename RefCategory >
SegRef< Tag, RefCategory >::IdxTy getAddStartIndex (SegRef< Tag, RefCategory > &ref, std::size_t v, ReverseRefCategory)
 get subreference More...
 
template<typename Tag , typename RefCategory >
SegRef< Tag, RefCategory >::IdxTy getBegin (const SegRef< Tag, RefCategory > &ref, NormalRefCategory)
 get first index More...
 
template<typename Tag , typename RefCategory >
SegRef< Tag, RefCategory >::IdxTy getBegin (const SegRef< Tag, RefCategory > &ref, ReverseRefCategory)
 get first index More...
 
template<typename Tag , typename RefCategory >
SegRef< Tag, RefCategory >::IdxTy getEnd (const SegRef< Tag, RefCategory > &ref, NormalRefCategory)
 get last but one index More...
 
template<typename Tag , typename RefCategory >
SegRef< Tag, RefCategory >::IdxTy getEnd (const SegRef< Tag, RefCategory > &ref, ReverseRefCategory)
 get last but one index More...
 
template<typename Tag , typename RefCategory >
Segment< Tag, RefCategory >::IdxTy getFollowingIndex (const Segment< Tag, RefCategory > &ref, NormalRefCategory)
 
template<typename Tag , typename RefCategory >
Segment< Tag, RefCategory >::IdxTy getFollowingIndex (const Segment< Tag, RefCategory > &ref, ReverseRefCategory)
 
template<class Type >
OStreamoperator<< (OStream &OS, SegmentTag< Type > &tag)
 
template<class Type >
OStreamoperator<< (OStream &OS, SegmentTag< Type > *tag)
 
const char * get_var_type (int type)
 
Type::TypeID convert_var_type (int type)
 
OStreamoperator<< (OStream &OS, const Type::TypeID &type)
 
const char * get_type_name (const Type::TypeID &type)
 
OStreamoperator<< (OStream &OS, const Value *V)
 
OStreamoperator<< (OStream &OS, const Value &V)
 

Variables

static PassRegistry
< BasicBlockSchedulingPass
X ("BasicBlockSchedulingPass")
 
static PassRegistry
< CFGConstructionPass
X ("CFGConstructionPass")
 
static PassRegistry< CFGMetaPassX ("CFGMetaPass")
 
static PassRegistry< CodeGenPassX ("CodeGenPass")
 
Option< bool > enabled ("DebugCompiler2","compiler with compiler2", false, option::xx_root())
 
static PassRegistry
< DisassemblerPass
X ("DisassemblerPass")
 
static PassRegistry
< DominatorPass
X ("DominatorPass")
 
static PassRegistry
< DomTreePrinterPass
X ("DomTreePrinterPass")
 
static PassRegistry< ExamplePassX ("ExamplePass")
 
static PassRegistry
< ICMDPrinterPass
X ("ICMDPrinterPass")
 
static PassRegistry
< InstructionMetaPass
X ("InstructionMetaPass")
 
static PassRegistry
< LivetimeAnalysisPass
X ("LivetimeAnalysisPass")
 
static PassRegistry< LoopPassX ("LoopPass")
 
static PassRegistry
< LoopTreePrinterPass
X ("LoopTreePrinterPass")
 
static PassRegistry
< MachineInstructionPrinterPass
X ("MachineInstructionPrinterPass")
 
static PassRegistry
< MachineInstructionSchedulingPass
X ("MachineInstructionSchedulingPass")
 
static PassRegistry
< MachineLoopPass
X ("MachineLoopPass")
 
VoidOperand NoOperand
 
Instruction::InstID tmp []
 
static PassRegistry
< ObjectFileWriterPass
X ("ObjectFileWriterPass")
 
static PassRegistry< ParserPassX ("ParserPass")
 
static PassRegistry
< RegisterAllocatorPass
X ("RegisterAllocatorPass")
 
static PassRegistry
< ScheduleClickPass
X ("ScheduleClickPass")
 
static PassRegistry
< ScheduleEarlyPass
X ("ScheduleEarlyPass")
 
static PassRegistry
< ScheduleLatePass
X ("ScheduleLatePass")
 
static PassRegistry
< SSAPrinterPass
X ("SSAPrinterPass")
 
static PassRegistry
< BasicBlockPrinterPass
Z ("BasicBlockPrinterPass")
 
Option< bool > schedule_printer_enabled ("GlobalSchedulePrinterPass","compiler2: enable GlobalSchedulePrinterPass", false,::cacao::option::xx_root())
 
static PassRegistry
< GlobalSchedulePrinterPass
< ScheduleLatePass > > 
X_late ("GlobalSchedulePrinterPass(late)")
 
static PassRegistry
< GlobalSchedulePrinterPass
< ScheduleEarlyPass > > 
X_early ("GlobalSchedulePrinterPass(early)")
 
static PassRegistry
< GlobalSchedulePrinterPass
< ScheduleClickPass > > 
X_click ("GlobalSchedulePrinterPass(click)")
 
static PassRegistry
< StackAnalysisPass
X ("StackAnalysisPass")
 
static PassRegistry< VerifierPassX ("VerifierPass")
 

Detailed Description

Second stage compiler namespace.

All parts specific to the second stage compiler are contained in this namespace.

Typedef Documentation

Definition at line 68 of file LinearScanAllocatorPass.hpp.

Definition at line 52 of file CodeSegment.hpp.

Definition at line 51 of file CodeSegment.hpp.

Definition at line 42 of file CodeSegment.hpp.

Definition at line 52 of file DataSegment.hpp.

Definition at line 51 of file DataSegment.hpp.

Definition at line 45 of file DataSegment.hpp.

Definition at line 47 of file DataSegment.hpp.

Definition at line 49 of file DataSegment.hpp.

Definition at line 48 of file DataSegment.hpp.

Definition at line 46 of file DataSegment.hpp.

Definition at line 67 of file LinearScanAllocatorPass.hpp.

Definition at line 35 of file Loop.hpp.

Definition at line 35 of file LoopPass.hpp.

Definition at line 38 of file Loop.hpp.

Definition at line 48 of file Target.hpp.

Definition at line 114 of file Compiler.hpp.

Definition at line 35 of file MachineLoop.hpp.

Definition at line 35 of file MachineLoopPass.hpp.

Definition at line 38 of file MachineLoop.hpp.

Definition at line 66 of file LinearScanAllocatorPass.hpp.

Definition at line 47 of file Target.hpp.

Definition at line 46 of file Target.hpp.

Definition at line 48 of file Matcher.hpp.

Definition at line 436 of file MachineOperand.hpp.

typedef struct burm_state cacao::jit::compiler2::STATE_TYPE

Definition at line 49 of file Matcher.hpp.

Definition at line 45 of file Target.hpp.

Enumeration Type Documentation

Enumerator
LabelID 

Definition at line 38 of file CodeSegment.hpp.

Enumerator
DoubleID 
LongID 
FloatID 
IntID 
FMIRefID 

Definition at line 37 of file DataSegment.hpp.

Function Documentation

template<class _PassClass >
Pass* cacao::jit::compiler2::call_ctor ( )

Definition at line 172 of file PassManager.hpp.

bool cacao::jit::compiler2::check_is_phi ( MachineInstruction *  value)

Definition at line 69 of file MachineBasicBlock.cpp.

MachineCode * cacao::jit::compiler2::compile ( methodinfo m)

prolog start jit_compile

prolog end jit_compile

prolog start jit_compile_intern

prolog end jit_compile_intern

epilog start jit_compile

epilog end jit_compile

Definition at line 123 of file Compiler.cpp.

Type::TypeID cacao::jit::compiler2::convert_var_type ( int  type)

Definition at line 51 of file Type.cpp.

template<typename Tag , typename RefCategory >
u1& cacao::jit::compiler2::doAccess ( SegRef< Tag, RefCategory > &  ref,
std::size_t  i,
NormalRefCategory   
)
inline

access data

Definition at line 415 of file Segment.hpp.

template<typename Tag , typename RefCategory >
u1& cacao::jit::compiler2::doAccess ( SegRef< Tag, RefCategory > &  ref,
std::size_t  i,
ReverseRefCategory   
)
inline

access data

Definition at line 422 of file Segment.hpp.

MachineBasicBlock * cacao::jit::compiler2::get_edge_block ( MachineBasicBlock *  from,
MachineBasicBlock *  to,
Backend *  backend 
)

get a new basic block for a given edge

Definition at line 103 of file MachineBasicBlock.cpp.

MIIterator cacao::jit::compiler2::get_edge_iterator ( MachineBasicBlock *  from,
MachineBasicBlock *  to,
Backend *  backend 
)

Definition at line 129 of file MachineBasicBlock.cpp.

MachinePhiInst * cacao::jit::compiler2::get_phi_from_operand ( MachineBasicBlock *  MBB,
MachineOperand *  op 
)

Definition at line 94 of file MachineBasicBlock.cpp.

const char * cacao::jit::compiler2::get_type_name ( const Type::TypeID &  type)

Definition at line 91 of file Type.cpp.

const char * cacao::jit::compiler2::get_var_type ( int  type)

Definition at line 37 of file Type.cpp.

template<typename Tag , typename RefCategory >
SegRef<Tag,RefCategory>::IdxTy cacao::jit::compiler2::getAddStartIndex ( SegRef< Tag, RefCategory > &  ref,
std::size_t  v,
NormalRefCategory   
)
inline

get subreference

Definition at line 430 of file Segment.hpp.

template<typename Tag , typename RefCategory >
SegRef<Tag,RefCategory>::IdxTy cacao::jit::compiler2::getAddStartIndex ( SegRef< Tag, RefCategory > &  ref,
std::size_t  v,
ReverseRefCategory   
)
inline

get subreference

Definition at line 436 of file Segment.hpp.

template<typename Tag , typename RefCategory >
SegRef<Tag,RefCategory>::IdxTy cacao::jit::compiler2::getBegin ( const SegRef< Tag, RefCategory > &  ref,
NormalRefCategory   
)
inline

get first index

Definition at line 443 of file Segment.hpp.

template<typename Tag , typename RefCategory >
SegRef<Tag,RefCategory>::IdxTy cacao::jit::compiler2::getBegin ( const SegRef< Tag, RefCategory > &  ref,
ReverseRefCategory   
)
inline

get first index

Definition at line 449 of file Segment.hpp.

template<typename Tag , typename RefCategory >
SegRef<Tag,RefCategory>::IdxTy cacao::jit::compiler2::getEnd ( const SegRef< Tag, RefCategory > &  ref,
NormalRefCategory   
)
inline

get last but one index

Definition at line 456 of file Segment.hpp.

template<typename Tag , typename RefCategory >
SegRef<Tag,RefCategory>::IdxTy cacao::jit::compiler2::getEnd ( const SegRef< Tag, RefCategory > &  ref,
ReverseRefCategory   
)
inline

get last but one index

Definition at line 462 of file Segment.hpp.

template<typename Tag , typename RefCategory >
Segment<Tag,RefCategory>::IdxTy cacao::jit::compiler2::getFollowingIndex ( const Segment< Tag, RefCategory > &  ref,
NormalRefCategory   
)
inline

Definition at line 469 of file Segment.hpp.

template<typename Tag , typename RefCategory >
Segment<Tag,RefCategory>::IdxTy cacao::jit::compiler2::getFollowingIndex ( const Segment< Tag, RefCategory > &  ref,
ReverseRefCategory   
)
inline

Definition at line 475 of file Segment.hpp.

MIIterator cacao::jit::compiler2::insert_after ( MIIterator  pos,
MachineInstruction *  value 
)

Definition at line 155 of file MachineBasicBlock.cpp.

MIIterator cacao::jit::compiler2::insert_before ( MIIterator  pos,
MachineInstruction *  value 
)

Get an edge inserter.

This may return an iterator to the end of predecessor block, if the predecessor has only one successor, an iterator to the beginning of the successor block, if the successor has only one predecessor, or else an iterator to a newly allocated block.

Definition at line 151 of file MachineBasicBlock.cpp.

template<typename _NodeType >
edge<_NodeType> cacao::jit::compiler2::make_edge ( _NodeType  x,
_NodeType  y 
)

Definition at line 58 of file MethodC2.hpp.

template<class InputIterator >
void cacao::jit::compiler2::move_instructions ( InputIterator  first,
InputIterator  last,
MachineBasicBlock &  from,
MachineBasicBlock &  to 
)
inline

Move instructions to another basic block.

Note
this also updates the predecessor list for the target basic blocks of jump instructions. Example if a JUMP to BB_target is moved from BB_from to BB_to than all occurrences of BB_from in BB_targets predecessor list are replaced with BB_to.

Definition at line 523 of file MachineBasicBlock.hpp.

UseDef cacao::jit::compiler2::next_intersection ( const LivetimeInterval &  a,
const LivetimeInterval &  b,
UseDef  pos,
UseDef  end 
)

Definition at line 118 of file LivetimeInterval.cpp.

bool cacao::jit::compiler2::operator!= ( const UseDef &  lhs,
const UseDef &  rhs 
)
inline

Definition at line 397 of file LivetimeInterval.hpp.

bool cacao::jit::compiler2::operator< ( const Edge lhs,
const Edge rhs 
)
inline

Definition at line 60 of file LinearScanAllocatorPass.hpp.

bool cacao::jit::compiler2::operator< ( const UseDef &  lhs,
const UseDef &  rhs 
)
inline

less then operator

Definition at line 386 of file LivetimeInterval.hpp.

OStream & cacao::jit::compiler2::operator<< ( OStream &  OS,
const MethodDescriptor &  MD 
)

Definition at line 31 of file MethodDescriptor.cpp.

OStream & cacao::jit::compiler2::operator<< ( OStream &  OS,
const Conditional::CondID &  cond 
)

Definition at line 34 of file Conditional.cpp.

OStream & cacao::jit::compiler2::operator<< ( OStream &  OS,
const Loop &  L 
)

Definition at line 34 of file Loop.cpp.

OStream & cacao::jit::compiler2::operator<< ( OStream &  OS,
const MachineLoop &  L 
)

Definition at line 35 of file MachineLoop.cpp.

OStream & cacao::jit::compiler2::operator<< ( OStream &  OS,
const Value V 
)

Definition at line 35 of file Value.cpp.

OStream & cacao::jit::compiler2::operator<< ( OStream &  OS,
const Loop *  L 
)

Definition at line 38 of file Loop.cpp.

OStream & cacao::jit::compiler2::operator<< ( OStream &  OS,
const Instruction *  I 
)

Definition at line 38 of file Instruction.cpp.

OStream & cacao::jit::compiler2::operator<< ( OStream &  OS,
const MachineLoop *  L 
)

Definition at line 39 of file MachineLoop.cpp.

OStream & cacao::jit::compiler2::operator<< ( OStream &  OS,
const Type::TypeID &  type 
)

Definition at line 69 of file Type.cpp.

OStream & cacao::jit::compiler2::operator<< ( OStream &  OS,
const MIIterator &  it 
)

Definition at line 73 of file MachineBasicBlock.cpp.

OStream & cacao::jit::compiler2::operator<< ( OStream &  OS,
const MachineInstruction *  MI 
)

Definition at line 95 of file MachineInstruction.cpp.

OStream& cacao::jit::compiler2::operator<< ( OStream &  OS,
const Value V 
)
inline

Definition at line 97 of file Value.hpp.

OStream & cacao::jit::compiler2::operator<< ( OStream &  OS,
const MachineInstruction &  MI 
)

Definition at line 101 of file MachineInstruction.cpp.

OStream & cacao::jit::compiler2::operator<< ( OStream &  OS,
const MachineOperandDesc *  MOD 
)

Definition at line 105 of file MachineInstruction.cpp.

OStream & cacao::jit::compiler2::operator<< ( OStream &  OS,
const MachineOperandDesc &  MOD 
)

Definition at line 111 of file MachineInstruction.cpp.

OStream& cacao::jit::compiler2::operator<< ( OStream &  OS,
const LivetimeIntervalImpl &  lti 
)

Definition at line 136 of file LivetimeInterval.cpp.

OStream & cacao::jit::compiler2::operator<< ( OStream &  OS,
const Method &  M 
)

Definition at line 139 of file MethodC2.cpp.

OStream& cacao::jit::compiler2::operator<< ( OStream &  OS,
const BeginInstRef &  BIR 
)
inline

Definition at line 190 of file Instructions.hpp.

OStream& cacao::jit::compiler2::operator<< ( OStream &  OS,
const Instruction &  I 
)
inline

Definition at line 245 of file Instruction.hpp.

OStream & cacao::jit::compiler2::operator<< ( OStream &  OS,
const LivetimeInterval &  lti 
)

Definition at line 356 of file LivetimeInterval.cpp.

OStream & cacao::jit::compiler2::operator<< ( OStream &  OS,
const LivetimeInterval *  lti 
)

Definition at line 364 of file LivetimeInterval.cpp.

OStream & cacao::jit::compiler2::operator<< ( OStream &  OS,
const UseDef &  usedef 
)

Definition at line 371 of file LivetimeInterval.cpp.

OStream & cacao::jit::compiler2::operator<< ( OStream &  OS,
const LivetimeRange &  range 
)

Definition at line 377 of file LivetimeInterval.cpp.

OStream& cacao::jit::compiler2::operator<< ( OStream &  OS,
const MachineOperand &  MO 
)
inline

Definition at line 420 of file MachineOperand.hpp.

OStream& cacao::jit::compiler2::operator<< ( OStream &  OS,
const MachineOperand *  MO 
)
inline

Definition at line 423 of file MachineOperand.hpp.

OStream& cacao::jit::compiler2::operator<< ( OStream &  OS,
MachineBasicBlock &  MBB 
)
inline

Definition at line 449 of file MachineBasicBlock.hpp.

template<class Type >
OStream& cacao::jit::compiler2::operator<< ( OStream &  OS,
SegmentTag< Type > &  tag 
)

Definition at line 500 of file Segment.hpp.

template<class Type >
OStream& cacao::jit::compiler2::operator<< ( OStream &  OS,
SegmentTag< Type > *  tag 
)
inline

Definition at line 504 of file Segment.hpp.

bool cacao::jit::compiler2::operator<= ( const MIIterator &  lhs,
const MIIterator &  rhs 
)
inline

Definition at line 120 of file MachineBasicBlock.hpp.

bool cacao::jit::compiler2::operator<= ( const UseDef &  lhs,
const UseDef &  rhs 
)
inline

Definition at line 403 of file LivetimeInterval.hpp.

bool cacao::jit::compiler2::operator== ( const UseDef &  lhs,
const UseDef &  rhs 
)
inline

Definition at line 400 of file LivetimeInterval.hpp.

bool cacao::jit::compiler2::operator> ( const MIIterator &  lhs,
const MIIterator &  rhs 
)
inline

Definition at line 123 of file MachineBasicBlock.hpp.

bool cacao::jit::compiler2::operator>= ( const MIIterator &  lhs,
const MIIterator &  rhs 
)
inline

Definition at line 126 of file MachineBasicBlock.hpp.

void cacao::jit::compiler2::print_PassDependencyGraph ( PassManager &  PM)

Definition at line 127 of file PassDependencyGraphPrinter.cpp.

Variable Documentation

Option< bool > cacao::jit::compiler2::enabled

Definition at line 112 of file Compiler.hpp.

VoidOperand cacao::jit::compiler2::NoOperand

Definition at line 36 of file MachineOperand.cpp.

Option< bool > cacao::jit::compiler2::schedule_printer_enabled

Definition at line 80 of file SSAPrinterPass.hpp.

Instruction::InstID cacao::jit::compiler2::tmp[]

Definition at line 55 of file Matcher.cpp.

PassRegistry<CFGMetaPass> cacao::jit::compiler2::X("CFGMetaPass")
static
PassRegistry<InstructionMetaPass> cacao::jit::compiler2::X("InstructionMetaPass")
static
PassRegistry<RegisterAllocatorPass> cacao::jit::compiler2::X("RegisterAllocatorPass")
static
PassRegistry<ParserPass> cacao::jit::compiler2::X("ParserPass")
static
PassRegistry<LoopPass> cacao::jit::compiler2::X("LoopPass")
static
PassRegistry<MachineLoopPass> cacao::jit::compiler2::X("MachineLoopPass")
static
PassRegistry<StackAnalysisPass> cacao::jit::compiler2::X("StackAnalysisPass")
static
PassRegistry<ICMDPrinterPass> cacao::jit::compiler2::X("ICMDPrinterPass")
static
PassRegistry<CFGConstructionPass> cacao::jit::compiler2::X("CFGConstructionPass")
static
PassRegistry<ExamplePass> cacao::jit::compiler2::X("ExamplePass")
static
PassRegistry<VerifierPass> cacao::jit::compiler2::X("VerifierPass")
static
PassRegistry<MachineInstructionPrinterPass> cacao::jit::compiler2::X("MachineInstructionPrinterPass")
static
PassRegistry<ScheduleClickPass> cacao::jit::compiler2::X("ScheduleClickPass")
static
PassRegistry<DisassemblerPass> cacao::jit::compiler2::X("DisassemblerPass")
static
PassRegistry<DomTreePrinterPass> cacao::jit::compiler2::X("DomTreePrinterPass")
static
PassRegistry<LoopTreePrinterPass> cacao::jit::compiler2::X("LoopTreePrinterPass")
static
PassRegistry<ScheduleEarlyPass> cacao::jit::compiler2::X("ScheduleEarlyPass")
static
PassRegistry<ScheduleLatePass> cacao::jit::compiler2::X("ScheduleLatePass")
static
PassRegistry<DominatorPass> cacao::jit::compiler2::X("DominatorPass")
static
PassRegistry<ObjectFileWriterPass> cacao::jit::compiler2::X("ObjectFileWriterPass")
static
PassRegistry<SSAPrinterPass> cacao::jit::compiler2::X("SSAPrinterPass")
static
PassRegistry<BasicBlockSchedulingPass> cacao::jit::compiler2::X("BasicBlockSchedulingPass")
static
PassRegistry<MachineInstructionSchedulingPass> cacao::jit::compiler2::X("MachineInstructionSchedulingPass")
static
PassRegistry<CodeGenPass> cacao::jit::compiler2::X("CodeGenPass")
static
PassRegistry<LivetimeAnalysisPass> cacao::jit::compiler2::X("LivetimeAnalysisPass")
static
PassRegistry<GlobalSchedulePrinterPass<ScheduleClickPass> > cacao::jit::compiler2::X_click("GlobalSchedulePrinterPass(click)")
static
PassRegistry<GlobalSchedulePrinterPass<ScheduleEarlyPass> > cacao::jit::compiler2::X_early("GlobalSchedulePrinterPass(early)")
static
PassRegistry<GlobalSchedulePrinterPass<ScheduleLatePass> > cacao::jit::compiler2::X_late("GlobalSchedulePrinterPass(late)")
static
PassRegistry<BasicBlockPrinterPass> cacao::jit::compiler2::Z("BasicBlockPrinterPass")
static