changeset 8402:c0db24536e97

Remove flag and optimization for object method arguments in the register allocator. Needs more investigation of GC impact on HotSpot
author Christian Wimmer <christian.wimmer@oracle.com>
date Wed, 20 Mar 2013 08:22:35 -0700
parents 701290361dad
children a007cbe2be30
files graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/alloc/LinearScan.java graal/com.oracle.graal.phases/src/com/oracle/graal/phases/GraalOptions.java
diffstat 2 files changed, 5 insertions(+), 7 deletions(-) [+]
line wrap: on
line diff
--- 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;
     }
 
     /**
--- 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;