Mercurial > hg > graal-compiler
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 } |