oota-llvm.git
21 years agotest a bunch of stuff
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

21 years agoTest long support
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

21 years agoFix static initializer ordering dependency
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

21 years agoAdd debugging helper
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

21 years agoMake sure to handle %'s in strings correctly so that the names of BB's and functions...
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

21 years ago* No longer need lowerallocation pass
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

21 years agorename FP -> fp*
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

21 years ago* Move frame and constant pool indexes to first argument of memory reference
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

21 years ago* Some instructions take 64 bit integers, add an Arg type for it
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

21 years ago* Function calls clobber fp registers
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

21 years agoAdd support for frame and constant pool references
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

21 years agoMove passes out to Passes.h
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

21 years agoAdd speculation
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

21 years ago* Implement rudimentary output of the constant pool
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

21 years ago* Add support for FP registers ST*
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

21 years ago* Adjust to use new interfaces, eliminating CurReg stuff
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

21 years agoFix references to functions
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

21 years agoStart renaming MachineInstrInfo -> TargetInstrInfo
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

21 years ago* Use the PHI Elimination pass
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

21 years ago* Convert to use LiveVariable analysis
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

21 years agoConvert to MachineFunctionPass
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

21 years agoAdd support for 3 new forms of MachineOperand
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

21 years agoAdd support for constant pool
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

21 years agoAdd support for global address by string and constant pool values
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

21 years agoRename MachineInstrInfo -> TargetInstrInfo
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

21 years ago* Start renaming MachineInstrInfo -> TargetInstrInfo
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

21 years agoAdd new getName method
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

21 years agoSimplify interface to creating a register
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

21 years ago* Add support for new types of operands
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

21 years ago* Add 3 new types of MachineOperand: ConstantPoolIndex ExternalSymbol and GlobalAddress's
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

21 years ago* Add a constant pool to hold per-function constants which must be spilled to memory
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

21 years ago* Add utility methods which make common cases easier
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

21 years ago* Add support for values in the constant pool
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

21 years agoAdd an option (which will go away in the future) signfifying that there is a JIT...
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

21 years agoMore renamings of Target/Machine*Info to Target/Target*Info
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

21 years agoRename MachineOptInfo to TargetoptInfo
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

21 years agoRename MachineOptInfo to TargetoptInfo
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

21 years agoRename FunctionFrameInfo to MachineFrameInfo
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

21 years ago Rename FunctionFrameInfo to MachineFrameInfo
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

21 years agoRename MachineFrameInfo to TargetFrameInfo.h
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

21 years agoInitial checkin of Prolog/Epilog code inserter, which is an important part
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

21 years agoPut class in anonymous namespace
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

21 years ago* Convert to be a MachineFunctionPass instance
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

21 years ago* Convert to be a MachineFunctionPass instance
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

21 years ago* Add printing support for FrameIndex operands
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

21 years ago* A bunch of functionality and data was removed from MachineFunction and put
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

21 years agoFrame info moved out of MachineFunction into a seperate object
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

21 years agoEliminate unneccesary file
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

21 years agoCapture more information in ctor
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

21 years agoImplement the TargetFrameInfo interface
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

21 years ago* Initialize new FrameInfo member
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

21 years agoChanges to match new MRegisterInfo api
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

21 years ago*** Implement frame pointer elimination on X86!
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

21 years agoContents merged with X86RegisterInfo.cpp
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

21 years ago* Remove implementations of previously pure virtual functions that are not any longer.
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

21 years ago* Minor reformatting
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

21 years agoNew addFrameReference function
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

21 years ago* Most pass ctor functions don't take TM arguments anymore
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

21 years ago* Convert to a MachineFunctionPass
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

21 years ago* Convert to a MachineFunctionPass
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

21 years ago* Use the new Abstract Frame Manager to handle incoming arguments and
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

21 years ago* Rename machineFrameInfo to targetFrameInfo
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

21 years ago* Rename MachineFrameInfo to TargetFrameInfo
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

21 years ago* TargetData is no longer directly accessable from TM
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

21 years ago* TargetData is no longer directly accessable from TargetMachine
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

21 years ago* Frame & const pool info is no longer directly in MachineFunction
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

21 years ago* Changes to be a MachineFunctionPass
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

21 years ago* Don't access TargetData directly
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

21 years ago* doxygenize comment
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

21 years agoSparc specific methods default to abort rather than being pure virtual
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

21 years agoExpose some very simple information about the frame, rather than in-depth
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

21 years ago* Keep track of register alignment as well as register size
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

21 years agoDescriptor object used to manage abstract frame references
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

21 years agoState for frame and constant pool information pulled out of MachineFunction
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

21 years ago* Frame indices are signed
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

21 years ago* Pull a bunch of frame and constant pool state out into a new
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

21 years agoInitial check in of MachineFunctionPass.h
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

21 years agoAdd capability to turn on the -no-fp-elim option
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

21 years agoAdd another simple call
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

21 years agoTest argument passing
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

21 years agoAdd a variable sized alloca to test
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

21 years agoAdd diagnostic output
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

21 years agoEliminate direct access to TargetData structure
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

21 years agoInitial fp test
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

21 years ago* Simplify Value classes
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

21 years ago* Use new pseudo instr form for instructions
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

21 years agoAdd FP instr prefix byte support
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

21 years agoAdd support for FP prefixes
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

21 years agoAdd printer support for Pseudo instructions
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

21 years agoInitial support for FP registers
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

21 years agoNew simpler spill interface
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

21 years agoAdjustments to match new simpler spill interface
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

21 years agoFree machine code
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

21 years agoAdjust to simpler spill interface
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

21 years agoAdjustments to work with the simpler spill interface
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

21 years agoRemove dependency on SSARegMap.h by MachineFunction.h
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

21 years agoSimplify spill interface methods
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

21 years agoAdd comment
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

21 years agoAdd abstract frame index capability
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

21 years agoRemove default ctor
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