# HG changeset patch # User Thomas Wuerthinger # Date 1424190708 -3600 # Node ID c5d5bbf7ec6cee789187246af2477b4483dda498 # Parent 67337afcb69ef996dbbb08e5f21be6b66089f954 Cut off loop exit probability at 1D. diff -r 67337afcb69e -r c5d5bbf7ec6c graal/com.oracle.graal.java/src/com/oracle/graal/java/ComputeLoopFrequenciesClosure.java --- a/graal/com.oracle.graal.java/src/com/oracle/graal/java/ComputeLoopFrequenciesClosure.java Tue Feb 17 17:05:04 2015 +0100 +++ b/graal/com.oracle.graal.java/src/com/oracle/graal/java/ComputeLoopFrequenciesClosure.java Tue Feb 17 17:31:48 2015 +0100 @@ -62,10 +62,11 @@ Map exitStates = ReentrantNodeIterator.processLoop(this, loop, 1D).exitStates; double exitProbability = exitStates.values().stream().mapToDouble(d -> d).sum(); - assert exitProbability <= 1D && exitProbability >= 0D; + exitProbability = Math.min(1D, exitProbability); if (exitProbability < MIN_PROBABILITY) { exitProbability = MIN_PROBABILITY; } + assert exitProbability <= 1D && exitProbability >= 0D; double loopFrequency = 1D / exitProbability; loop.setLoopFrequency(loopFrequency);