# HG changeset patch # User Thomas Wuerthinger # Date 1424212275 -3600 # Node ID dd9811d734e15f5e11eb9c8825eb2cbd75bb80b2 # Parent f13ce59e415053a1f9440790b531c85066afec8d Undo previous change on probability cut-off for inlining. Perform experiment later. diff -r f13ce59e4150 -r dd9811d734e1 graal/com.oracle.graal.java/src/com/oracle/graal/java/GraphBuilderPhase.java --- a/graal/com.oracle.graal.java/src/com/oracle/graal/java/GraphBuilderPhase.java Tue Feb 17 23:08:49 2015 +0100 +++ b/graal/com.oracle.graal.java/src/com/oracle/graal/java/GraphBuilderPhase.java Tue Feb 17 23:31:15 2015 +0100 @@ -1672,8 +1672,6 @@ @Override protected void genIf(ValueNode x, Condition cond, ValueNode y) { - // assert !x.isDeleted() && !y.isDeleted(); - // assert currentBlock.numNormalSuccessors() == 2; assert currentBlock.getSuccessorCount() == 2; BciBlock trueBlock = currentBlock.getSuccessor(0); BciBlock falseBlock = currentBlock.getSuccessor(1); @@ -1725,6 +1723,9 @@ condition = currentGraph.unique(condition); } + // Need to get probability based on current bci. + double probability = branchProbability(); + int oldBci = stream.currentBCI(); int trueBlockInt = checkPositiveIntConstantPushed(trueBlock); if (trueBlockInt != -1) { @@ -1766,7 +1767,6 @@ this.controlFlowSplit = true; - double probability = branchProbability(); ValueNode trueSuccessor = createBlockTarget(probability, trueBlock, frameState); ValueNode falseSuccessor = createBlockTarget(1 - probability, falseBlock, frameState); diff -r f13ce59e4150 -r dd9811d734e1 graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/inlining/policy/GreedyInliningPolicy.java --- a/graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/inlining/policy/GreedyInliningPolicy.java Tue Feb 17 23:08:49 2015 +0100 +++ b/graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/inlining/policy/GreedyInliningPolicy.java Tue Feb 17 23:31:15 2015 +0100 @@ -102,11 +102,6 @@ return false; } - if (probability <= 0.00001 && nodes >= TrivialInliningSize.getValue() * 2) { - InliningUtil.logNotInlinedMethod(info, inliningDepth, "probability-based (relevance=%f, probability=%f, bonus=%f, nodes=%d > %f)", relevance, probability, inliningBonus, nodes); - return false; - } - double maximumNodes = computeMaximumSize(relevance, (int) (MaximumInliningSize.getValue() * inliningBonus)); if (nodes <= maximumNodes) { InliningUtil.logInlinedMethod(info, inliningDepth, fullyProcessed, "relevance-based (relevance=%f, probability=%f, bonus=%f, nodes=%d <= %f)", relevance, probability, inliningBonus,