# HG changeset patch # User Josef Eisl # Date 1438336558 -7200 # Node ID 9a5a7d9a23aa34db50aa3371f298713fbae630ba # Parent 9dafd1dc5ff9788a838653f3cd9d79a4b9acf18c TraceRA:TraceLSRA: do not perform predecessor optimization. diff -r 9dafd1dc5ff9 -r 9a5a7d9a23aa graal/com.oracle.graal.lir/src/com/oracle/graal/lir/alloc/trace/TraceLinearScan.java --- 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);