comparison graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/type/FloatStamp.java @ 5820:547587296886

Make ReadEliminationPhase support phis (eliminates read when the last access is a memeory phi of writes, recursively) Add a TopStamp (identity element for meet) and use it to create kind-less phis that later get a non-top phi by infering thir stamp thanks to inputs ignore binary graph files
author Gilles Duboscq <duboscq@ssw.jku.at>
date Thu, 12 Jul 2012 18:58:36 +0200
parents 7e397af98eab
children f28115ee6108
comparison
equal deleted inserted replaced
5819:8fd81d0e3acf 5820:547587296886
89 return (nonNaN || other.nonNaN) && (lowerBound > other.upperBound || upperBound < other.lowerBound); 89 return (nonNaN || other.nonNaN) && (lowerBound > other.upperBound || upperBound < other.lowerBound);
90 } 90 }
91 91
92 @Override 92 @Override
93 public Stamp meet(Stamp otherStamp) { 93 public Stamp meet(Stamp otherStamp) {
94 if (otherStamp == StampFactory.top()) {
95 return this;
96 }
94 FloatStamp other = (FloatStamp) otherStamp; 97 FloatStamp other = (FloatStamp) otherStamp;
95 assert kind() == other.kind(); 98 assert kind() == other.kind();
96 double meetUpperBound = Math.max(upperBound, other.upperBound); 99 double meetUpperBound = Math.max(upperBound, other.upperBound);
97 double meetLowerBound = Math.min(lowerBound, other.lowerBound); 100 double meetLowerBound = Math.min(lowerBound, other.lowerBound);
98 boolean meetNonNaN = nonNaN && other.nonNaN; 101 boolean meetNonNaN = nonNaN && other.nonNaN;