public interface CanonicalizerTool extends CoreProviders
| Modifier and Type | Method and Description |
|---|---|
boolean |
allUsagesAvailable()
If this method returns false, not all
usages of a node are yet
available. |
boolean |
canonicalizeReads()
Indicates whether the canonicalization of memory read operations to simpler operations or
constants is allowed.
|
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. |
default boolean |
finalCanonicalization()
Indicates whether this application of the canonicalizer is the last one during compilation.
|
Assumptions |
getAssumptions() |
OptionValues |
getOptions() |
Integer |
smallestCompareWidth()
Indicates the smallest width for comparing an integer value on the target platform.
|
boolean |
supportsRounding()
Indicates whether this target platform supports lowering
RoundNode. |
getConstantFieldProvider, getConstantReflection, getForeignCalls, getLoopsDataProvider, getLowerer, getMetaAccess, getMetaAccessExtensionProvider, getPlatformConfigurationProvider, getReplacements, getStampProvider, getWordVerificationAssumptions getAssumptions()
default boolean finalCanonicalization()
boolean canonicalizeReads()
ReadNode, LoadFieldNode and LoadIndexedNode.boolean allUsagesAvailable()
usages of a node are yet
available. So a node must not be canonicalized base on, e.g., information returned from
Node.hasNoUsages().Integer smallestCompareWidth()
boolean supportsRounding()
RoundNode.OptionValues getOptions()
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.