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;