Mercurial > hg > graal-jvmci-8
changeset 21239:ad3a3c192be6
NodeLIRBuilder: relax verification of derived kinds for PHIs (aka look at stack kinds).
author | Josef Eisl <josef.eisl@jku.at> |
---|---|
date | Thu, 30 Apr 2015 15:32:34 +0200 |
parents | 975879e2cb49 |
children | 1e9242c9735e |
files | graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/gen/NodeLIRBuilder.java |
diffstat | 1 files changed, 8 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- 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) {