Mercurial > hg > graal-compiler
changeset 23001:8fbac394a175
LIR: add OperandFlag.OUTGOING.
author | Josef Eisl <josef.eisl@jku.at> |
---|---|
date | Mon, 16 Nov 2015 14:59:32 +0100 |
parents | e7a33f98252a |
children | c067330a1ca1 |
files | graal/com.oracle.graal.lir/src/com/oracle/graal/lir/LIRInstruction.java graal/com.oracle.graal.lir/src/com/oracle/graal/lir/StandardOp.java |
diffstat | 2 files changed, 8 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/graal/com.oracle.graal.lir/src/com/oracle/graal/lir/LIRInstruction.java Mon Nov 16 15:46:07 2015 +0100 +++ b/graal/com.oracle.graal.lir/src/com/oracle/graal/lir/LIRInstruction.java Mon Nov 16 14:59:32 2015 +0100 @@ -26,6 +26,7 @@ import static com.oracle.graal.lir.LIRInstruction.OperandFlag.CONST; import static com.oracle.graal.lir.LIRInstruction.OperandFlag.HINT; import static com.oracle.graal.lir.LIRInstruction.OperandFlag.ILLEGAL; +import static com.oracle.graal.lir.LIRInstruction.OperandFlag.OUTGOING; import static com.oracle.graal.lir.LIRInstruction.OperandFlag.REG; import static com.oracle.graal.lir.LIRInstruction.OperandFlag.STACK; import static com.oracle.graal.lir.LIRInstruction.OperandFlag.UNINITIALIZED; @@ -160,6 +161,9 @@ * is only used to avoid false positives in verification code. */ UNINITIALIZED, + + /** Outgoing block value. */ + OUTGOING, } /** @@ -170,7 +174,7 @@ static { ALLOWED_FLAGS = new EnumMap<>(OperandMode.class); ALLOWED_FLAGS.put(OperandMode.USE, EnumSet.of(REG, STACK, COMPOSITE, CONST, ILLEGAL, HINT, UNINITIALIZED)); - ALLOWED_FLAGS.put(ALIVE, EnumSet.of(REG, STACK, COMPOSITE, CONST, ILLEGAL, HINT, UNINITIALIZED)); + ALLOWED_FLAGS.put(ALIVE, EnumSet.of(REG, STACK, COMPOSITE, CONST, ILLEGAL, HINT, UNINITIALIZED, OUTGOING)); ALLOWED_FLAGS.put(TEMP, EnumSet.of(REG, STACK, COMPOSITE, ILLEGAL, HINT)); ALLOWED_FLAGS.put(DEF, EnumSet.of(REG, STACK, COMPOSITE, ILLEGAL, HINT)); }
--- a/graal/com.oracle.graal.lir/src/com/oracle/graal/lir/StandardOp.java Mon Nov 16 15:46:07 2015 +0100 +++ b/graal/com.oracle.graal.lir/src/com/oracle/graal/lir/StandardOp.java Mon Nov 16 14:59:32 2015 +0100 @@ -24,6 +24,7 @@ import static com.oracle.graal.lir.LIRInstruction.OperandFlag.CONST; import static com.oracle.graal.lir.LIRInstruction.OperandFlag.HINT; +import static com.oracle.graal.lir.LIRInstruction.OperandFlag.OUTGOING; import static com.oracle.graal.lir.LIRInstruction.OperandFlag.REG; import static com.oracle.graal.lir.LIRInstruction.OperandFlag.STACK; import static com.oracle.graal.lir.LIRValueUtil.isVariable; @@ -172,9 +173,9 @@ public abstract static class AbstractBlockEndOp extends LIRInstruction implements BlockEndOp { public static final LIRInstructionClass<AbstractBlockEndOp> TYPE = LIRInstructionClass.create(AbstractBlockEndOp.class); - private static final EnumSet<OperandFlag> flags = EnumSet.of(REG, STACK, CONST); + private static final EnumSet<OperandFlag> flags = EnumSet.of(REG, STACK, CONST, OUTGOING); - @Alive({REG, STACK, CONST}) private Value[] outgoingValues; + @Alive({REG, STACK, CONST, OUTGOING}) private Value[] outgoingValues; private int size; protected AbstractBlockEndOp(LIRInstructionClass<? extends AbstractBlockEndOp> c) {