Mercurial > hg > graal-compiler
diff graal/com.oracle.truffle.codegen.processor/src/com/oracle/truffle/codegen/processor/node/SpecializationData.java @ 9279:2a4b57f02fb4
Implemented basic support for assumptions for sourcecode generation.
author | Christian Humer <christian.humer@gmail.com> |
---|---|
date | Wed, 24 Apr 2013 17:44:15 +0200 |
parents | 97ad6d3e7557 |
children | 8e3a1635cc9e |
line wrap: on
line diff
--- a/graal/com.oracle.truffle.codegen.processor/src/com/oracle/truffle/codegen/processor/node/SpecializationData.java Tue Apr 23 21:03:47 2013 +0200 +++ b/graal/com.oracle.truffle.codegen.processor/src/com/oracle/truffle/codegen/processor/node/SpecializationData.java Wed Apr 24 17:44:15 2013 +0200 @@ -36,8 +36,9 @@ private final boolean uninitialized; private final List<SpecializationThrowsData> exceptions; private List<String> guardDefinitions = Collections.emptyList(); - private List<GuardData> guards; + private List<GuardData> guards = Collections.emptyList(); private List<ShortCircuitData> shortCircuits; + private List<String> assumptions = Collections.emptyList(); private boolean useSpecializationsForGeneric = true; private NodeData node; @@ -59,7 +60,6 @@ this.generic = generic; this.uninitialized = uninitialized; this.exceptions = Collections.emptyList(); - this.guards = new ArrayList<>(); } @Override @@ -81,6 +81,9 @@ if (!getGuards().isEmpty()) { return true; } + if (!getAssumptions().isEmpty()) { + return true; + } for (ActualParameter parameter : getParameters()) { NodeChildData field = getNode().findChild(parameter.getSpecification().getName()); if (field == null) { @@ -175,6 +178,14 @@ return useSpecializationsForGeneric; } + public List<String> getAssumptions() { + return assumptions; + } + + void setAssumptions(List<String> assumptions) { + this.assumptions = assumptions; + } + public SpecializationData findNextSpecialization() { List<SpecializationData> specializations = node.getSpecializations(); for (int i = 0; i < specializations.size() - 1; i++) {