Mercurial > hg > graal-jvmci-8
changeset 18768:c16786645355
Split negated short-circuit-or guard into two guards
author | Andreas Woess <andreas.woess@jku.at> |
---|---|
date | Tue, 30 Dec 2014 14:52:38 +0100 |
parents | 7ff41ad072ef |
children | 144fba40c979 |
files | graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/FixedGuardNode.java |
diffstat | 1 files changed, 6 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/FixedGuardNode.java Tue Dec 30 02:21:15 2014 +0100 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/FixedGuardNode.java Tue Dec 30 14:52:38 2014 +0100 @@ -66,6 +66,12 @@ } this.replaceAtUsages(null); graph().removeFixed(this); + } else if (condition() instanceof ShortCircuitOrNode) { + ShortCircuitOrNode shortCircuitOr = (ShortCircuitOrNode) condition(); + if (isNegated() && usages().isEmpty()) { + graph().addAfterFixed(this, graph().add(FixedGuardNode.create(shortCircuitOr.getY(), getReason(), getAction(), !shortCircuitOr.isYNegated()))); + graph().replaceFixedWithFixed(this, graph().add(FixedGuardNode.create(shortCircuitOr.getX(), getReason(), getAction(), !shortCircuitOr.isXNegated()))); + } } }