Mercurial > hg > graal-compiler
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 |