< prev index next >
src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.phases/src/org/graalvm/compiler/phases/schedule/SchedulePhase.java
Print this page
rev 52509 : [mq]: graal2
*** 548,558 ****
Block currentBlock = latestBlock;
while (currentBlock.getLoopDepth() > earliestBlock.getLoopDepth() && currentBlock != earliestBlock.getDominator()) {
Block previousCurrentBlock = currentBlock;
currentBlock = currentBlock.getDominator();
if (previousCurrentBlock.isLoopHeader()) {
! if (currentBlock.probability() < latestBlock.probability() || ((StructuredGraph) currentNode.graph()).hasValueProxies()) {
// Only assign new latest block if frequency is actually lower or if
// loop proxies would be required otherwise.
latestBlock = currentBlock;
}
}
--- 548,558 ----
Block currentBlock = latestBlock;
while (currentBlock.getLoopDepth() > earliestBlock.getLoopDepth() && currentBlock != earliestBlock.getDominator()) {
Block previousCurrentBlock = currentBlock;
currentBlock = currentBlock.getDominator();
if (previousCurrentBlock.isLoopHeader()) {
! if (currentBlock.getRelativeFrequency() < latestBlock.getRelativeFrequency() || ((StructuredGraph) currentNode.graph()).hasValueProxies()) {
// Only assign new latest block if frequency is actually lower or if
// loop proxies would be required otherwise.
latestBlock = currentBlock;
}
}
*** 565,575 ****
}
if (latestBlock != earliestBlock && currentNode instanceof FloatingReadNode) {
FloatingReadNode floatingReadNode = (FloatingReadNode) currentNode;
! if (isImplicitNullOpportunity(floatingReadNode, earliestBlock) && earliestBlock.probability() < latestBlock.probability() * IMPLICIT_NULL_CHECK_OPPORTUNITY_PROBABILITY_FACTOR) {
latestBlock = earliestBlock;
}
}
selectLatestBlock(currentNode, earliestBlock, latestBlock, currentNodeMap, watchListMap, constrainingLocation, latestBlockToNodesMap);
--- 565,576 ----
}
if (latestBlock != earliestBlock && currentNode instanceof FloatingReadNode) {
FloatingReadNode floatingReadNode = (FloatingReadNode) currentNode;
! if (isImplicitNullOpportunity(floatingReadNode, earliestBlock) &&
! earliestBlock.getRelativeFrequency() < latestBlock.getRelativeFrequency() * IMPLICIT_NULL_CHECK_OPPORTUNITY_PROBABILITY_FACTOR) {
latestBlock = earliestBlock;
}
}
selectLatestBlock(currentNode, earliestBlock, latestBlock, currentNodeMap, watchListMap, constrainingLocation, latestBlockToNodesMap);
< prev index next >