mirror of
https://git.freebsd.org/ports.git
synced 2025-06-07 05:40:30 -04:00
61 lines
3.1 KiB
Text
61 lines
3.1 KiB
Text
------------------------------------------------------------------------
|
|
r219512 | hfinkel | 2014-10-10 17:06:20 +0000 (Fri, 10 Oct 2014) | 10 lines
|
|
|
|
[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.
|
|
|
|
Fixes PR18883.
|
|
------------------------------------------------------------------------
|
|
Index: lib/CodeGen/MachineScheduler.cpp
|
|
===================================================================
|
|
--- lib/CodeGen/MachineScheduler.cpp (revision 219511)
|
|
+++ lib/CodeGen/MachineScheduler.cpp (revision 219512)
|
|
@@ -2495,8 +2495,8 @@
|
|
}
|
|
// 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.
|
|
#Index: test/CodeGen/X86/ragreedy-last-chance-recoloring.ll
|
|
#===================================================================
|
|
#--- test/CodeGen/X86/ragreedy-last-chance-recoloring.ll (revision 219511)
|
|
#+++ test/CodeGen/X86/ragreedy-last-chance-recoloring.ll (revision 219512)
|
|
#@@ -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
|
|
#Index: test/CodeGen/X86/misched-matmul.ll
|
|
#===================================================================
|
|
#--- test/CodeGen/X86/misched-matmul.ll (revision 219511)
|
|
#+++ test/CodeGen/X86/misched-matmul.ll (revision 219512)
|
|
#@@ -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:
|