Chris Lattner [Tue, 14 Jan 2003 20:32:10 +0000 (20:32 +0000)]
Minor cleanups
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5266
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 14 Jan 2003 19:42:39 +0000 (19:42 +0000)]
Make type resolution a bit more efficient
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5265
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 14 Jan 2003 19:04:43 +0000 (19:04 +0000)]
Fix bug
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5264
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 13 Jan 2003 20:02:16 +0000 (20:02 +0000)]
New testcase
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5263
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 13 Jan 2003 20:01:16 +0000 (20:01 +0000)]
New files
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5262
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 13 Jan 2003 01:03:16 +0000 (01:03 +0000)]
New testcases
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5261
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 13 Jan 2003 01:01:59 +0000 (01:01 +0000)]
New files
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5260
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 13 Jan 2003 01:01:31 +0000 (01:01 +0000)]
Add new files
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5259
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 13 Jan 2003 01:00:48 +0000 (01:00 +0000)]
Add support for named functions
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5258
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 13 Jan 2003 01:00:28 +0000 (01:00 +0000)]
Dead file
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5257
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 13 Jan 2003 01:00:12 +0000 (01:00 +0000)]
Add support for new types of values
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5256
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 13 Jan 2003 01:00:02 +0000 (01:00 +0000)]
Bad segvs actually cause a segv now
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5255
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 13 Jan 2003 00:59:47 +0000 (00:59 +0000)]
* Wrap at 80 columns
* Fix a ton of warnings
* Implement puts
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5254
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 13 Jan 2003 00:58:52 +0000 (00:58 +0000)]
Handle value promotion properly to work with tracing better
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5253
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 13 Jan 2003 00:58:18 +0000 (00:58 +0000)]
No longer need scalaropts lib
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5252
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 13 Jan 2003 00:58:06 +0000 (00:58 +0000)]
Add fixme
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5251
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 13 Jan 2003 00:57:49 +0000 (00:57 +0000)]
test the shift cases for long that are implemented
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5250
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 13 Jan 2003 00:57:37 +0000 (00:57 +0000)]
test longs
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5249
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 13 Jan 2003 00:57:19 +0000 (00:57 +0000)]
Test longs and fp
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5248
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 13 Jan 2003 00:57:11 +0000 (00:57 +0000)]
TEst longs
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5247
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 13 Jan 2003 00:57:04 +0000 (00:57 +0000)]
Add test for longs
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5246
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 13 Jan 2003 00:56:54 +0000 (00:56 +0000)]
add div test as well
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5245
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 13 Jan 2003 00:56:37 +0000 (00:56 +0000)]
test a bunch of stuff
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5244
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 13 Jan 2003 00:56:27 +0000 (00:56 +0000)]
Test long support
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5243
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 13 Jan 2003 00:52:43 +0000 (00:52 +0000)]
Fix static initializer ordering dependency
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5236
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 13 Jan 2003 00:52:25 +0000 (00:52 +0000)]
Add debugging helper
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5235
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 13 Jan 2003 00:52:14 +0000 (00:52 +0000)]
Make sure to handle %'s in strings correctly so that the names of BB's and functions are actually printed!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5234
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 13 Jan 2003 00:51:23 +0000 (00:51 +0000)]
* No longer need lowerallocation pass
* Add X86 Stackifier pass
* Add peephole optimizer pass
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5233
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 13 Jan 2003 00:50:46 +0000 (00:50 +0000)]
rename FP -> fp*
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5232
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 13 Jan 2003 00:50:33 +0000 (00:50 +0000)]
* Move frame and constant pool indexes to first argument of memory reference
so we can put an offset in there as well...
* Fix long/ulong stuff
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5231
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 13 Jan 2003 00:49:24 +0000 (00:49 +0000)]
* Some instructions take 64 bit integers, add an Arg type for it
* Add flags for different types of FP pseudo instrs
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5230
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 13 Jan 2003 00:48:46 +0000 (00:48 +0000)]
* Function calls clobber fp registers
* Use new M_TERMINATOR_FLAG flag
* Add ::Void flag on several instructions so def-use info is correct!
* Implement MANY FP instructions
* Finalize pseudo FP instructions
* Add set of Pseudo FP instruction description flags
* Add support for MOVim instrs
* Add support for 64 bit support instrs, like adc sbb, etc
* Add conditional move
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5229
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 13 Jan 2003 00:45:53 +0000 (00:45 +0000)]
Add support for frame and constant pool references
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5228
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 13 Jan 2003 00:45:29 +0000 (00:45 +0000)]
Move passes out to Passes.h
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5227
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 13 Jan 2003 00:35:08 +0000 (00:35 +0000)]
Add speculation
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5226
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 13 Jan 2003 00:35:03 +0000 (00:35 +0000)]
* Implement rudimentary output of the constant pool
* Implement support for MRMS?m instructions
* Add Arg64 support
* Add support for frame indexes and constant pool indexes
*
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5225
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 13 Jan 2003 00:33:59 +0000 (00:33 +0000)]
* Add support for FP registers ST*
* Add support for the constant pool & constant pool indices
* Add support for MRMS?m instructions
* Fix FP Prefix emission
* Add support for global addresses and external symbols
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5224
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 13 Jan 2003 00:32:26 +0000 (00:32 +0000)]
* Adjust to use new interfaces, eliminating CurReg stuff
* Support arbitrary FP constants
* Fix bugs in frame layout for function calls and incoming arguments
* Insert copies for constant arguments to PHI nodes into the BOTTOM of
predecessor blocks, not the top.
* Implement _floating point_ support: setcc, return, load, store, cast
* Fix several bugs in the cast instruction
* Abstract out call emission and load/store for FP
* Implement malloc/free without previous lowering pass.
* Make use of new forms of MachineOperand
* Implement _long_ support!
* Fix many bugs in FP support
* Change branch from je/jne to je/jmp
* Simplify code generated for GEP instructions
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5223
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 13 Jan 2003 00:27:23 +0000 (00:27 +0000)]
Fix references to functions
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5222
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 13 Jan 2003 00:26:36 +0000 (00:26 +0000)]
Start renaming MachineInstrInfo -> TargetInstrInfo
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5221
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 13 Jan 2003 00:26:08 +0000 (00:26 +0000)]
* Use the PHI Elimination pass
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5220
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 13 Jan 2003 00:25:40 +0000 (00:25 +0000)]
* 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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5219
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 13 Jan 2003 00:23:41 +0000 (00:23 +0000)]
Convert to MachineFunctionPass
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5218
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 13 Jan 2003 00:23:24 +0000 (00:23 +0000)]
Add support for 3 new forms of MachineOperand
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5217
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 13 Jan 2003 00:23:03 +0000 (00:23 +0000)]
Add support for constant pool
Add helper methods for MachineFrameInfo
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5216
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 13 Jan 2003 00:22:37 +0000 (00:22 +0000)]
Add support for global address by string and constant pool values
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5215
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 13 Jan 2003 00:21:32 +0000 (00:21 +0000)]
Rename MachineInstrInfo -> TargetInstrInfo
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5214
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 13 Jan 2003 00:21:19 +0000 (00:21 +0000)]
* Start renaming MachineInstrInfo -> TargetInstrInfo
* Add new M_TERMINATOR_FLAG
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5213
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 13 Jan 2003 00:19:44 +0000 (00:19 +0000)]
Add new getName method
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5212
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 13 Jan 2003 00:19:18 +0000 (00:19 +0000)]
Simplify interface to creating a register
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5211
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 13 Jan 2003 00:18:44 +0000 (00:18 +0000)]
* Add support for new types of operands
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5210
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 13 Jan 2003 00:18:17 +0000 (00:18 +0000)]
* Add 3 new types of MachineOperand: ConstantPoolIndex ExternalSymbol and GlobalAddress's
* Add new isPCRelative modifier flag which should be used in place of MO_PCRelativeDisp type.
* Fix a bug in isPhysicalRegister
* Add new setOpcode and RemoveOperand methods
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5209
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 13 Jan 2003 00:16:10 +0000 (00:16 +0000)]
* Add a constant pool to hold per-function constants which must be spilled to memory
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5208
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 13 Jan 2003 00:15:24 +0000 (00:15 +0000)]
* Add utility methods which make common cases easier
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5207
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 13 Jan 2003 00:14:55 +0000 (00:14 +0000)]
* Add support for values in the constant pool
* Add support for functions referenced by name
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5206
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 13 Jan 2003 00:13:19 +0000 (00:13 +0000)]
Add an option (which will go away in the future) signfifying that there is a JIT under Linux
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5205
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 29 Dec 2002 03:13:05 +0000 (03:13 +0000)]
More renamings of Target/Machine*Info to Target/Target*Info
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5204
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 29 Dec 2002 02:50:35 +0000 (02:50 +0000)]
Rename MachineOptInfo to TargetoptInfo
Rename MachineCacheInfo to TargetCacheInfo
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5203
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 29 Dec 2002 02:50:33 +0000 (02:50 +0000)]
Rename MachineOptInfo to TargetoptInfo
Rename MachineCacheInfo to TargetCacheInfo
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5202
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 28 Dec 2002 21:08:28 +0000 (21:08 +0000)]
Rename FunctionFrameInfo to MachineFrameInfo
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5201
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 28 Dec 2002 21:08:26 +0000 (21:08 +0000)]
Rename FunctionFrameInfo to MachineFrameInfo
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5200
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 28 Dec 2002 21:00:25 +0000 (21:00 +0000)]
Rename MachineFrameInfo to TargetFrameInfo.h
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5199
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 28 Dec 2002 20:43:30 +0000 (20:43 +0000)]
Initial checkin of Prolog/Epilog code inserter, which is an important part
of the abstract frame representation
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5198
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 28 Dec 2002 20:42:56 +0000 (20:42 +0000)]
Put class in anonymous namespace
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5197
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 28 Dec 2002 20:42:14 +0000 (20:42 +0000)]
* 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
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5196
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 28 Dec 2002 20:40:43 +0000 (20:40 +0000)]
* 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
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5195
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 28 Dec 2002 20:37:37 +0000 (20:37 +0000)]
* Add printing support for FrameIndex operands
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5194
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 28 Dec 2002 20:37:16 +0000 (20:37 +0000)]
* A bunch of functionality and data was removed from MachineFunction and put
into a new MachineFunctionInfo class
* Implement new FunctionFrameInfo class
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5193
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 28 Dec 2002 20:35:34 +0000 (20:35 +0000)]
Frame info moved out of MachineFunction into a seperate object
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5192
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 28 Dec 2002 20:34:47 +0000 (20:34 +0000)]
Eliminate unneccesary file
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5191
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 28 Dec 2002 20:34:18 +0000 (20:34 +0000)]
Capture more information in ctor
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5190
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 28 Dec 2002 20:33:52 +0000 (20:33 +0000)]
Implement the TargetFrameInfo interface
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5189
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 28 Dec 2002 20:33:32 +0000 (20:33 +0000)]
* Initialize new FrameInfo member
* most pass ctors no longer take TM arguments
* New prolog/epilog insertion pass
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5188
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 28 Dec 2002 20:32:54 +0000 (20:32 +0000)]
Changes to match new MRegisterInfo api
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5187
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 28 Dec 2002 20:32:28 +0000 (20:32 +0000)]
*** Implement frame pointer elimination on X86!
* Include contents of X86RegisterClasses.cpp into here
* Adjustments to register api to work with new frame manager
* Eliminate moveImm2Reg, getFramePointer, and getStackPointer
* Cleanup and simplify prolog/epilog code generation
* Prolog/epilog are MUCH more efficient now.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5186
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 28 Dec 2002 20:30:15 +0000 (20:30 +0000)]
Contents merged with X86RegisterInfo.cpp
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5185
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 28 Dec 2002 20:29:41 +0000 (20:29 +0000)]
* Remove implementations of previously pure virtual functions that are not any longer.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5184
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 28 Dec 2002 20:29:14 +0000 (20:29 +0000)]
* Minor reformatting
* Remove some size suffixes [bwl]
* Add new ADJCALLSTACKDOWN & ADJCALLSTACKUP pseudo instrs
* Call instructions are M_CALL not M_BRANCH!
* Disable push and pop instructions
* Add new ANDri32 instr
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5183
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 28 Dec 2002 20:26:58 +0000 (20:26 +0000)]
New addFrameReference function
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5182
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 28 Dec 2002 20:26:16 +0000 (20:26 +0000)]
* Most pass ctor functions don't take TM arguments anymore
* New createPrologEpilogCodeInserter() function
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5181
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 28 Dec 2002 20:25:38 +0000 (20:25 +0000)]
* Convert to a MachineFunctionPass
* Don't take a TM as a ctor parameter
* Print [X - Y] instead of [X + -Y] when possible
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5180
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 28 Dec 2002 20:24:48 +0000 (20:24 +0000)]
* Convert to a MachineFunctionPass
* ctor doesn't take TM argument
* handle direct ESP references correctly!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5179
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 28 Dec 2002 20:24:02 +0000 (20:24 +0000)]
* Use the new Abstract Frame Manager to handle incoming arguments and
fixed size allocas
* Revamp call emission to work with new frame manager
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5178
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 28 Dec 2002 20:21:29 +0000 (20:21 +0000)]
* Rename machineFrameInfo to targetFrameInfo
* Constant pool and frame info is no longer directly in MachineFunction
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5177
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 28 Dec 2002 20:20:24 +0000 (20:20 +0000)]
* Rename MachineFrameInfo to TargetFrameInfo
* Move some sparc specific code here from Target files
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5176
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 28 Dec 2002 20:19:44 +0000 (20:19 +0000)]
* TargetData is no longer directly accessable from TM
* s/unsigned int/unsigned/
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5175
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 28 Dec 2002 20:18:21 +0000 (20:18 +0000)]
* TargetData is no longer directly accessable from TargetMachine
* Constpool & frame info is no longer directly in MachineFunction
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5174
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 28 Dec 2002 20:17:43 +0000 (20:17 +0000)]
* Frame & const pool info is no longer directly in MachineFunction
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5173
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 28 Dec 2002 20:16:08 +0000 (20:16 +0000)]
* Changes to be a MachineFunctionPass
* Frame information is now stuck in MachineFunctionInfo instead of directly
in MachineFunction.
* Don't require a TM as an argument to the ctor
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5172
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 28 Dec 2002 20:15:01 +0000 (20:15 +0000)]
* Don't access TargetData directly
* Changes because frame info is not in MachineFunction directly anymore
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5171
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 28 Dec 2002 20:13:29 +0000 (20:13 +0000)]
* doxygenize comment
* rename MachineFrameInfo to TargetFrameInfo
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5170
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 28 Dec 2002 20:12:54 +0000 (20:12 +0000)]
Sparc specific methods default to abort rather than being pure virtual
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5169
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 28 Dec 2002 20:12:10 +0000 (20:12 +0000)]
Expose some very simple information about the frame, rather than in-depth
target specific information. Rename MachineFrameInfo to TargetFrameInfo
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5168
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 28 Dec 2002 20:10:23 +0000 (20:10 +0000)]
* Keep track of register alignment as well as register size
* Add comments
* Add a new allocation_order iterator for register classes which targets may
use to control the register order and available registers based on properties
of the function being compiled.
* Remove access to FP and SP registers
* Add new callframe setup opcode support
* Eliminate moveImm2Reg method
* Revamp frame offset handling and prolog/epilog code generation
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5167
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 28 Dec 2002 20:07:47 +0000 (20:07 +0000)]
Descriptor object used to manage abstract frame references
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5166
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 28 Dec 2002 20:07:33 +0000 (20:07 +0000)]
State for frame and constant pool information pulled out of MachineFunction
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5165
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 28 Dec 2002 20:05:44 +0000 (20:05 +0000)]
* Frame indices are signed
* Cluster modification methods together
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5164
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 28 Dec 2002 20:04:31 +0000 (20:04 +0000)]
* Pull a bunch of frame and constant pool state out into a new
MachineFunctionInfo class
* Add a new FunctionFrameInfo object
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5163
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 28 Dec 2002 20:03:01 +0000 (20:03 +0000)]
Initial check in of MachineFunctionPass.h
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5162
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 28 Dec 2002 20:01:23 +0000 (20:01 +0000)]
Add capability to turn on the -no-fp-elim option
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5161
91177308-0d34-0410-b5e6-
96231b3b80d8