History log of /external/llvm/lib/CodeGen/RegisterPressure.cpp
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
eb4774a972af4bdd36d8795625c8c5d96ca507d1 16-Feb-2013 Benjamin Kramer <benny.kra@googlemail.com> Replace erase loop with std::remove_if.

This avoids unnecessary copies. No functionality change.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175367 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/RegisterPressure.cpp
22af4bc07bb81c22b15d7a63fb566efcab913bd9 06-Dec-2012 Andrew Trick <atrick@apple.com> RegPressureTracker::dump(): Remove unnecessary argument.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169443 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/RegisterPressure.cpp
f3329c419b1010089e8aaf3d43b811ba12d94c8a 05-Dec-2012 Andrew Trick <atrick@apple.com> RegisterPressureTracker: fix findUseBetween to handle DebugValue

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169427 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/RegisterPressure.cpp
f54f61538688eff25f392c2062b3a654394333aa 05-Dec-2012 Andrew Trick <atrick@apple.com> RegisterPressureTracker: unify virtual registers and physical regunits.

Now that live register units are tracked individually, the code can be simplified.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169426 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/RegisterPressure.cpp
553c42cefc9abe1f10ee33d34a12498b8ac12fe6 05-Dec-2012 Andrew Trick <atrick@apple.com> RegisterPresssureTracker: Track live physical register by unit.

This is much simpler to reason about, more efficient, and
fixes some corner cases involving implicit super-register defs.
Fixed rdar://12797931.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169425 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/RegisterPressure.cpp
17cf53519905acb69c567173bedd2df1c8e45523 05-Dec-2012 Andrew Trick <atrick@apple.com> Added RegisterPressureTracker::dump() for debugging.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169359 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/RegisterPressure.cpp
d04a8d4b33ff316ca4cf961e06c9e312eff8e64f 03-Dec-2012 Chandler Carruth <chandlerc@gmail.com> Use the new script to sort the includes of every file under lib.

Sooooo many of these had incorrect or strange main module includes.
I have manually inspected all of these, and fixed the main module
include to be the nearest plausible thing I could find. If you own or
care about any of these source files, I encourage you to take some time
and check that these edits were sensible. I can't have broken anything
(I strictly added headers, and reordered them, never removed), but they
may not be the headers you'd really like to identify as containing the
API being implemented.

Many forward declarations and missing includes were added to a header
files to allow them to parse cleanly when included first. The main
module rule does in fact have its merits. =]

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169131 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/RegisterPressure.cpp
657b75b9946eae763725b413841dfd01ed12a051 01-Dec-2012 Andrew Trick <atrick@apple.com> misched: Fix RegisterPressureTracker handling of DebugVals.

Assertion failed: (TopRPTracker.getPos() == RegionBegin && "bad initial Top tracker").
rdar://12790302.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169072 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/RegisterPressure.cpp
881a05b46c28299046bd0dc3d0b8c6677e68a4d7 07-Nov-2012 Andrew Trick <atrick@apple.com> misched: handle on-the-fly regpressure queries better for 2-addr
instructions without relying on liveintervals.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@167526 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/RegisterPressure.cpp
14d1dd95c7c969e07defebb6fe65df2fae1b30cf 16-Oct-2012 Jakob Stoklund Olesen <stoklund@2pi.dk> Remove RegisterClassInfo::isReserved() and isAllocatable().

Clients can use the equivalent functions in MRI.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165990 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/RegisterPressure.cpp
b720be6a50f4e1b3280d2b029ee38dda14577525 12-Sep-2012 Manman Ren <mren@apple.com> Release build: guard dump functions with
"#if !defined(NDEBUG) || defined(LLVM_ENABLE_DUMP)"

No functional change. Update r163339.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@163653 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/RegisterPressure.cpp
77e300e8f0b8db8eec448cae9c87d7c5bfad9757 06-Sep-2012 Manman Ren <mren@apple.com> Release build: guard dump functions with "ifndef NDEBUG"

No functional change.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@163339 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/RegisterPressure.cpp
0eb3a3524e9d68642e574780d19c781386ed4469 12-Jun-2012 Andrew Trick <atrick@apple.com> misched: When querying RegisterPressureTracker, always save current and max pressure.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@158340 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/RegisterPressure.cpp
4487479543d58df84bb403f4bcfd33f72aadfa18 12-Jun-2012 Andrew Trick <atrick@apple.com> misched: regpressure getMaxPressureDelta, revert accidental checkin.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@158339 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/RegisterPressure.cpp
ba17293a8827a7e0e390b0a1d6075148a58d9edd 09-Jun-2012 Andrew Trick <atrick@apple.com> Register pressure: added getPressureAfterInstr.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@158256 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/RegisterPressure.cpp
1525260b3e50cc578939ef41b60609689eecfdd2 06-Jun-2012 Andrew Trick <atrick@apple.com> Move RegisterClassInfo.h.

Allow targets to access this API. It's required for RegisterPressure.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@158102 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/RegisterPressure.cpp
afc2657cc33988a178d3b21645dba54484600c5f 06-Jun-2012 Andrew Trick <atrick@apple.com> Move RegisterPressure.h.

Make it a general utility for use by Targets.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@158097 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/RegisterPressure.cpp
396618b43a85e12d290a90b181c6af5d7c0c5f11 02-Jun-2012 Jakob Stoklund Olesen <stoklund@2pi.dk> Switch all register list clients to the new MC*Iterator interface.

No functional change intended.

Sorry for the churn. The iterator classes are supposed to help avoid
giant commits like this one in the future. The TableGen-produced
register lists are getting quite large, and it may be necessary to
change the table representation.

This makes it possible to do so without changing all clients (again).

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157854 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/RegisterPressure.cpp
5f887fab35cd71a1e6fcbfa64ae5cbbf43b39807 25-May-2012 Andrew Trick <atrick@apple.com> regpressure: Added RegisterPressure::dump

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157423 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/RegisterPressure.cpp
a7de4b99e47fc5061181ecdf7fd65e1b8441e2e7 25-May-2012 Andrew Trick <atrick@apple.com> regpressure: physreg livein/out fix

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157422 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/RegisterPressure.cpp
73a0d8ecf838a9b333c9865d2a4b72c5768fb49f 17-May-2012 Andrew Trick <atrick@apple.com> misched: Added 3-level regpressure back-off.

Introduce the basic strategy for register pressure scheduling.

1) Respect target limits at all times.

2) Indentify critical register classes (pressure sets).
Track pressure within the scheduled region.
Avoid increasing scheduled pressure for critical registers.

3) Avoid exceeding the max pressure of the region prior to scheduling.

Added logic for picking between the top and bottom ready Q's based on
regpressure heuristics.

Status: functional but needs to be asjusted to achieve good results.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157006 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/RegisterPressure.cpp
0556bd35e564c89149aa02ea8d76f539c87ee875 17-May-2012 Andrew Trick <atrick@apple.com> comment

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157005 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/RegisterPressure.cpp
b54ec26b355157c76b29b12388d49816eaf57da1 17-May-2012 Andrew Trick <atrick@apple.com> regpressure: Fix getMaxUpwardPressureDelta.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157004 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/RegisterPressure.cpp
24617213ba8e9d1e0f10af33d88285a92304ab95 17-May-2012 Andrew Trick <atrick@apple.com> whitespace

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157002 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/RegisterPressure.cpp
7f8ab785af09e4d6e4db07157a5b5aa449b5c3ae 10-May-2012 Andrew Trick <atrick@apple.com> misched: Introducing Top and Bottom register pressure trackers during scheduling.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@156571 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/RegisterPressure.cpp
55ba5dff3c1a723adf302f1124aafde797dbf31a 10-May-2012 Andrew Trick <atrick@apple.com> RegPressure: API for speculatively checking instruction pressure.

Added getMaxExcessUpward/DownwardPressure. They somewhat abuse the
tracker by speculatively handling an instruction out of order. But it
is convenient for now. In the future, we will cache each instruction's
pressure contribution to make this efficient.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@156561 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/RegisterPressure.cpp
d25303533909f62eae18ee53ed0ff692174b092c 10-May-2012 Andrew Trick <atrick@apple.com> RegPressure: fix array index iteration style.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@156560 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/RegisterPressure.cpp
2b8d0501b169c3ee81a9af1cb715e1be4d6a079e 29-Apr-2012 Benjamin Kramer <benny.kra@googlemail.com> RegisterPressure: ArrayRefize some functions for better readability. No functionality change.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@155795 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/RegisterPressure.cpp
4dfeef100d940a0c1ca22055dcb29b02a4848f65 24-Apr-2012 Andrew Trick <atrick@apple.com> RegisterPressure: A utility for computing register pressure within a
MachineInstr sequence.

This uses the new target interface for tracking register pressure
using pressure sets to model overlapping register classes and
subregisters.

RegisterPressure results can be tracked incrementally or stored at
region boundaries. Global register pressure can be deduced from local
RegisterPressure results if desired.

This is an early, somewhat untested implementation. I'm working on
testing it within the context of a register pressure reducing
MachineScheduler.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@155454 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/RegisterPressure.cpp