protected final class CanonicalizerPhase.Tool extends CoreProvidersDelegate implements SimplifierTool, NodeView
NodeView.Default| Modifier and Type | Method and Description |
|---|---|
void |
addToWorkList(Iterable<? extends Node> nodes) |
void |
addToWorkList(Node node)
Adds a node to the worklist independent of whether it has already been on the worklist.
|
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.
|
void |
deleteBranch(Node branch) |
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. |
boolean |
finalCanonicalization()
Indicates whether this application of the canonicalizer is the last one during compilation.
|
Assumptions |
getAssumptions() |
OptionValues |
getOptions() |
void |
removeIfUnused(Node node) |
Integer |
smallestCompareWidth()
Indicates the smallest width for comparing an integer value on the target platform.
|
Stamp |
stamp(ValueNode node)
Return a view-specific stamp of the node.
|
boolean |
supportsRounding()
Indicates whether this target platform supports lowering
RoundNode. |
boolean |
trySinkWriteFences() |
getConstantFieldProvider, getConstantReflection, getForeignCalls, getLoopsDataProvider, getLowerer, getMetaAccess, getMetaAccessExtensionProvider, getPlatformConfigurationProvider, getProviders, getReplacements, getStampProvider, getWordVerificationclone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitgetConstantFieldProvider, getConstantReflection, getForeignCalls, getLoopsDataProvider, getLowerer, getMetaAccess, getMetaAccessExtensionProvider, getPlatformConfigurationProvider, getReplacements, getStampProvider, getWordVerificationpublic void deleteBranch(Node branch)
deleteBranch in interface SimplifierToolpublic void addToWorkList(Node node)
SimplifierTooladdToWorkList in interface SimplifierToolpublic void addToWorkList(Iterable<? extends Node> nodes)
addToWorkList in interface SimplifierToolpublic void removeIfUnused(Node node)
removeIfUnused in interface SimplifierToolpublic boolean canonicalizeReads()
CanonicalizerToolReadNode, LoadFieldNode and LoadIndexedNode.canonicalizeReads in interface CanonicalizerToolpublic boolean finalCanonicalization()
CanonicalizerToolfinalCanonicalization in interface CanonicalizerToolpublic boolean allUsagesAvailable()
CanonicalizerToolusages of a node are yet
available. So a node must not be canonicalized base on, e.g., information returned from
Node.hasNoUsages().allUsagesAvailable in interface CanonicalizerToolpublic boolean trySinkWriteFences()
trySinkWriteFences in interface SimplifierToolpublic Assumptions getAssumptions()
getAssumptions in interface CanonicalizerToolpublic Integer smallestCompareWidth()
CanonicalizerToolsmallestCompareWidth in interface CanonicalizerToolpublic boolean supportsRounding()
CanonicalizerToolRoundNode.supportsRounding in interface CanonicalizerToolpublic OptionValues getOptions()
getOptions in interface CanonicalizerToolpublic Stamp stamp(ValueNode node)
NodeViewpublic boolean divisionOverflowIsJVMSCompliant()
CanonicalizerToolidiv 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.divisionOverflowIsJVMSCompliant in interface CanonicalizerTool