comparison graal/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/parser/NodeParser.java @ 16820:0370880ac9ce

Truffle-DSL: better caching for type checks.
author Christian Humer <christian.humer@gmail.com>
date Wed, 13 Aug 2014 18:06:26 +0200
parents 38d243eaad41
children 84f1c44b5e9b
comparison
equal deleted inserted replaced
16819:8d374faacb7e 16820:0370880ac9ce
144 if (node.hasErrors()) { 144 if (node.hasErrors()) {
145 return node; // error sync point 145 return node; // error sync point
146 } 146 }
147 147
148 initializeChildren(node); 148 initializeChildren(node);
149 node.setExecutableTypes(groupExecutableTypes(new ExecutableTypeMethodParser(context, node).parse(elements)));
149 150
150 node.getSpecializations().addAll(new SpecializationMethodParser(context, node).parse(elements)); 151 node.getSpecializations().addAll(new SpecializationMethodParser(context, node).parse(elements));
151 node.getSpecializations().addAll(new GenericParser(context, node).parse(elements)); 152 node.getSpecializations().addAll(new GenericParser(context, node).parse(elements));
152 node.getCasts().addAll(new CreateCastParser(context, node).parse(elements)); 153 node.getCasts().addAll(new CreateCastParser(context, node).parse(elements));
153 node.getShortCircuits().addAll(new ShortCircuitParser(context, node).parse(elements)); 154 node.getShortCircuits().addAll(new ShortCircuitParser(context, node).parse(elements));
207 List<NodeFieldData> fields = parseFields(typeHierarchy, elements); 208 List<NodeFieldData> fields = parseFields(typeHierarchy, elements);
208 List<NodeChildData> children = parseChildren(typeHierarchy, elements); 209 List<NodeChildData> children = parseChildren(typeHierarchy, elements);
209 List<NodeExecutionData> executions = parseExecutions(children, elements); 210 List<NodeExecutionData> executions = parseExecutions(children, elements);
210 211
211 NodeData nodeData = new NodeData(context, templateType, shortName, typeSystem, children, executions, fields, assumptionsList); 212 NodeData nodeData = new NodeData(context, templateType, shortName, typeSystem, children, executions, fields, assumptionsList);
212 nodeData.setExecutableTypes(groupExecutableTypes(new ExecutableTypeMethodParser(context, nodeData).parse(elements)));
213 213
214 parsedNodes.put(ElementUtils.getQualifiedName(templateType), nodeData); 214 parsedNodes.put(ElementUtils.getQualifiedName(templateType), nodeData);
215 215
216 return nodeData; 216 return nodeData;
217 } 217 }