Mercurial > hg > graal-compiler
diff graal/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/model/NodeData.java @ 20945:1ed58a90b510
Truffle-DSL: fixed isFrameUsedByAnyGuard() was incomplete
author | Christian Humer <christian.humer@gmail.com> |
---|---|
date | Tue, 14 Apr 2015 19:23:33 +0200 |
parents | 476374f3fe9a |
children | 56eb34a5aa22 |
line wrap: on
line diff
--- a/graal/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/model/NodeData.java Tue Apr 14 19:23:32 2015 +0200 +++ b/graal/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/model/NodeData.java Tue Apr 14 19:23:33 2015 +0200 @@ -143,8 +143,18 @@ if (!specialization.isReachable()) { continue; } - if (specialization.isFrameUsed()) { - return true; + Parameter frame = specialization.getFrame(); + if (frame != null) { + for (GuardExpression guard : specialization.getGuards()) { + if (guard.getExpression().findBoundVariableElements().contains(frame.getVariableElement())) { + return true; + } + } + for (CacheExpression cache : specialization.getCaches()) { + if (cache.getExpression().findBoundVariableElements().contains(frame.getVariableElement())) { + return true; + } + } } } return false;