Mercurial > hg > truffle
diff graal/com.oracle.graal.java/src/com/oracle/graal/java/GraphBuilderPhase.java @ 19622:0e90dbf0b9fd
Add merge boolean property to ExplodeLoop annotation to indicate that backward branches should be merged if possible.
author | Thomas Wuerthinger <thomas.wuerthinger@oracle.com> |
---|---|
date | Fri, 27 Feb 2015 14:06:36 +0100 |
parents | 711f46f691cf |
children | 490f2c54c28a |
line wrap: on
line diff
--- a/graal/com.oracle.graal.java/src/com/oracle/graal/java/GraphBuilderPhase.java Fri Feb 27 14:02:15 2015 +0100 +++ b/graal/com.oracle.graal.java/src/com/oracle/graal/java/GraphBuilderPhase.java Fri Feb 27 14:06:36 2015 +0100 @@ -203,6 +203,7 @@ private FixedWithNextNode lastInstr; // the last instruction added private final boolean explodeLoops; + private final boolean mergeExplosions; private Stack<ExplodedLoopContext> explodeLoopsContext; private int nextPeelIteration = 1; private boolean controlFlowSplit; @@ -230,8 +231,14 @@ LoopExplosionPlugin loopExplosionPlugin = graphBuilderConfig.getLoopExplosionPlugin(); if (loopExplosionPlugin != null) { explodeLoops = loopExplosionPlugin.shouldExplodeLoops(method); + if (explodeLoops) { + mergeExplosions = loopExplosionPlugin.shouldMergeExplosions(method); + } else { + mergeExplosions = false; + } } else { explodeLoops = false; + mergeExplosions = false; } }