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