Evan Cheng
|
d1f8c9f4a2
|
Add a fixme.
llvm-svn: 58514
|
2008-10-31 16:41:59 +00:00 |
|
Evan Cheng
|
ce3ccc1ea0
|
- More pre-split fixes: spill slot live interval computation bug; restore point bug.
- If a def is spilt, remember its spill index to allow its reuse.
llvm-svn: 58375
|
2008-10-29 08:39:34 +00:00 |
|
Evan Cheng
|
938e201528
|
- Rewrite code that update register live interval that's split.
- Create and update spill slot live intervals.
- Lots of bug fixes.
llvm-svn: 58367
|
2008-10-29 05:06:14 +00:00 |
|
Evan Cheng
|
5e88d90379
|
If def is in the same mbb as the barrier, spilt the value after the last use before the barrier.
llvm-svn: 58314
|
2008-10-28 05:28:21 +00:00 |
|
Evan Cheng
|
9f854697e4
|
Add command line option to limit the number splits to help debugging.
llvm-svn: 58312
|
2008-10-28 01:48:24 +00:00 |
|
Evan Cheng
|
fab31680e1
|
Avoid putting a split past the end of the live range; always shrink wrap live interval in the barrier mbb.
llvm-svn: 58309
|
2008-10-28 00:47:49 +00:00 |
|
Evan Cheng
|
e67ad47a00
|
Silence a bogus compile time warning.
llvm-svn: 58297
|
2008-10-27 23:29:28 +00:00 |
|
Evan Cheng
|
f46642ada6
|
Remove val# defined by a remat'ed def that is now dead.
llvm-svn: 58294
|
2008-10-27 23:21:01 +00:00 |
|
Evan Cheng
|
f713722975
|
For now, don't split live intervals around x87 stack register barriers. 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
|
2008-10-27 07:14:50 +00:00 |
|
Evan Cheng
|
ed033ede22
|
Do not shrink wrap live interval in a mbb if it's livein any of its successor blocks. The mbb can be revisited again after all of the successors are processed.
llvm-svn: 58184
|
2008-10-26 07:49:03 +00:00 |
|
Evan Cheng
|
f48367b8e9
|
Handle cases where there aren't uses in the barrier mbb.
llvm-svn: 58174
|
2008-10-25 23:49:39 +00:00 |
|
Evan Cheng
|
85d71d4588
|
If val# def is ~0U, meaning it's defined by a PHI, and it's previously 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
|
2008-10-25 00:52:41 +00:00 |
|
Evan Cheng
|
cd160f9859
|
Fix a pasto.
llvm-svn: 58102
|
2008-10-24 18:46:44 +00:00 |
|
Evan Cheng
|
f8b09d424d
|
Fix a end() dereference; remove an abort() that wasn't meant to be left in.
llvm-svn: 58072
|
2008-10-24 05:53:44 +00:00 |
|
Evan Cheng
|
4bac4d0a16
|
Avoid splitting an interval multiple times; avoid splitting re-materializable val# (for now).
llvm-svn: 58068
|
2008-10-24 02:05:00 +00:00 |
|
Evan Cheng
|
d0d0317b9a
|
Committing a good chunk of the pre-register allocation live interval 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
|
2008-10-23 20:43:13 +00:00 |
|
Evan Cheng
|
7e721ecd21
|
Add skeleton for the pre-register allocation live interval splitting pass.
llvm-svn: 57847
|
2008-10-20 21:44:59 +00:00 |
|