Date: Sun, 13 Mar 2016 18:37:41 +0000 (UTC) From: Dimitry Andric <dim@FreeBSD.org> To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-9@freebsd.org Subject: svn commit: r296803 - stable/9/contrib/llvm/patches Message-ID: <201603131837.u2DIbfTn012598@repo.freebsd.org>
next in thread | raw e-mail | index | archive | help
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.
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201603131837.u2DIbfTn012598>