Mercurial > hg > graal-jvmci-8
changeset 16569:d780f8b87d89
NonNullParametersPhase (and its HSAIL cousin) should join non-null rather than attempt to re-create the paramater stamp.
author | Gilles Duboscq <duboscq@ssw.jku.at> |
---|---|
date | Tue, 15 Jul 2014 16:50:02 +0200 |
parents | 4d3008ddb5a0 |
children | c54912403cb3 |
files | graal/com.oracle.graal.hotspot.hsail/src/com/oracle/graal/hotspot/hsail/HSAILHotSpotBackend.java graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/NonNullParametersPhase.java |
diffstat | 2 files changed, 6 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/graal/com.oracle.graal.hotspot.hsail/src/com/oracle/graal/hotspot/hsail/HSAILHotSpotBackend.java Tue Jul 15 13:12:58 2014 +0200 +++ b/graal/com.oracle.graal.hotspot.hsail/src/com/oracle/graal/hotspot/hsail/HSAILHotSpotBackend.java Tue Jul 15 16:50:02 2014 +0200 @@ -238,10 +238,12 @@ @Override protected void run(StructuredGraph graph) { int argCount = 0; + Stamp nonNull = StampFactory.objectNonNull(); for (ParameterNode param : graph.getNodes(ParameterNode.class)) { argCount++; if (argCount < numArgs && param.stamp() instanceof ObjectStamp) { - param.setStamp(StampFactory.declaredNonNull(((ObjectStamp) param.stamp()).type())); + ObjectStamp paramStamp = (ObjectStamp) param.stamp(); + param.setStamp(paramStamp.join(nonNull)); } } }
--- a/graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/NonNullParametersPhase.java Tue Jul 15 13:12:58 2014 +0200 +++ b/graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/NonNullParametersPhase.java Tue Jul 15 16:50:02 2014 +0200 @@ -34,9 +34,11 @@ @Override protected void run(StructuredGraph graph) { + Stamp nonNull = StampFactory.objectNonNull(); for (ParameterNode param : graph.getNodes(ParameterNode.class)) { if (param.stamp() instanceof ObjectStamp) { - param.setStamp(StampFactory.declaredNonNull(((ObjectStamp) param.stamp()).type())); + ObjectStamp paramStamp = (ObjectStamp) param.stamp(); + param.setStamp(paramStamp.join(nonNull)); } } }