svn commit: r296803 - stable/9/contrib/llvm/patches
Dimitry Andric
dim at FreeBSD.org
Sun Mar 13 18:37:43 UTC 2016
Author: dim
Date: Sun Mar 13 18:37:41 2016
New Revision: 296803
URL: https://svnweb.freebsd.org/changeset/base/296803
Log:
Merge r296802 from stable/10, which adds a patch corresponding to
r296800, and record that r296800 was 'merged' also.
Added:
stable/9/contrib/llvm/patches/patch-r296800-llvm-r219512-out-of-registers.diff
- copied unchanged from r296802, stable/10/contrib/llvm/patches/patch-r296800-llvm-r219512-out-of-registers.diff
Modified:
Directory Properties:
stable/9/ (props changed)
stable/9/contrib/ (props changed)
stable/9/contrib/llvm/ (props changed)
Copied: stable/9/contrib/llvm/patches/patch-r296800-llvm-r219512-out-of-registers.diff (from r296802, stable/10/contrib/llvm/patches/patch-r296800-llvm-r219512-out-of-registers.diff)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ stable/9/contrib/llvm/patches/patch-r296800-llvm-r219512-out-of-registers.diff Sun Mar 13 18:37:41 2016 (r296803, copy of r296802, stable/10/contrib/llvm/patches/patch-r296800-llvm-r219512-out-of-registers.diff)
@@ -0,0 +1,33 @@
+Pull in r219512 from upstream llvm trunk (by Hal Finkel):
+
+ [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.
+
+This fixes a possible "ran out of registers" error when compiling
+www/firefox 45.0 on i386.
+
+Introduced here: http://svnweb.freebsd.org/changeset/base/xxxxxx
+
+Index: lib/CodeGen/MachineScheduler.cpp
+===================================================================
+--- lib/CodeGen/MachineScheduler.cpp
++++ lib/CodeGen/MachineScheduler.cpp
+@@ -2365,8 +2365,8 @@ static bool tryPressure(const PressureChange &TryP
+ }
+ // 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.
More information about the svn-src-stable-9
mailing list