Mercurial > hg > graal-compiler
changeset 23363:2a73030c41ad
detect runaway unroll via growth instead of fixed size
author | Lukas Stadler <lukas.stadler@oracle.com> |
---|---|
date | Fri, 29 Jan 2016 10:22:38 +0100 |
parents | 58fa03b34d5f |
children | 5f3a13d32883 |
files | graal/com.oracle.graal.loop.phases/src/com/oracle/graal/loop/phases/LoopTransformations.java |
diffstat | 1 files changed, 2 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/graal/com.oracle.graal.loop.phases/src/com/oracle/graal/loop/phases/LoopTransformations.java Thu Jan 28 18:45:33 2016 +0100 +++ b/graal/com.oracle.graal.loop.phases/src/com/oracle/graal/loop/phases/LoopTransformations.java Fri Jan 29 10:22:38 2016 +0100 @@ -61,12 +61,13 @@ // assert loop.isCounted(); //TODO (gd) strenghten : counted with known trip count LoopBeginNode loopBegin = loop.loopBegin(); StructuredGraph graph = loopBegin.graph(); + int initialNodeCount = graph.getNodeCount(); while (!loopBegin.isDeleted()) { Mark mark = graph.getMark(); peel(loop); canonicalizer.applyIncremental(graph, context, mark); loop.invalidateFragments(); - if (graph.getNodeCount() > MaximumDesiredSize.getValue() * 3) { + if (graph.getNodeCount() > initialNodeCount + MaximumDesiredSize.getValue() * 2) { throw new BailoutException("FullUnroll : Graph seems to grow out of proportion"); } }