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