comparison graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/CanonicalizerPhase.java @ 15866:0456d9b10322

CanonicalizerPhase: canonicalize usages when stamp changes
author Gilles Duboscq <duboscq@ssw.jku.at>
date Fri, 23 May 2014 14:51:59 +0200
parents 07ca8c86d31c
children edc33e8715d5
comparison
equal deleted inserted replaced
15865:3a5ddfa22e77 15866:0456d9b10322
187 if (constant != null && !(node instanceof ConstantNode)) { 187 if (constant != null && !(node instanceof ConstantNode)) {
188 valueNode.replaceAtUsages(InputType.Value, ConstantNode.forConstant(valueNode.stamp(), constant, context.getMetaAccess(), graph)); 188 valueNode.replaceAtUsages(InputType.Value, ConstantNode.forConstant(valueNode.stamp(), constant, context.getMetaAccess(), graph));
189 GraphUtil.tryKillUnused(valueNode); 189 GraphUtil.tryKillUnused(valueNode);
190 } else if (improvedStamp) { 190 } else if (improvedStamp) {
191 // the improved stamp may enable additional canonicalization 191 // the improved stamp may enable additional canonicalization
192 tryCanonicalize(valueNode, nodeClass); 192 if (!tryCanonicalize(valueNode, nodeClass)) {
193 valueNode.usages().forEach(workList::add);
194 }
193 } 195 }
194 } 196 }
195 } 197 }
196 } 198 }
197 199