# HG changeset patch # User Josef Eisl # Date 1430400754 -7200 # Node ID ad3a3c192be6414fcf737ca5f72ad789f7b86460 # Parent 975879e2cb495d180171966951251b9e606aa98c NodeLIRBuilder: relax verification of derived kinds for PHIs (aka look at stack kinds). diff -r 975879e2cb49 -r ad3a3c192be6 graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/gen/NodeLIRBuilder.java --- a/graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/gen/NodeLIRBuilder.java Thu Apr 30 11:04:06 2015 +0200 +++ b/graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/gen/NodeLIRBuilder.java Thu Apr 30 15:32:34 2015 +0200 @@ -205,9 +205,15 @@ } } LIRKind derivedKind = LIRKind.merge(values.toArray(new Value[values.size()])); + assert verifyPHIKind(derivedKind, gen.getLIRKind(phi.stamp())); + return derivedKind; + } + + private static boolean verifyPHIKind(LIRKind derivedKind, LIRKind phiKind) { assert derivedKind.getPlatformKind() != Kind.Object || !derivedKind.isDerivedReference(); - assert derivedKind.getPlatformKind().equals(gen.getLIRKind(phi.stamp()).getPlatformKind()); - return derivedKind; + PlatformKind phiPlatformKind = phiKind.getPlatformKind(); + assert derivedKind.getPlatformKind().equals(phiPlatformKind instanceof Kind ? ((Kind) phiPlatformKind).getStackKind() : phiPlatformKind); + return true; } private static boolean isPhiInputFromBackedge(PhiNode phi, int index) {