comparison graal/com.oracle.truffle.codegen.processor/src/com/oracle/truffle/codegen/processor/node/SpecializationData.java @ 8592:a80bf36c6a1e

Refactor to shared template method signature comparison.
author Christian Humer <christian.humer@gmail.com>
date Mon, 01 Apr 2013 11:52:38 +0200
parents 89006c76f737
children 8a1115c92271
comparison
equal deleted inserted replaced
8591:5c58da5b8233 8592:a80bf36c6a1e
26 26
27 import com.oracle.truffle.api.codegen.*; 27 import com.oracle.truffle.api.codegen.*;
28 import com.oracle.truffle.codegen.processor.*; 28 import com.oracle.truffle.codegen.processor.*;
29 import com.oracle.truffle.codegen.processor.node.NodeFieldData.*; 29 import com.oracle.truffle.codegen.processor.node.NodeFieldData.*;
30 import com.oracle.truffle.codegen.processor.template.*; 30 import com.oracle.truffle.codegen.processor.template.*;
31 import com.oracle.truffle.codegen.processor.typesystem.*;
31 32
32 public class SpecializationData extends TemplateMethod { 33 public class SpecializationData extends TemplateMethod {
33 34
34 private final int order; 35 private final int order;
35 private final boolean generic; 36 private final boolean generic;
36 private final boolean uninitialized; 37 private final boolean uninitialized;
37 private final List<SpecializationThrowsData> exceptions; 38 private final List<SpecializationThrowsData> exceptions;
38 private List<SpecializationGuardData> guards; 39 private List<String> guardDefinitions = Collections.emptyList();
40 private List<GuardData> guards;
39 private List<ShortCircuitData> shortCircuits; 41 private List<ShortCircuitData> shortCircuits;
40 private boolean useSpecializationsForGeneric = true; 42 private boolean useSpecializationsForGeneric = true;
41 private NodeData node; 43 private NodeData node;
42 44
43 public SpecializationData(TemplateMethod template, int order, List<SpecializationThrowsData> exceptions) { 45 public SpecializationData(TemplateMethod template, int order, List<SpecializationThrowsData> exceptions) {
99 101
100 public void setNode(NodeData node) { 102 public void setNode(NodeData node) {
101 this.node = node; 103 this.node = node;
102 } 104 }
103 105
104 public void setGuards(List<SpecializationGuardData> guards) { 106 public void setGuards(List<GuardData> guards) {
105 this.guards = guards; 107 this.guards = guards;
108 }
109
110 public void setGuardDefinitions(List<String> guardDefinitions) {
111 this.guardDefinitions = guardDefinitions;
106 } 112 }
107 113
108 public int getOrder() { 114 public int getOrder() {
109 return order; 115 return order;
110 } 116 }
119 125
120 public List<SpecializationThrowsData> getExceptions() { 126 public List<SpecializationThrowsData> getExceptions() {
121 return exceptions; 127 return exceptions;
122 } 128 }
123 129
124 public List<SpecializationGuardData> getGuards() { 130 public List<String> getGuardDefinitions() {
131 return guardDefinitions;
132 }
133
134 public List<GuardData> getGuards() {
125 return guards; 135 return guards;
126 } 136 }
127 137
128 public void setShortCircuits(List<ShortCircuitData> shortCircuits) { 138 public void setShortCircuits(List<ShortCircuitData> shortCircuits) {
129 this.shortCircuits = shortCircuits; 139 this.shortCircuits = shortCircuits;
150 } 160 }
151 return null; 161 return null;
152 } 162 }
153 163
154 public boolean hasDynamicGuards() { 164 public boolean hasDynamicGuards() {
155 for (SpecializationGuardData guard : getGuards()) { 165 return !getGuards().isEmpty();
156 if (guard.isOnExecution()) {
157 return true;
158 }
159 }
160 return false;
161 } 166 }
162 167
163 } 168 }