| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
| |
-Wnon-virtual-dtor.
llvm-svn: 118616
|
|
|
|
| |
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
|
|
|
|
|
|
|
| |
them, but hopefully we won't. And this is not the right data structure
to do it anyway.
llvm-svn: 117412
|
|
|
|
| |
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
|