Chris Lattner
eb45c982ae
Print machine frame objects with the frame offset intrinsic to the machine
...
llvm-svn: 5329
2003-01-16 18:35:57 +00:00
Chris Lattner
176866caed
Fix problems with empty basic blocks
...
llvm-svn: 5326
2003-01-16 18:06:43 +00:00
Chris Lattner
c52c791806
Arg, fix bugs in previous checkin...
...
llvm-svn: 5322
2003-01-16 02:24:20 +00:00
Chris Lattner
910ee768d0
Add assertion
...
llvm-svn: 5321
2003-01-16 02:22:08 +00:00
Chris Lattner
86ee825bce
* Insert prolog/epilog code before rewriting indexes
...
* Fix calculation of frame offsets when there is an offset.
llvm-svn: 5318
2003-01-15 22:52:34 +00:00
Chris Lattner
dea36ca100
Move sparc specific code into the Sparc backend
...
llvm-svn: 5317
2003-01-15 21:36:50 +00:00
Chris Lattner
1ff57d914c
Adjust to new interfaces
...
llvm-svn: 5314
2003-01-15 21:14:01 +00:00
Chris Lattner
e46165fcf0
Move headers around
...
llvm-svn: 5312
2003-01-15 21:02:16 +00:00
Chris Lattner
14802a539d
Header is moved into local directory
...
llvm-svn: 5311
2003-01-15 21:00:02 +00:00
Chris Lattner
5f738161ae
Fix bug in previous checkin
...
llvm-svn: 5310
2003-01-15 20:32:15 +00:00
Chris Lattner
c75dc4856e
Add new method
...
llvm-svn: 5309
2003-01-15 20:28:36 +00:00
Chris Lattner
a23969b669
#include RegClass.h explicitly
...
llvm-svn: 5307
2003-01-15 19:57:07 +00:00
Chris Lattner
19a7cb2240
Remvoe dependency on RegClass.h
...
llvm-svn: 5306
2003-01-15 19:56:21 +00:00
Chris Lattner
d840ccd2e0
Prune #includes
...
llvm-svn: 5303
2003-01-15 19:48:13 +00:00
Chris Lattner
46d4d231c5
Minor changes
...
llvm-svn: 5302
2003-01-15 19:47:53 +00:00
Chris Lattner
5da071b265
Remove obsolete ctor
...
llvm-svn: 5301
2003-01-15 19:47:02 +00:00
Chris Lattner
4f7088f6a2
Remove dead code
...
llvm-svn: 5298
2003-01-15 19:22:38 +00:00
Chris Lattner
8128936c33
Use buildmi not MI ctor directly
...
llvm-svn: 5293
2003-01-15 18:08:07 +00:00
Chris Lattner
24c1d5e551
Rename llvm/Analysis/LiveVar/FunctionLiveVarInfo.h -> llvm/CodeGen/FunctionLiveVarInfo.h
...
llvm-svn: 5284
2003-01-14 23:05:08 +00:00
Chris Lattner
de1d729747
Move llvm/Analysis/LiveVar/ValueSet.h to CodeGen/ValueSet.h
...
llvm-svn: 5282
2003-01-14 22:56:37 +00:00
Chris Lattner
b4d58d7f9e
Rename MachineInstrInfo -> TargetInstrInfo
...
llvm-svn: 5272
2003-01-14 22:00:31 +00:00
Chris Lattner
cab0b442f2
New files
...
llvm-svn: 5262
2003-01-13 20:01:16 +00:00
Chris Lattner
cbedb8b400
* Use the PHI Elimination pass
...
llvm-svn: 5220
2003-01-13 00:26:08 +00:00
Chris Lattner
bfa5319eb2
* Convert to use LiveVariable analysis
...
* Convert to use PHIElimination pass
* Don't spill values which have just been reloaded (big win reducing spills)
* Add experimental support for eliminating spills before TwoAddress
instructions. It currently is broken so it is #ifdef'd out.
* Use new "is terminator" flag on instructions instead of looking for
branches and returns explicitly.
llvm-svn: 5219
2003-01-13 00:25:40 +00:00
Chris Lattner
8d2a07ab2f
Convert to MachineFunctionPass
...
llvm-svn: 5218
2003-01-13 00:23:41 +00:00
Chris Lattner
a2ad874c95
Add support for 3 new forms of MachineOperand
...
llvm-svn: 5217
2003-01-13 00:23:24 +00:00
Chris Lattner
c6807e8f5d
Add support for constant pool
...
Add helper methods for MachineFrameInfo
llvm-svn: 5216
2003-01-13 00:23:03 +00:00
Chris Lattner
6178ee9b36
Add support for global address by string and constant pool values
...
llvm-svn: 5215
2003-01-13 00:22:37 +00:00
Chris Lattner
f9781b59ab
More renamings of Target/Machine*Info to Target/Target*Info
...
llvm-svn: 5204
2002-12-29 03:13:05 +00:00
Chris Lattner
42d59219c7
Rename MachineOptInfo to TargetoptInfo
...
Rename MachineCacheInfo to TargetCacheInfo
llvm-svn: 5203
2002-12-29 02:50:35 +00:00
Chris Lattner
ca4362fee7
Rename FunctionFrameInfo to MachineFrameInfo
...
llvm-svn: 5200
2002-12-28 21:08:26 +00:00
Chris Lattner
871e591e34
Rename MachineFrameInfo to TargetFrameInfo.h
...
llvm-svn: 5199
2002-12-28 21:00:25 +00:00
Chris Lattner
c8b36e6362
Initial checkin of Prolog/Epilog code inserter, which is an important part
...
of the abstract frame representation
llvm-svn: 5198
2002-12-28 20:43:30 +00:00
Chris Lattner
bf9d12ac8b
* Convert to be a MachineFunctionPass instance
...
* Use new FunctionFrameInfo object to manage stack slots instead of doing
it directly
* Adjust to new MRegisterInfo API
* Don't take a TM as a ctor argument
* Don't keep track of which callee saved registers are modified
* Don't emit prolog/epilog code or spill/restore code for callee saved regs
* Use new allocation_order_begin/end iterators to simplify dramatically the
logic for picking registers to allocate
* Machine PHI nodes can no longer contain constant arguments
* Use a bitvector to keep track of registers used instead of a set
* Fix problem where explicitly referenced registers would be added to
regsused set and never removed
llvm-svn: 5196
2002-12-28 20:42:14 +00:00
Chris Lattner
b4e4111d75
* Convert to be a MachineFunctionPass instance
...
* Use new FunctionFrameInfo object to manage stack slots instead of doing
it directly
* Adjust to new MRegisterInfo API
* Don't take a TM as a ctor argument
* Don't keep track of which callee saved registers are modified
* Don't emit prolog/epilog code or spill/restore code for callee saved regs
* Use new allocation_order_begin/end iterators to simplify dramatically the
logic for picking registers to allocate
* Machine PHI nodes can no longer contain constant arguments
llvm-svn: 5195
2002-12-28 20:40:43 +00:00
Chris Lattner
fd1ecadb1d
* Add printing support for FrameIndex operands
...
llvm-svn: 5194
2002-12-28 20:37:37 +00:00
Chris Lattner
32525647e1
* A bunch of functionality and data was removed from MachineFunction and put
...
into a new MachineFunctionInfo class
* Implement new FunctionFrameInfo class
llvm-svn: 5193
2002-12-28 20:37:16 +00:00
Chris Lattner
0733616ec7
Frame info moved out of MachineFunction into a seperate object
...
llvm-svn: 5192
2002-12-28 20:35:34 +00:00
Chris Lattner
42714ec1bd
Adjust to simpler spill interface
...
Only spill and reload caller saved registers that are actually modified.
llvm-svn: 5145
2002-12-25 05:05:46 +00:00
Chris Lattner
ee73450749
Adjustments to work with the simpler spill interface
...
llvm-svn: 5144
2002-12-25 05:04:20 +00:00
Chris Lattner
448fb45b2d
Remove dependency on SSARegMap.h by MachineFunction.h
...
llvm-svn: 5143
2002-12-25 05:03:22 +00:00
Chris Lattner
763729c5cd
Substantial fixes to live range handling, fixing several problems, getting
...
strtol to not miscompile, and fixing bug: 2002-12-23-LocalRAProblem.llx
llvm-svn: 5132
2002-12-24 00:04:55 +00:00
Chris Lattner
095eac8109
Fix compilation on GCC 2.96
...
llvm-svn: 5113
2002-12-23 23:44:04 +00:00
Chris Lattner
d4627093de
* Fix several register aliasing bugs
...
* Add a new option to eliminate spilling of registers that are only used
within a basic block.
llvm-svn: 5106
2002-12-18 08:14:26 +00:00
Chris Lattner
dc451c6d27
Implicit defs/uses list may be empty.
...
llvm-svn: 5103
2002-12-18 01:11:14 +00:00
Chris Lattner
ac5f3b3ed3
Use new reginfo interface
...
llvm-svn: 5099
2002-12-17 04:19:40 +00:00
Chris Lattner
0ea32b8dd3
Add prolog/epilog spills/reloads to counters
...
Move X86 specific alignment gunk to X86 files
llvm-svn: 5096
2002-12-17 03:16:10 +00:00
Chris Lattner
4664bd5798
Fix many bugs, regallocator now saves callee-save registers instead of target
...
llvm-svn: 5093
2002-12-17 02:50:10 +00:00
Chris Lattner
0129b86d55
* Fix a gross X86 hack that was intended to avoid allocating SP and BP
...
* Implement register alias set support
llvm-svn: 5082
2002-12-16 17:44:42 +00:00
Chris Lattner
1d84f0a461
Keep the stack frame aligned.
...
llvm-svn: 5081
2002-12-16 17:42:40 +00:00