summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen/PreAllocSplitting.cpp
Commit message (Collapse)AuthorAgeFilesLines
...
* Fix a bug introduced by my previous patch. With this change, SPEC is now ↵Owen Anderson2008-11-181-1/+1
| | | | | | clean with prealloc splitting enabled. llvm-svn: 59544
* Don't allow the restore point to be placed after terminators. With this change,Owen Anderson2008-11-131-2/+2
| | | | | | | MultiSource/Applications is clean with the prealloc splitter. Some failures remain in SPEC. llvm-svn: 59267
* Don't walk into predecessors in which the vreg is not live when doing ↵Owen Anderson2008-11-111-0/+2
| | | | | | | | shrinkwrapping. This lets several failing tests get farther along, but doesn't completely fix any of them. llvm-svn: 59086
* Use the new predicate to control when we do prealloc splitting. Fix a small ↵Owen Anderson2008-11-051-1/+5
| | | | | | bug. llvm-svn: 58738
* First pass at checking for the creation of a new join point when doing ↵Owen Anderson2008-11-041-0/+73
| | | | | | pre-alloc splitting. This is not turned on yet. llvm-svn: 58726
* Revert my last patch until I consult with Evan about it.Owen Anderson2008-11-031-10/+0
| | | | llvm-svn: 58591
* Don't do pre-splitting if doing so would create a value join that did notOwen Anderson2008-11-021-0/+10
| | | | | | | | | exist before. Updating the live intervals in that care is tricky in the general case. Evan, if you see a tighter guard condition for this, let me know. llvm-svn: 58560
* Add a fixme.Evan Cheng2008-10-311-0/+3
| | | | llvm-svn: 58514
* - More pre-split fixes: spill slot live interval computation bug; restore ↵Evan Cheng2008-10-291-38/+93
| | | | | | | | point bug. - If a def is spilt, remember its spill index to allow its reuse. llvm-svn: 58375
* - Rewrite code that update register live interval that's split.Evan Cheng2008-10-291-81/+152
| | | | | | | - Create and update spill slot live intervals. - Lots of bug fixes. llvm-svn: 58367
* If def is in the same mbb as the barrier, spilt the value after the last use ↵Evan Cheng2008-10-281-8/+18
| | | | | | before the barrier. llvm-svn: 58314
* Add command line option to limit the number splits to help debugging.Evan Cheng2008-10-281-3/+7
| | | | llvm-svn: 58312
* Avoid putting a split past the end of the live range; always shrink wrap ↵Evan Cheng2008-10-281-11/+20
| | | | | | live interval in the barrier mbb. llvm-svn: 58309
* Silence a bogus compile time warning.Evan Cheng2008-10-271-1/+1
| | | | llvm-svn: 58297
* Remove val# defined by a remat'ed def that is now dead.Evan Cheng2008-10-271-0/+3
| | | | llvm-svn: 58294
* For now, don't split live intervals around x87 stack register barriers. ↵Evan Cheng2008-10-271-0/+2
| | | | | | FpGET_ST0_80 must be right after a call instruction (and ADJCALLSTACKUP) so we need to find a way to prevent reload of x87 registers between them. llvm-svn: 58230
* Do not shrink wrap live interval in a mbb if it's livein any of its ↵Evan Cheng2008-10-261-6/+21
| | | | | | successor blocks. The mbb can be revisited again after all of the successors are processed. llvm-svn: 58184
* Handle cases where there aren't uses in the barrier mbb.Evan Cheng2008-10-251-1/+5
| | | | llvm-svn: 58174
* If val# def is ~0U, meaning it's defined by a PHI, and it's previously ↵Evan Cheng2008-10-251-9/+11
| | | | | | split, spill before the barrier because it's impossible to determine if all the defs are spilled in the same spill slot. llvm-svn: 58129
* Fix a pasto.Evan Cheng2008-10-241-1/+1
| | | | llvm-svn: 58102
* Fix a end() dereference; remove an abort() that wasn't meant to be left in.Evan Cheng2008-10-241-5/+4
| | | | llvm-svn: 58072
* Avoid splitting an interval multiple times; avoid splitting ↵Evan Cheng2008-10-241-51/+106
| | | | | | re-materializable val# (for now). llvm-svn: 58068
* Committing a good chunk of the pre-register allocation live interval ↵Evan Cheng2008-10-231-12/+571
| | | | | | splitting pass. It's handling simple cases and appear to do good things. Next: avoid splitting an interval multiple times; renumber registers when possible; record stack slot live intervals for coloring; rematerialize defs when possible. llvm-svn: 58044
* Add skeleton for the pre-register allocation live interval splitting pass.Evan Cheng2008-10-201-0/+81
llvm-svn: 57847
OpenPOWER on IntegriCloud