changeset 22393:9a5a7d9a23aa

TraceRA:TraceLSRA: do not perform predecessor optimization.
author Josef Eisl <josef.eisl@jku.at>
date Fri, 31 Jul 2015 11:55:58 +0200
parents 9dafd1dc5ff9
children 001d6ea7084d
files graal/com.oracle.graal.lir/src/com/oracle/graal/lir/alloc/trace/TraceLinearScan.java
diffstat 1 files changed, 9 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/graal/com.oracle.graal.lir/src/com/oracle/graal/lir/alloc/trace/TraceLinearScan.java	Thu Jul 30 16:38:54 2015 +0200
+++ b/graal/com.oracle.graal.lir/src/com/oracle/graal/lir/alloc/trace/TraceLinearScan.java	Fri Jul 31 11:55:58 2015 +0200
@@ -22,13 +22,14 @@
  */
 package com.oracle.graal.lir.alloc.trace;
 
+import static com.oracle.graal.compiler.common.GraalOptions.*;
 import static com.oracle.graal.lir.alloc.trace.TraceLinearScan.Options.*;
-import static com.oracle.graal.compiler.common.GraalOptions.*;
 
 import java.util.*;
 
 import jdk.internal.jvmci.code.*;
 import jdk.internal.jvmci.options.*;
+import jdk.internal.jvmci.options.OptionValue.OverrideScope;
 
 import com.oracle.graal.compiler.common.alloc.*;
 import com.oracle.graal.compiler.common.alloc.TraceBuilder.TraceBuilderResult;
@@ -74,7 +75,13 @@
             try (Scope s = Debug.scope("AfterLifetimeAnalysis", (Object) intervals())) {
                 sortIntervalsBeforeAllocation();
 
-                createRegisterAllocationPhase().apply(target, lirGenRes, codeEmittingOrder, linearScanOrder, context, false);
+                try (OverrideScope os = OptionValue.override(OptimizingLinearScanWalker.Options.LSRAOptimization, false)) {
+                    /*
+                     * No need for single predecessor block optimization as this is inherently done
+                     * by the trace approach.
+                     */
+                    createRegisterAllocationPhase().apply(target, lirGenRes, codeEmittingOrder, linearScanOrder, context, false);
+                }
 
                 if (LinearScan.Options.LIROptLSRAOptimizeSpillPosition.getValue()) {
                     createOptimizeSpillPositionPhase().apply(target, lirGenRes, codeEmittingOrder, linearScanOrder, context, false);