Alkis Evlogimenos
a39fc0efcf
Add function to clear all virtual->physical mappings but not assigned
...
stack slots. This is in preparation for the iterative linear scan.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15032 91177308-0d34-0410-b5e6-96231b3b80d8
2004-07-20 13:28:17 +00:00
Alkis Evlogimenos
38af59a43c
Add method to assign stack slot to virtual register without creating a
...
new one.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13895 91177308-0d34-0410-b5e6-96231b3b80d8
2004-05-29 20:38:05 +00:00
Alkis Evlogimenos
f174cc303b
Add grow() member that grows the maps when the number of virtual
...
registers in the function has changed.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13893 91177308-0d34-0410-b5e6-96231b3b80d8
2004-05-29 19:03:29 +00:00
Alkis Evlogimenos
dd420e060a
Add a spiller option to llc. A simple spiller will come soon. When we get CFG in the machine code represenation a global spiller will also be possible. Also document the linear scan register allocator but mark it as experimental for now.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12062 91177308-0d34-0410-b5e6-96231b3b80d8
2004-03-01 23:18:15 +00:00
Alkis Evlogimenos
5f37502bfb
Add the long awaited memory operand folding support for linear scan
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12058 91177308-0d34-0410-b5e6-96231b3b80d8
2004-03-01 20:05:10 +00:00
Alkis Evlogimenos
fc54e83cea
Rename member function to be consistent with the rest.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11898 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-27 06:11:15 +00:00
Alkis Evlogimenos
4d0d864be3
Add DenseMap template and actually use it for for mapping virtual regs
...
to objects.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11840 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-25 21:55:45 +00:00
Alkis Evlogimenos
0d6c5b6489
Move machine code rewriter and spiller outside the register
...
allocator.
The implementation is completely rewritten and now employs several
optimizations not exercised before. For example for 164.gzip we have
997 loads and 699 stores vs the 1221 loads and 880 stores we have
before.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11798 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-24 08:58:30 +00:00
Alkis Evlogimenos
ec8b8bb9ab
Add predicates for checking if a virtual register has a physical
...
register mapping or a stack slot mapping.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11795 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-24 06:30:36 +00:00
Alkis Evlogimenos
e8124b9ddb
Make enum private as it is an implementation detail.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11782 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-23 23:49:40 +00:00
Alkis Evlogimenos
797428719f
Remove '4Virt' from member function names as it is obvious.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11781 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-23 23:47:10 +00:00
Alkis Evlogimenos
34d9bc9f16
Refactor VirtRegMap out of RegAllocLinearScan as the first part of bug
...
251 (providing a generic machine code rewriter/spiller).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11780 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-23 23:08:11 +00:00