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());
+            });
+        }
+    }
+
 }