Mercurial > hg > graal-compiler
comparison graal/com.oracle.truffle.api.dsl/src/com/oracle/truffle/api/dsl/internal/SpecializationNode.java @ 20129:5b7db8941fd7
Truffle: make NodeClass and NodeField a top-level class.
author | Christian Humer <christian.humer@gmail.com> |
---|---|
date | Thu, 02 Apr 2015 01:22:41 +0200 |
parents | 7108d2319169 |
children | 8dc73c226c63 |
comparison
equal
deleted
inserted
replaced
20128:7ad60a16bbb0 | 20129:5b7db8941fd7 |
---|---|
37 import com.oracle.truffle.api.dsl.internal.SlowPathEvent.SlowPathEvent4; | 37 import com.oracle.truffle.api.dsl.internal.SlowPathEvent.SlowPathEvent4; |
38 import com.oracle.truffle.api.dsl.internal.SlowPathEvent.SlowPathEvent5; | 38 import com.oracle.truffle.api.dsl.internal.SlowPathEvent.SlowPathEvent5; |
39 import com.oracle.truffle.api.dsl.internal.SlowPathEvent.SlowPathEventN; | 39 import com.oracle.truffle.api.dsl.internal.SlowPathEvent.SlowPathEventN; |
40 import com.oracle.truffle.api.frame.*; | 40 import com.oracle.truffle.api.frame.*; |
41 import com.oracle.truffle.api.nodes.*; | 41 import com.oracle.truffle.api.nodes.*; |
42 import com.oracle.truffle.api.nodes.NodeUtil.NodeClass; | 42 import com.oracle.truffle.api.nodes.NodeFieldAccessor; |
43 import com.oracle.truffle.api.nodes.NodeUtil.NodeField; | |
44 | 43 |
45 /** | 44 /** |
46 * Internal implementation dependent base class for generated specialized nodes. | 45 * Internal implementation dependent base class for generated specialized nodes. |
47 */ | 46 */ |
48 @NodeInfo(cost = NodeCost.NONE) | 47 @NodeInfo(cost = NodeCost.NONE) |
78 updateRootImpl(((SpecializedNode) node).getSpecializationNode(), node); | 77 updateRootImpl(((SpecializedNode) node).getSpecializationNode(), node); |
79 return node; | 78 return node; |
80 } | 79 } |
81 | 80 |
82 private static void updateRootImpl(SpecializationNode start, Node node) { | 81 private static void updateRootImpl(SpecializationNode start, Node node) { |
83 NodeField[] fields = NodeClass.get(start.getClass()).getFields(); | 82 NodeFieldAccessor[] fields = NodeClass.get(start.getClass()).getFields(); |
84 for (int i = fields.length - 1; i >= 0; i--) { | 83 for (int i = fields.length - 1; i >= 0; i--) { |
85 NodeField f = fields[i]; | 84 NodeFieldAccessor f = fields[i]; |
86 if (f.getName().equals("root")) { | 85 if (f.getName().equals("root")) { |
87 f.putObject(start, node); | 86 f.putObject(start, node); |
88 break; | 87 break; |
89 } | 88 } |
90 } | 89 } |