|  | 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 |