See: Description
Class | Description |
---|---|
BasicBlockLE |
This class is used as a 'wrapper' to a basic block to hold
information that is necessary only for IR generation.
|
BBSet |
Encapsulates the discovery and maintenance of the set of basic blocks that
are being generated during construction of the IR.
|
BBSet.TreeEnumerator | |
BC2IR |
This class translates from bytecode to HIR.
|
BC2IR.DummyStackSlot |
Dummy stack slot
|
ConvertBCtoHIR |
Translate from bytecodes to HIR
|
GenerateMagic |
This class implements the non-machine-specific magics for the opt compiler.
|
GenerationContext |
Defines the context in which BC2IR will abstractly interpret
a method's bytecodes and populate targetIR with instructions.
|
HandlerBlockLE |
Extend BasicBlockLE for handler blocks
|
InliningBlockLE |
Extend BasicBlockLE to support inlining during IR generation.
|
IRGenOptions |
This class contains flags to control IR generation.
|
OperandStack |
Simulates the Java stack for abstract interpretation in
BC2IR . |
OsrPointConstructor |
A phase in the OPT compiler for construction OsrPoint instructions
after inlining.
|
ReturnAddressOperand |
ReturnAddress operand.
|
ConvertBCtoHIR
is the very first
compiler phase in the optimizing compiler. Its job is to call
BC2IR
which generates the initial HIR.
BC2IR collaborates with BBSet
(for basic block management), GenerationContext
(for information about the generation process and the method
that is to be compiled) and GenerateMagic
(for non-machine specific magics) and one implementation of
GenerateMachineSpecificMagic.
BC2IR is also responsible for generating code to deal with on-stack-replacement.
Note that all inlining of application level methods in the optimizing compiler happens in BC2IR. Inlining of runtime services (e.g. creation of new objects, implementation of monitorexit and monitorenter, write barriers, ...) happens during the transition from high-level IR to low-level IR.
Important classes from other packages that relate to the job of BC2IR are the classes that form the IR and the classes that are related to inlining.
For debugging aids, see IRGenOptions
and the source code of BC2IR.
Please consult the User Guide and the "Recommended Reading" section on the website for more information about the optimizing compiler and the intermediate representations.
IR
,
org.jikesrvm.compilers.opt.inlining