public interface LoweringProvider
Modifier and Type | Method and Description |
---|---|
boolean |
divisionOverflowIsJVMSCompliant()
Indicates whether the target platform complies with the JVM specification semantics for
idiv and ldiv when the dividend is Integer.MAX_VALUE or
Long.MAX_VALUE respectively and the divisor is -1 . |
TargetDescription |
getTarget()
Returns the target being lowered.
|
void |
lower(Node n,
LoweringTool tool) |
boolean |
narrowsUseCastValue()
Indicates whether this target platform supports uses
CastValue for narrows. |
ValueNode |
reconstructArrayIndex(JavaKind elementKind,
AddressNode address)
Reconstructs the array index from an address node that was created as a lowering of an
indexed access to an array.
|
Integer |
smallestCompareWidth()
Indicates the smallest width for comparing an integer value on the target platform.
|
boolean |
supportsBulkZeroing()
Indicates whether this target platform supports bulk zeroing of arbitrary size.
|
boolean |
supportsFoldingExtendIntoAccess(ExtendableMemoryAccess access,
MemoryExtendKind extendKind)
Indicates whether this target platform can fold an
extendKind into a given
ExtendableMemoryAccess . |
boolean |
supportsImplicitNullChecks()
Indicates whether this target platform supports the usage of implicit (trapping) null checks.
|
boolean |
supportsOptimizedFilling(OptionValues options)
Indicates whether this target platform supports optimized filling of memory regions with
long values. |
boolean |
supportsRounding()
Indicates whether this target platform supports lowering
RoundNode . |
boolean |
writesStronglyOrdered()
Indicates whether all writes are ordered on this target platform.
|
void lower(Node n, LoweringTool tool)
ValueNode reconstructArrayIndex(JavaKind elementKind, AddressNode address)
elementKind
- the JavaKind
of the array elementsaddress
- an AddressNode
pointing to an element in an arrayInteger smallestCompareWidth()
boolean supportsBulkZeroing()
boolean supportsOptimizedFilling(OptionValues options)
long
values.boolean supportsRounding()
RoundNode
.boolean supportsImplicitNullChecks()
boolean writesStronglyOrdered()
TargetDescription getTarget()
boolean divisionOverflowIsJVMSCompliant()
idiv
and ldiv
when the dividend is Integer.MAX_VALUE
or
Long.MAX_VALUE
respectively and the divisor is -1
. The specified result for
this case is the dividend.boolean narrowsUseCastValue()
CastValue
for narrows.boolean supportsFoldingExtendIntoAccess(ExtendableMemoryAccess access, MemoryExtendKind extendKind)
extendKind
into a given
ExtendableMemoryAccess
.