| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
|
| |
Minor optimization to the use of IntervalMap iterators. They are fairly
heavyweight, so prefer SI.valid() over SI != end().
llvm-svn: 121217
|
|
|
|
|
|
|
| |
This speeds up RegAllocBasic by 20%, not counting releaseMemory which becomes
way faster.
llvm-svn: 121201
|
|
|
|
| |
llvm-svn: 121162
|
|
|
|
|
|
|
|
| |
in favor of the widespread llvm style. Capitalize variables and add
newlines for visual parsing. Rename variables for readability.
And other cleanup.
llvm-svn: 120490
|
|
|
|
| |
llvm-svn: 120146
|
|
|
|
| |
llvm-svn: 119896
|
|
|
|
| |
llvm-svn: 119895
|
|
|
|
|
|
|
|
| |
it makes no sense for allocation_order iterators to visit reserved regs.
The inline spiller depends on AliasAnalysis.
Manage the Query state to avoid uninitialized or stale results.
llvm-svn: 118800
|
|
|
|
|
|
|
|
|
| |
benchmarks hitting an assertion.
Adds LiveIntervalUnion::collectInterferingVRegs.
Fixes "late spilling" by checking for any unspillable live vregs among
all physReg aliases.
llvm-svn: 118701
|
|
|
|
|
|
| |
(retry now that the windows build is green)
llvm-svn: 118630
|
|
|
|
| |
llvm-svn: 118613
|
|
|
|
| |
llvm-svn: 118604
|
|
|
|
|
|
|
|
|
| |
handle cases in which a register is unavailable for spill code.
Adds LiveIntervalUnion::extract. While processing interferences on a
live virtual register, reuses the same Query object for each
physcial reg.
llvm-svn: 118423
|
|
|
|
|
|
| |
splitting needs them.
llvm-svn: 118194
|
|
|
|
| |
llvm-svn: 117384
|
|
framework. It's purpose is not to improve register allocation per se,
but to make it easier to develop powerful live range splitting. I call
it the basic allocator because it is as simple as a global allocator
can be but provides the building blocks for sophisticated register
allocation with live range splitting.
A minimal implementation is provided that trivially spills whenever it
runs out of registers. I'm checking in now to get high-level design
and style feedback. I've only done minimal testing. The next step is
implementing a "greedy" allocation algorithm that does some register
reassignment and makes better splitting decisions.
llvm-svn: 117174
|