Mercurial > hg > truffle
diff graal/com.oracle.graal.lir/src/com/oracle/graal/lir/ssa/SSAUtils.java @ 21226:2f2fac20c446
LIRVerifier: verify PHIs.
author | Josef Eisl <josef.eisl@jku.at> |
---|---|
date | Thu, 23 Apr 2015 11:30:36 +0200 |
parents | f226f63af996 |
children | f85711ac631c |
line wrap: on
line diff
--- a/graal/com.oracle.graal.lir/src/com/oracle/graal/lir/ssa/SSAUtils.java Wed Apr 29 11:57:47 2015 +0200 +++ b/graal/com.oracle.graal.lir/src/com/oracle/graal/lir/ssa/SSAUtils.java Thu Apr 23 11:30:36 2015 +0200 @@ -103,4 +103,14 @@ return new SSAVerifier(lir).verify(); } + public static void verifyPhi(LIR lir, AbstractBlockBase<?> merge) { + assert merge.getPredecessorCount() > 1; + for (AbstractBlockBase<?> pred : merge.getPredecessors()) { + forEachPhiValuePair(lir, merge, pred, (phiIn, phiOut) -> { + assert phiIn.getLIRKind().equals(phiOut.getLIRKind()) || + (phiIn.getPlatformKind().equals(phiOut.getPlatformKind()) && phiIn.getLIRKind().isDerivedReference() && phiOut.getLIRKind().isValue()); + }); + } + } + }