Mercurial > hg > truffle
diff graal/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/model/SpecializationData.java @ 17251:6ee7afea175a
Truffle-DSL: Fixed @SlowPath was not applied to certain specialize0 implementations. This will reduce the pressure on the truffle cache.
author | Christian Humer <christian.humer@gmail.com> |
---|---|
date | Mon, 29 Sep 2014 18:37:24 +0200 |
parents | 89f635cbd85e |
children | a665483c3881 |
line wrap: on
line diff
--- a/graal/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/model/SpecializationData.java Mon Sep 29 18:37:24 2014 +0200 +++ b/graal/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/model/SpecializationData.java Mon Sep 29 18:37:24 2014 +0200 @@ -287,12 +287,19 @@ return String.format("%s [id = %s, method = %s, guards = %s, signature = %s]", getClass().getSimpleName(), getId(), getMethod(), getGuards(), getTypeSignature()); } - public boolean hasFrame(ProcessorContext context) { - for (Parameter param : getParameters()) { - if (ElementUtils.typeEquals(param.getType(), context.getTruffleTypes().getFrame())) { - return true; + public boolean isFrameUsedByGuard(ProcessorContext context) { + for (GuardExpression guard : getGuards()) { + if (guard.getResolvedGuard() == null) { + continue; + } + + for (Parameter param : guard.getResolvedGuard().getParameters()) { + if (ElementUtils.typeEquals(param.getType(), context.getTruffleTypes().getFrame())) { + return true; + } } } + return false; }