changeset 22721:2d6bcedb5058

Allow OperandMode.TEMP to be STACK; do not reuse VirtualStackSlot for temp slots on SPARC
author Stefan Anzinger <stefan.anzinger@oracle.com>
date Tue, 29 Sep 2015 16:01:13 +0200
parents bba4e91a2d63
children cbc844f64937
files graal/com.oracle.graal.compiler.sparc/src/com/oracle/graal/compiler/sparc/SPARCLIRGenerator.java graal/com.oracle.graal.lir.sparc/src/com/oracle/graal/lir/sparc/SPARCMove.java graal/com.oracle.graal.lir/src/com/oracle/graal/lir/LIRInstruction.java graal/com.oracle.graal.truffle.test/src/sl/TestCompilationThreshold.sl graal/com.oracle.graal.truffle.test/src/sl/TestDeoptInInlinedFunction.output graal/com.oracle.graal.truffle.test/src/sl/TestDeoptInInlinedFunction.sl.disable graal/com.oracle.graal.truffle.test/src/sl/TestInlining.sl graal/com.oracle.graal.truffle.test/src/sl/TestInliningMaxCallerSize.sl graal/com.oracle.graal.truffle.test/src/sl/TestInliningRecursive1.sl graal/com.oracle.graal.truffle.test/src/sl/TestInliningRecursive2.sl graal/com.oracle.graal.truffle.test/src/sl/TestIsCompilationConstant1.sl graal/com.oracle.graal.truffle.test/src/sl/TestOSR.sl graal/com.oracle.graal.truffle.test/src/sl/TestTruffleBoundary01.sl
diffstat 3 files changed, 3 insertions(+), 7 deletions(-) [+]
line wrap: on
line diff
--- a/graal/com.oracle.graal.compiler.sparc/src/com/oracle/graal/compiler/sparc/SPARCLIRGenerator.java	Tue Sep 29 15:02:34 2015 +0200
+++ b/graal/com.oracle.graal.compiler.sparc/src/com/oracle/graal/compiler/sparc/SPARCLIRGenerator.java	Tue Sep 29 16:01:13 2015 +0200
@@ -146,7 +146,6 @@
  */
 public abstract class SPARCLIRGenerator extends LIRGenerator {
 
-    private StackSlotValue tmpStackSlot;
     private SPARCSpillMoveFactory moveFactory;
     private Variable constantTableBase;
     private SPARCLoadConstantTableBaseOp loadConstantTableBaseOp;
@@ -1053,10 +1052,7 @@
     }
 
     protected StackSlotValue getTempSlot(LIRKind kind) {
-        if (tmpStackSlot == null) {
-            tmpStackSlot = getResult().getFrameMapBuilder().allocateSpillSlot(kind);
-        }
-        return tmpStackSlot;
+        return getResult().getFrameMapBuilder().allocateSpillSlot(kind);
     }
 
     protected SPARC getArchitecture() {
--- a/graal/com.oracle.graal.lir.sparc/src/com/oracle/graal/lir/sparc/SPARCMove.java	Tue Sep 29 15:02:34 2015 +0200
+++ b/graal/com.oracle.graal.lir.sparc/src/com/oracle/graal/lir/sparc/SPARCMove.java	Tue Sep 29 16:01:13 2015 +0200
@@ -182,7 +182,7 @@
 
         @Def({REG}) protected AllocatableValue result;
         @Use({REG}) protected AllocatableValue input;
-        @Use({STACK, ILLEGAL}) protected AllocatableValue temp;
+        @Temp({STACK, ILLEGAL}) protected AllocatableValue temp;
 
         public MoveFpGp(AllocatableValue result, AllocatableValue input, AllocatableValue temp) {
             super(TYPE, SIZE);
--- a/graal/com.oracle.graal.lir/src/com/oracle/graal/lir/LIRInstruction.java	Tue Sep 29 15:02:34 2015 +0200
+++ b/graal/com.oracle.graal.lir/src/com/oracle/graal/lir/LIRInstruction.java	Tue Sep 29 16:01:13 2015 +0200
@@ -171,7 +171,7 @@
         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(TEMP, EnumSet.of(REG, COMPOSITE, CONST, ILLEGAL, HINT));
+        ALLOWED_FLAGS.put(TEMP, EnumSet.of(REG, STACK, COMPOSITE, ILLEGAL, HINT));
         ALLOWED_FLAGS.put(DEF, EnumSet.of(REG, STACK, COMPOSITE, ILLEGAL, HINT));
     }