[llvm] r219512 - [MiSched] Fix a logic error in tryPressure()

Hal Finkel hfinkel at anl.gov
Fri Oct 10 10:20:45 PDT 2014


----- Original Message -----
> From: "Hal Finkel" <hfinkel at anl.gov>
> To: llvm-commits at cs.uiuc.edu
> Sent: Friday, October 10, 2014 12:06:20 PM
> Subject: [llvm] r219512 - [MiSched] Fix a logic error in tryPressure()
> 
> Author: hfinkel
> Date: Fri Oct 10 12:06:20 2014
> New Revision: 219512
> 
> URL: http://llvm.org/viewvc/llvm-project?rev=219512&view=rev
> Log:
> [MiSched] Fix a logic error in tryPressure()
> 
> Fixes a logic error in the MachineScheduler found by Steve Montgomery
> (and
> confirmed by Andy). This has gone unfixed for months because the fix
> has been
> found to introduce some small performance regressions. However, Andy
> has
> recommended that, at this point, we fix this to avoid further
> dependence on the
> incorrect behavior (and then follow-up separately on any
> regressions), and I
> agree.

PR21244 has been filed to track the change this commit introduced to misched-matmul.ll.

 -Hal

> 
> Fixes PR18883.
> 
> Modified:
>     llvm/trunk/lib/CodeGen/MachineScheduler.cpp
>     llvm/trunk/test/CodeGen/X86/misched-matmul.ll
>     llvm/trunk/test/CodeGen/X86/ragreedy-last-chance-recoloring.ll
> 
> Modified: llvm/trunk/lib/CodeGen/MachineScheduler.cpp
> URL:
> http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/MachineScheduler.cpp?rev=219512&r1=219511&r2=219512&view=diff
> ==============================================================================
> --- llvm/trunk/lib/CodeGen/MachineScheduler.cpp (original)
> +++ llvm/trunk/lib/CodeGen/MachineScheduler.cpp Fri Oct 10 12:06:20
> 2014
> @@ -2495,8 +2495,8 @@ static bool tryPressure(const PressureCh
>    }
>    // If one candidate decreases and the other increases, go with it.
>    // Invalid candidates have UnitInc==0.
> -  if (tryLess(TryP.getUnitInc() < 0, CandP.getUnitInc() < 0,
> TryCand, Cand,
> -              Reason)) {
> +  if (tryGreater(TryP.getUnitInc() < 0, CandP.getUnitInc() < 0,
> TryCand, Cand,
> +                 Reason)) {
>      return true;
>    }
>    // If the candidates are decreasing pressure, reverse priority.
> 
> Modified: llvm/trunk/test/CodeGen/X86/misched-matmul.ll
> URL:
> http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/misched-matmul.ll?rev=219512&r1=219511&r2=219512&view=diff
> ==============================================================================
> --- llvm/trunk/test/CodeGen/X86/misched-matmul.ll (original)
> +++ llvm/trunk/test/CodeGen/X86/misched-matmul.ll Fri Oct 10 12:06:20
> 2014
> @@ -10,7 +10,7 @@
>  ; more complex cases.
>  ;
>  ; CHECK: @wrap_mul4
> -; CHECK: 22 regalloc - Number of spills inserted
> +; CHECK: 23 regalloc - Number of spills inserted
>  
>  define void @wrap_mul4(double* nocapture %Out, [4 x double]*
>  nocapture %A, [4 x double]* nocapture %B) #0 {
>  entry:
> 
> Modified:
> llvm/trunk/test/CodeGen/X86/ragreedy-last-chance-recoloring.ll
> URL:
> http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/ragreedy-last-chance-recoloring.ll?rev=219512&r1=219511&r2=219512&view=diff
> ==============================================================================
> --- llvm/trunk/test/CodeGen/X86/ragreedy-last-chance-recoloring.ll
> (original)
> +++ llvm/trunk/test/CodeGen/X86/ragreedy-last-chance-recoloring.ll
> Fri Oct 10 12:06:20 2014
> @@ -2,10 +2,12 @@
>  ; Without the last chance recoloring, this test fails with:
>  ; "ran out of registers".
>  
> -; RUN: not llc -regalloc=greedy -relocation-model=pic
> -lcr-max-depth=0  < %s 2>&1 | FileCheck %s
> --check-prefix=CHECK-DEPTH
> +; NOTE: With the fix to PR18883, we don't actually run out of
> registers here
> +; any more, and so those checks are disabled. This test remains only
> for general coverage.
> +; XXX: not llc -regalloc=greedy -relocation-model=pic
> -lcr-max-depth=0  < %s 2>&1 | FileCheck %s
> --check-prefix=CHECK-DEPTH
>  ; Test whether failure due to cutoff for depth is reported
>  
> -; RUN: not llc -regalloc=greedy -relocation-model=pic
> -lcr-max-interf=1  < %s 2>&1 | FileCheck %s
> --check-prefix=CHECK-INTERF
> +; XXX: not llc -regalloc=greedy -relocation-model=pic
> -lcr-max-interf=1  < %s 2>&1 | FileCheck %s
> --check-prefix=CHECK-INTERF
>  ; Test whether failure due to cutoff for interference is reported
>  
>  ; RUN: llc -regalloc=greedy -relocation-model=pic -lcr-max-interf=1
>  -lcr-max-depth=0 -exhaustive-register-search < %s > %t 2>&1
> 
> 
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
> 

-- 
Hal Finkel
Assistant Computational Scientist
Leadership Computing Facility
Argonne National Laboratory



More information about the llvm-commits mailing list