public class LIRSuites extends Object
| Constructor and Description |
|---|
LIRSuites(LIRPhaseSuite<PreAllocationOptimizationPhase.PreAllocationOptimizationContext> preAllocOptStage,
LIRPhaseSuite<AllocationPhase.AllocationContext> allocStage,
LIRPhaseSuite<PostAllocationOptimizationPhase.PostAllocationOptimizationContext> postAllocStage,
LIRPhaseSuite<FinalCodeAnalysisPhase.FinalCodeAnalysisContext> finalCodeAnalysisStage) |
LIRSuites(LIRSuites other) |
| Modifier and Type | Method and Description |
|---|---|
LIRSuites |
copy() |
LIRPhaseSuite<AllocationPhase.AllocationContext> |
getAllocationStage()
AllocationPhases are responsible for register allocation and translating
VirtualStackSlots into StackSlots. |
LIRPhaseSuite<FinalCodeAnalysisPhase.FinalCodeAnalysisContext> |
getFinalCodeAnalysisStage()
FinalCodeAnalysisPhases are executed after
post-allocation optimizations and before
machine code generation. |
LIRPhaseSuite<PostAllocationOptimizationPhase.PostAllocationOptimizationContext> |
getPostAllocationOptimizationStage()
PostAllocationOptimizationPhases are executed after register allocation and before
the final analysis stage that precedes machine code
generation. |
LIRPhaseSuite<PreAllocationOptimizationPhase.PreAllocationOptimizationContext> |
getPreAllocationOptimizationStage()
PreAllocationOptimizationPhases are executed between LIR generation and
register allocation. |
boolean |
isImmutable() |
void |
setImmutable() |
public LIRSuites(LIRPhaseSuite<PreAllocationOptimizationPhase.PreAllocationOptimizationContext> preAllocOptStage, LIRPhaseSuite<AllocationPhase.AllocationContext> allocStage, LIRPhaseSuite<PostAllocationOptimizationPhase.PostAllocationOptimizationContext> postAllocStage, LIRPhaseSuite<FinalCodeAnalysisPhase.FinalCodeAnalysisContext> finalCodeAnalysisStage)
public LIRSuites(LIRSuites other)
public LIRPhaseSuite<PreAllocationOptimizationPhase.PreAllocationOptimizationContext> getPreAllocationOptimizationStage()
PreAllocationOptimizationPhases are executed between LIR generation and
register allocation.
Implementers can create new
variables, stack
slots and virtual stack slots.
public LIRPhaseSuite<AllocationPhase.AllocationContext> getAllocationStage()
AllocationPhases are responsible for register allocation and translating
VirtualStackSlots into StackSlots.
After the AllocationStage there should be no more Variables and
VirtualStackSlots.
public LIRPhaseSuite<PostAllocationOptimizationPhase.PostAllocationOptimizationContext> getPostAllocationOptimizationStage()
PostAllocationOptimizationPhases are executed after register allocation and before
the final analysis stage that precedes machine code
generation.
A PostAllocationOptimizationPhase must not introduce new Variables,
VirtualStackSlots or StackSlots. Blocks might be removed from
LIR.codeEmittingOrder() by overwriting them with null.
public LIRPhaseSuite<FinalCodeAnalysisPhase.FinalCodeAnalysisContext> getFinalCodeAnalysisStage()
FinalCodeAnalysisPhases are executed after
post-allocation optimizations and before
machine code generation.
A FinalCodeAnalysisPhase must not modify the code in any way but may verify
properties of the code or compute metadata like ReferenceMaps.
public boolean isImmutable()
public void setImmutable()
public LIRSuites copy()