public abstract class HotSpotBackend extends Backend implements FrameMap.ReferenceMapBuilderFactory
Modifier and Type | Class and Description |
---|---|
static class |
HotSpotBackend.Options |
ARITHMETIC_COS, ARITHMETIC_EXP, ARITHMETIC_LOG, ARITHMETIC_LOG10, ARITHMETIC_POW, ARITHMETIC_SIN, ARITHMETIC_TAN
Constructor and Description |
---|
HotSpotBackend(HotSpotGraalRuntimeProvider runtime,
HotSpotProviders providers) |
Modifier and Type | Method and Description |
---|---|
void |
completeInitialization()
Performs any remaining initialization that was deferred until the runtime object was initialized and this backend was registered with it.
|
protected static Set<Register> |
gatherDefinedRegisters(LIR lir)
Finds all the registers that are defined by some given LIR.
|
HotSpotProviders |
getProviders() |
HotSpotGraalRuntimeProvider |
getRuntime() |
StackIntrospection |
getStackIntrospection() |
SuitesProvider |
getSuites() |
ReferenceMapBuilder |
newReferenceMapBuilder(int totalFrameSize) |
protected void |
profileInstructions(LIR lir,
CompilationResultBuilder crb) |
protected void |
updateStub(Stub stub,
Set<Register> destroyedRegisters,
Map<LIRFrameState,StandardOp.SaveRegistersOp> calleeSaveInfo,
FrameMap frameMap)
Updates a given stub with respect to the registers it destroys.
|
createAssembler, emitCode, getCodeCache, getConstantReflection, getForeignCalls, getMetaAccess, getTarget, newBytecodeLIRBuilder, newCompilationResultBuilder, newFrameMap, newFrameMapBuilder, newLIRGenerationResult, newLIRGenerator, newNodeLIRBuilder, newRegisterAllocationConfig
public static final ForeignCallDescriptor EXCEPTION_HANDLER
ExceptionHandlerStub
. This stub is called by the
exception handler in a compiled
method.public static final ForeignCallDescriptor IC_MISS_HANDLER
public static final ForeignCallDescriptor UNWIND_EXCEPTION_TO_CALLER
UnwindExceptionToCallerStub
. This stub is called by code generated
from UnwindNode
.public static final ForeignCallDescriptor EXCEPTION_HANDLER_IN_CALLER
private final HotSpotGraalRuntimeProvider runtime
public static final ForeignCallDescriptor FETCH_UNROLL_INFO
DeoptimizationFetchUnrollInfoCallNode
public static final ForeignCallDescriptor UNPACK_FRAMES
public static final ForeignCallDescriptor ENCRYPT_BLOCK
public static final ForeignCallDescriptor DECRYPT_BLOCK
public static final ForeignCallDescriptor ENCRYPT
public static final ForeignCallDescriptor DECRYPT
public static final ForeignCallDescriptor VM_ERROR
VMErrorNode
public static final ForeignCallDescriptor NEW_MULTI_ARRAY
public static final ForeignCallDescriptor NEW_ARRAY
public static final ForeignCallDescriptor NEW_INSTANCE
public static final ForeignCallDescriptor UNCOMMON_TRAP
UncommonTrapCallNode
public HotSpotBackend(HotSpotGraalRuntimeProvider runtime, HotSpotProviders providers)
public HotSpotGraalRuntimeProvider getRuntime()
public void completeInitialization()
protected static Set<Register> gatherDefinedRegisters(LIR lir)
lir
- the LIR to examinelir
protected void updateStub(Stub stub, Set<Register> destroyedRegisters, Map<LIRFrameState,StandardOp.SaveRegistersOp> calleeSaveInfo, FrameMap frameMap)
Any entry in calleeSaveInfo
that supports pruning will have destroyedRegisters
removed as these registers are declared as
temporaries in the stub's linkage (and thus will be saved by
the stub's caller).
stub
- the stub to updatedestroyedRegisters
- the registers destroyed by the stubcalleeSaveInfo
- a map from debug infos to the operations that provide their
callee-save informationframeMap
- used to convert a virtual
slot to a frame slot indexpublic StackIntrospection getStackIntrospection()
getStackIntrospection
in class Backend
public HotSpotProviders getProviders()
getProviders
in class Backend
public SuitesProvider getSuites()
protected void profileInstructions(LIR lir, CompilationResultBuilder crb)
public ReferenceMapBuilder newReferenceMapBuilder(int totalFrameSize)
newReferenceMapBuilder
in interface FrameMap.ReferenceMapBuilderFactory