# HG changeset patch # User Christian Wimmer # Date 1363792955 25200 # Node ID c0db24536e9784ffea6fa8b2c20f1b1f93d978b2 # Parent 701290361dadf58c663d1810ac064a578dac0b40 Remove flag and optimization for object method arguments in the register allocator. Needs more investigation of GC impact on HotSpot diff -r 701290361dad -r c0db24536e97 graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/alloc/LinearScan.java --- a/graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/alloc/LinearScan.java Wed Mar 20 14:01:43 2013 +0100 +++ b/graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/alloc/LinearScan.java Wed Mar 20 08:22:35 2013 -0700 @@ -1073,7 +1073,11 @@ } private static boolean optimizeMethodArgument(Value value) { - return isStackSlot(value) && asStackSlot(value).isInCallerFrame() && (GraalOptions.IncomingMethodArgumentsGCSafe || value.getKind() != Kind.Object); + /* + * Object method arguments that are passed on the stack are currently not optimized because + * this requires that the runtime visits method arguments during stack walking. + */ + return isStackSlot(value) && asStackSlot(value).isInCallerFrame() && value.getKind() != Kind.Object; } /** diff -r 701290361dad -r c0db24536e97 graal/com.oracle.graal.phases/src/com/oracle/graal/phases/GraalOptions.java --- a/graal/com.oracle.graal.phases/src/com/oracle/graal/phases/GraalOptions.java Wed Mar 20 14:01:43 2013 +0100 +++ b/graal/com.oracle.graal.phases/src/com/oracle/graal/phases/GraalOptions.java Wed Mar 20 08:22:35 2013 -0700 @@ -211,12 +211,6 @@ public static boolean IntrinsifyAESMethods = true; /** - * Method arguments that are passed on the stack can be optimized by the register allocator to avoid spilling - * and reloading. However, this requires that the runtime visits method arguments during stack walking. - */ - public static boolean IncomingMethodArgumentsGCSafe = true; - - /** * Counts the various paths taken through snippets. */ public static boolean SnippetCounters = false;