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
Chris Lattner [Sat, 28 Dec 2002 20:01:07 +0000 (20:01 +0000)]
Add another simple call
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5160
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 28 Dec 2002 20:00:47 +0000 (20:00 +0000)]
Test argument passing
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5159
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 28 Dec 2002 20:00:33 +0000 (20:00 +0000)]
Add a variable sized alloca to test
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5158
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 28 Dec 2002 20:00:15 +0000 (20:00 +0000)]
Add diagnostic output
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5157
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 28 Dec 2002 20:00:00 +0000 (20:00 +0000)]
Eliminate direct access to TargetData structure
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5156
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 25 Dec 2002 05:14:29 +0000 (05:14 +0000)]
Initial fp test
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5155
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 25 Dec 2002 05:13:53 +0000 (05:13 +0000)]
* Simplify Value classes
* Add initial support for FP constants
* Add initial FP support for several instructions
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5154
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 25 Dec 2002 05:11:46 +0000 (05:11 +0000)]
* Use new pseudo instr form for instructions
* Mark CALLpcrel as a RawFrm instruction as required
* Eliminate invalid BSWAP16 instruction
* Add xchg instructions
* Add initial support for FP instructions
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5153
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 25 Dec 2002 05:09:59 +0000 (05:09 +0000)]
Add FP instr prefix byte support
Add Pseudo instr class
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5152
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 25 Dec 2002 05:09:21 +0000 (05:09 +0000)]
Add support for FP prefixes
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5151
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 25 Dec 2002 05:09:01 +0000 (05:09 +0000)]
Add printer support for Pseudo instructions
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5150
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 25 Dec 2002 05:08:03 +0000 (05:08 +0000)]
Initial support for FP registers
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5149
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 25 Dec 2002 05:07:09 +0000 (05:07 +0000)]
New simpler spill interface
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5148
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 25 Dec 2002 05:06:43 +0000 (05:06 +0000)]
Adjustments to match new simpler spill interface
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5147
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 25 Dec 2002 05:06:21 +0000 (05:06 +0000)]
Free machine code
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5146
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 25 Dec 2002 05:05:46 +0000 (05:05 +0000)]
Adjust to simpler spill interface
Only spill and reload caller saved registers that are actually modified.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5145
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 25 Dec 2002 05:04:20 +0000 (05:04 +0000)]
Adjustments to work with the simpler spill interface
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5144
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 25 Dec 2002 05:03:22 +0000 (05:03 +0000)]
Remove dependency on SSARegMap.h by MachineFunction.h
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5143
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 25 Dec 2002 05:02:00 +0000 (05:02 +0000)]
Simplify spill interface methods
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5142
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 25 Dec 2002 05:01:46 +0000 (05:01 +0000)]
Add comment
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5141
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 25 Dec 2002 05:01:18 +0000 (05:01 +0000)]
Add abstract frame index capability
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5140
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 25 Dec 2002 05:01:05 +0000 (05:01 +0000)]
Remove default ctor
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5139
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 25 Dec 2002 05:00:49 +0000 (05:00 +0000)]
*** empty log message ***
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5138
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 25 Dec 2002 05:00:16 +0000 (05:00 +0000)]
Remove dependency on SSARegMap.h
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5137
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 24 Dec 2002 00:44:34 +0000 (00:44 +0000)]
Fix compilation on GCC 3.2
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5136
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 24 Dec 2002 00:44:26 +0000 (00:44 +0000)]
Don't try to buidl jello
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5135
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 24 Dec 2002 00:39:16 +0000 (00:39 +0000)]
Fixes to compile with GCC 3.2
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5134
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 24 Dec 2002 00:14:25 +0000 (00:14 +0000)]
Jello is now part of LLI
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5133
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 24 Dec 2002 00:04:55 +0000 (00:04 +0000)]
Substantial fixes to live range handling, fixing several problems, getting
strtol to not miscompile, and fixing bug: 2002-12-23-LocalRAProblem.llx
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5132
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 24 Dec 2002 00:04:01 +0000 (00:04 +0000)]
Changes to allow for a configurable target machine that allows big endian and/or long pointer operation
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5131
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 24 Dec 2002 00:03:11 +0000 (00:03 +0000)]
Changes to compile with GCC 2.96
Changes to support configurable pointer size and endianness
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5130
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 24 Dec 2002 00:02:38 +0000 (00:02 +0000)]
Sparc is not little endian
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5129
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 24 Dec 2002 00:02:17 +0000 (00:02 +0000)]
Allow the target machines to specify endianness and pointer size
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5128
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 24 Dec 2002 00:01:22 +0000 (00:01 +0000)]
Initial checkin
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5127
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 24 Dec 2002 00:01:05 +0000 (00:01 +0000)]
Initial checkin of new LLI with JIT compiler
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5126
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 23 Dec 2002 23:59:41 +0000 (23:59 +0000)]
Substantial changes to refactor LLI to incorporate both the Jello JIT and
the traditional LLI interpreter
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5125
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 23 Dec 2002 23:55:01 +0000 (23:55 +0000)]
X86 target machine is now parameterizable
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5124
91177308-0d34-0410-b5e6-
96231b3b80d8