Mercurial > hg > graal-compiler
diff graal/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/model/NodeData.java @ 18776:c0fb70634640
Truffle-DSL: support for frame types Frame, MaterializedFrame. Added validation for frame type consistency. Some refactorings along the way.
author | Christian Humer <christian.humer@gmail.com> |
---|---|
date | Mon, 05 Jan 2015 01:31:08 +0100 |
parents | a665483c3881 |
children | 941761f6b736 |
line wrap: on
line diff
--- a/graal/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/model/NodeData.java Mon Jan 05 01:31:08 2015 +0100 +++ b/graal/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/model/NodeData.java Mon Jan 05 01:31:08 2015 +0100 @@ -54,23 +54,24 @@ private final NodeExecutionData thisExecution; private final boolean generateFactory; - public NodeData(ProcessorContext context, TypeElement type, String shortName, TypeSystemData typeSystem, List<NodeChildData> children, List<NodeExecutionData> executions, - List<NodeFieldData> fields, List<String> assumptions, boolean generateFactory) { + private TypeMirror frameType; + + public NodeData(ProcessorContext context, TypeElement type, String shortName, TypeSystemData typeSystem, boolean generateFactory) { super(context, type, null); - this.nodeId = type.getSimpleName().toString(); + this.nodeId = ElementUtils.getSimpleName(type); this.shortName = shortName; this.typeSystem = typeSystem; - this.fields = fields; - this.children = children; - this.childExecutions = executions; - this.assumptions = assumptions; + this.fields = new ArrayList<>(); + this.children = new ArrayList<>(); + this.childExecutions = new ArrayList<>(); + this.assumptions = new ArrayList<>(); this.thisExecution = new NodeExecutionData(new NodeChildData(null, null, "this", getNodeType(), getNodeType(), null, Cardinality.ONE), -1, false); this.thisExecution.getChild().setNode(this); this.generateFactory = generateFactory; } public NodeData(ProcessorContext context, TypeElement type) { - this(context, type, null, null, null, null, null, null, false); + this(context, type, null, null, false); } public boolean isGenerateFactory() { @@ -89,6 +90,14 @@ return false; } + public void setFrameType(TypeMirror frameType) { + this.frameType = frameType; + } + + public TypeMirror getFrameType() { + return frameType; + } + public void addEnclosedNode(NodeData node) { this.enclosingNodes.add(node); node.declaringNode = this; @@ -134,12 +143,12 @@ return 0; } - public boolean isFrameUsedByAnyGuard(ProcessorContext context) { + public boolean isFrameUsedByAnyGuard() { for (SpecializationData specialization : specializations) { if (!specialization.isReachable()) { continue; } - if (specialization.isFrameUsedByGuard(context)) { + if (specialization.isFrameUsedByGuard()) { return true; } }