Mercurial > hg > graal-jvmci-8
diff graal/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/node/SpecializationData.java @ 10602:b8fe1fe004ec
Truffle-DSL: fixed bugs in the generated polymorphic code generation.
author | Christian Humer <christian.humer@gmail.com> |
---|---|
date | Tue, 02 Jul 2013 19:21:59 +0200 |
parents | 79041ab43660 |
children | 6879565ee10b |
line wrap: on
line diff
--- a/graal/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/node/SpecializationData.java Tue Jul 02 14:51:22 2013 +0200 +++ b/graal/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/node/SpecializationData.java Tue Jul 02 19:21:59 2013 +0200 @@ -107,7 +107,8 @@ if (child == null) { continue; } - if (!parameter.getTypeSystemType().isGeneric()) { + ActualParameter genericParameter = getNode().getGenericSpecialization().findParameter(parameter.getLocalName()); + if (!parameter.getTypeSystemType().equals(genericParameter.getTypeSystemType())) { return false; } } @@ -223,6 +224,16 @@ this.assumptions = assumptions; } + public SpecializationData findPreviousSpecialization() { + List<SpecializationData> specializations = node.getSpecializations(); + for (int i = 0; i < specializations.size() - 1; i++) { + if (specializations.get(i) == this && i > 0) { + return specializations.get(i - 1); + } + } + return null; + } + public SpecializationData findNextSpecialization() { List<SpecializationData> specializations = node.getSpecializations(); for (int i = 0; i < specializations.size() - 1; i++) {