# HG changeset patch # User Josef Eisl # Date 1430292538 -7200 # Node ID 00bbd2badfd361314bcb99e90f42d8244f444103 # Parent a4b60873851bcb1cfeac04f65a704515b18c24ad {AMD64/SPARC}LIRGenerator: cache SpillMoveFactory (again). diff -r a4b60873851b -r 00bbd2badfd3 graal/com.oracle.graal.compiler.amd64/src/com/oracle/graal/compiler/amd64/AMD64LIRGenerator.java --- a/graal/com.oracle.graal.compiler.amd64/src/com/oracle/graal/compiler/amd64/AMD64LIRGenerator.java Thu Apr 23 11:30:06 2015 +0200 +++ b/graal/com.oracle.graal.compiler.amd64/src/com/oracle/graal/compiler/amd64/AMD64LIRGenerator.java Wed Apr 29 09:28:58 2015 +0200 @@ -76,6 +76,7 @@ public abstract class AMD64LIRGenerator extends LIRGenerator implements AMD64ArithmeticLIRGenerator { private static final RegisterValue RCX_I = AMD64.rcx.asValue(LIRKind.value(Kind.Int)); + private AMD64SpillMoveFactory moveFactory; private class AMD64SpillMoveFactory implements LIRGeneratorTool.SpillMoveFactory { @@ -90,7 +91,10 @@ } public SpillMoveFactory getSpillMoveFactory() { - return new AMD64SpillMoveFactory(); + if (moveFactory == null) { + moveFactory = new AMD64SpillMoveFactory(); + } + return moveFactory; } @Override diff -r a4b60873851b -r 00bbd2badfd3 graal/com.oracle.graal.compiler.sparc/src/com/oracle/graal/compiler/sparc/SPARCLIRGenerator.java --- a/graal/com.oracle.graal.compiler.sparc/src/com/oracle/graal/compiler/sparc/SPARCLIRGenerator.java Thu Apr 23 11:30:06 2015 +0200 +++ b/graal/com.oracle.graal.compiler.sparc/src/com/oracle/graal/compiler/sparc/SPARCLIRGenerator.java Wed Apr 29 09:28:58 2015 +0200 @@ -70,6 +70,7 @@ public abstract class SPARCLIRGenerator extends LIRGenerator { private StackSlotValue tmpStackSlot; + private SPARCSpillMoveFactory moveFactory; private class SPARCSpillMoveFactory implements LIRGeneratorTool.SpillMoveFactory { @@ -84,7 +85,10 @@ } public SpillMoveFactory getSpillMoveFactory() { - return new SPARCSpillMoveFactory(); + if (moveFactory == null) { + moveFactory = new SPARCSpillMoveFactory(); + } + return moveFactory; } @Override