Mercurial > hg > truffle
comparison graal/com.oracle.max.graal.nodes/src/com/oracle/max/graal/nodes/java/NewInstanceNode.java @ 4309:4a609a685fa4
changes to Node structures:
* add more uses of higher-level graph manipulation methods
* CanonicalierPhase cleanup
* introduce FloatingReadNode, make ReadNode an ordinary fixed nodeToBlock
* let Canonicalizable.canonical return ValueNode (instead of Node)
author | Lukas Stadler <lukas.stadler@jku.at> |
---|---|
date | Tue, 17 Jan 2012 19:45:39 +0100 |
parents | aaac4894175c |
children | df0deec2af08 |
comparison
equal
deleted
inserted
replaced
4308:cbed6f7e2d10 | 4309:4a609a685fa4 |
---|---|
98 | 98 |
99 @Override | 99 @Override |
100 public void beforeUpdate(Node node, Node usage) { | 100 public void beforeUpdate(Node node, Node usage) { |
101 if (usage instanceof RegisterFinalizerNode) { | 101 if (usage instanceof RegisterFinalizerNode) { |
102 RegisterFinalizerNode x = (RegisterFinalizerNode) usage; | 102 RegisterFinalizerNode x = (RegisterFinalizerNode) usage; |
103 x.replaceAndDelete(x.next()); | 103 ((StructuredGraph) x.graph()).removeFixed(x); |
104 } else { | 104 } else { |
105 super.beforeUpdate(node, usage); | 105 super.beforeUpdate(node, usage); |
106 } | 106 } |
107 } | 107 } |
108 | 108 |
113 if (x.object() == node) { | 113 if (x.object() == node) { |
114 int field = fieldIndex.get(((AccessFieldNode) current).field()); | 114 int field = fieldIndex.get(((AccessFieldNode) current).field()); |
115 if (current instanceof LoadFieldNode) { | 115 if (current instanceof LoadFieldNode) { |
116 assert fieldState[field] != null : field + ", " + ((AccessFieldNode) current).field(); | 116 assert fieldState[field] != null : field + ", " + ((AccessFieldNode) current).field(); |
117 x.replaceAtUsages(fieldState[field]); | 117 x.replaceAtUsages(fieldState[field]); |
118 assert x.usages().size() == 0; | 118 ((StructuredGraph) x.graph()).removeFixed(x); |
119 x.replaceAndDelete(x.next()); | |
120 } else if (current instanceof StoreFieldNode) { | 119 } else if (current instanceof StoreFieldNode) { |
121 fieldState[field] = ((StoreFieldNode) x).value(); | 120 fieldState[field] = ((StoreFieldNode) x).value(); |
122 assert x.usages().size() == 0; | 121 ((StructuredGraph) x.graph()).removeFixed(x); |
123 x.replaceAndDelete(x.next()); | |
124 return field; | 122 return field; |
125 } | 123 } |
126 } | 124 } |
127 } | 125 } |
128 return -1; | 126 return -1; |