Mercurial > hg > truffle
diff graal/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/node/SpecializationGroup.java @ 11507:d6a5ab791b0d
Truffle-DSL: fixed a bug in grouping of abstract guards.
author | Christian Humer <christian.humer@gmail.com> |
---|---|
date | Mon, 02 Sep 2013 15:22:25 +0200 |
parents | a317acdd5f2c |
children | 85dcc7f59c34 |
line wrap: on
line diff
--- a/graal/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/node/SpecializationGroup.java Fri Aug 30 17:45:53 2013 +0200 +++ b/graal/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/node/SpecializationGroup.java Mon Sep 02 15:22:25 2013 +0200 @@ -119,6 +119,11 @@ if (previous == null || previous.getGuards().size() != elseConnectedGuards.size() + 1) { return null; } + + if (elseConnectedGuards.contains(guard)) { + return guard; + } + GuardData previousGuard = previous.getGuards().get(elseConnectedGuards.size()); if (guard.getMethod().equals(previousGuard.getMethod()) && guard.isNegated() != previousGuard.isNegated()) { return guard; @@ -212,7 +217,7 @@ int signatureIndex = 0; for (ActualParameter parameter : guardMatch.getParameters()) { signatureIndex++; - if (parameter.getSpecification().isSignature()) { + if (!parameter.getSpecification().isSignature()) { continue; }