| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
llvm-svn: 184564
|
|
|
|
| |
llvm-svn: 184131
|
|
|
|
|
|
| |
This avoids unnecessary copies. No functionality change.
llvm-svn: 175367
|
|
|
|
| |
llvm-svn: 169443
|
|
|
|
| |
llvm-svn: 169427
|
|
|
|
|
|
| |
Now that live register units are tracked individually, the code can be simplified.
llvm-svn: 169426
|
|
|
|
|
|
|
|
| |
This is much simpler to reason about, more efficient, and
fixes some corner cases involving implicit super-register defs.
Fixed rdar://12797931.
llvm-svn: 169425
|
|
|
|
| |
llvm-svn: 169359
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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. =]
llvm-svn: 169131
|
|
|
|
|
|
|
| |
Assertion failed: (TopRPTracker.getPos() == RegionBegin && "bad initial Top tracker").
rdar://12790302.
llvm-svn: 169072
|
|
|
|
|
|
| |
instructions without relying on liveintervals.
llvm-svn: 167526
|
|
|
|
|
|
| |
Clients can use the equivalent functions in MRI.
llvm-svn: 165990
|
|
|
|
|
|
|
|
| |
"#if !defined(NDEBUG) || defined(LLVM_ENABLE_DUMP)"
No functional change. Update r163339.
llvm-svn: 163653
|
|
|
|
|
|
| |
No functional change.
llvm-svn: 163339
|
|
|
|
|
|
| |
pressure.
llvm-svn: 158340
|
|
|
|
| |
llvm-svn: 158339
|
|
|
|
| |
llvm-svn: 158256
|
|
|
|
|
|
| |
Allow targets to access this API. It's required for RegisterPressure.
llvm-svn: 158102
|
|
|
|
|
|
| |
Make it a general utility for use by Targets.
llvm-svn: 158097
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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).
llvm-svn: 157854
|
|
|
|
| |
llvm-svn: 157423
|
|
|
|
| |
llvm-svn: 157422
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
llvm-svn: 157006
|
|
|
|
| |
llvm-svn: 157005
|
|
|
|
| |
llvm-svn: 157004
|
|
|
|
| |
llvm-svn: 157002
|
|
|
|
|
|
| |
scheduling.
llvm-svn: 156571
|
|
|
|
|
|
|
|
|
| |
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.
llvm-svn: 156561
|
|
|
|
| |
llvm-svn: 156560
|
|
|
|
|
|
| |
functionality change.
llvm-svn: 155795
|
|
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.
llvm-svn: 155454
|