Mercurial > hg > graal-compiler
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);