Commit Graph

4980 Commits

Author SHA1 Message Date
Chris Lattner 9a9739e517 Contents merged with X86RegisterInfo.cpp
llvm-svn: 5185
2002-12-28 20:30:15 +00:00
Chris Lattner 59a20d7b6d * Remove implementations of previously pure virtual functions that are not any longer.
llvm-svn: 5184
2002-12-28 20:29:41 +00:00
Chris Lattner 365ede3748 * 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

llvm-svn: 5183
2002-12-28 20:29:14 +00:00
Chris Lattner ef5a8f912c New addFrameReference function
llvm-svn: 5182
2002-12-28 20:26:58 +00:00
Chris Lattner 4937643df9 * Most pass ctor functions don't take TM arguments anymore
* New createPrologEpilogCodeInserter() function

llvm-svn: 5181
2002-12-28 20:26:16 +00:00
Chris Lattner 1520c5ab2a * Convert to a MachineFunctionPass
* Don't take a TM as a ctor parameter
* Print [X - Y] instead of [X + -Y] when possible

llvm-svn: 5180
2002-12-28 20:25:38 +00:00
Chris Lattner d24f633394 * Convert to a MachineFunctionPass
* ctor doesn't take TM argument
* handle direct ESP references correctly!

llvm-svn: 5179
2002-12-28 20:24:48 +00:00
Chris Lattner 51553e0700 * Use the new Abstract Frame Manager to handle incoming arguments and
fixed size allocas
* Revamp call emission to work with new frame manager

llvm-svn: 5178
2002-12-28 20:24:02 +00:00
Chris Lattner d47aac9d4b * Rename machineFrameInfo to targetFrameInfo
* Constant pool and frame info is no longer directly in MachineFunction

llvm-svn: 5177
2002-12-28 20:21:29 +00:00
Chris Lattner fe9b705bed * Rename MachineFrameInfo to TargetFrameInfo
* Move some sparc specific code here from Target files

llvm-svn: 5176
2002-12-28 20:20:24 +00:00
Chris Lattner b9feac398f * TargetData is no longer directly accessable from TM
* s/unsigned int/unsigned/

llvm-svn: 5175
2002-12-28 20:19:44 +00:00
Chris Lattner a41b89a829 * TargetData is no longer directly accessable from TargetMachine
* Constpool & frame info is no longer directly in MachineFunction

llvm-svn: 5174
2002-12-28 20:18:21 +00:00
Chris Lattner 525e3af36c * Frame & const pool info is no longer directly in MachineFunction
llvm-svn: 5173
2002-12-28 20:17:43 +00:00
Chris Lattner d2a67df791 * 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

llvm-svn: 5172
2002-12-28 20:16:08 +00:00
Chris Lattner 4d84d49f75 * Don't access TargetData directly
* Changes because frame info is not in MachineFunction directly anymore

llvm-svn: 5171
2002-12-28 20:15:01 +00:00
Chris Lattner 69f10f32cc * doxygenize comment
* rename MachineFrameInfo to TargetFrameInfo

llvm-svn: 5170
2002-12-28 20:13:29 +00:00
Chris Lattner 8da6184be0 Sparc specific methods default to abort rather than being pure virtual
llvm-svn: 5169
2002-12-28 20:12:54 +00:00
Chris Lattner 6ed67d7ac5 Expose some very simple information about the frame, rather than in-depth
target specific information.  Rename MachineFrameInfo to TargetFrameInfo

llvm-svn: 5168
2002-12-28 20:12:10 +00:00
Chris Lattner a4f3329bc9 * 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

llvm-svn: 5167
2002-12-28 20:10:23 +00:00
Chris Lattner 840af613be Descriptor object used to manage abstract frame references
llvm-svn: 5166
2002-12-28 20:07:47 +00:00
Chris Lattner 00436009f6 State for frame and constant pool information pulled out of MachineFunction
llvm-svn: 5165
2002-12-28 20:07:33 +00:00
Chris Lattner 30cd247441 * Frame indices are signed
* Cluster modification methods together

llvm-svn: 5164
2002-12-28 20:05:44 +00:00
Chris Lattner f1230afc0e * Pull a bunch of frame and constant pool state out into a new
MachineFunctionInfo class
* Add a new FunctionFrameInfo object

llvm-svn: 5163
2002-12-28 20:04:31 +00:00
Chris Lattner 343ad0d65c Initial check in of MachineFunctionPass.h
llvm-svn: 5162
2002-12-28 20:03:01 +00:00
Chris Lattner 4927f155d6 Add capability to turn on the -no-fp-elim option
llvm-svn: 5161
2002-12-28 20:01:23 +00:00
Chris Lattner 12fff8aea2 Add another simple call
llvm-svn: 5160
2002-12-28 20:01:07 +00:00
Chris Lattner 5c3ce1695b Test argument passing
llvm-svn: 5159
2002-12-28 20:00:47 +00:00
Chris Lattner 39192e0463 Add a variable sized alloca to test
llvm-svn: 5158
2002-12-28 20:00:33 +00:00
Chris Lattner 3685f65f1b Add diagnostic output
llvm-svn: 5157
2002-12-28 20:00:15 +00:00
Chris Lattner c864583477 Eliminate direct access to TargetData structure
llvm-svn: 5156
2002-12-28 20:00:00 +00:00
Chris Lattner 47283917c6 Initial fp test
llvm-svn: 5155
2002-12-25 05:14:29 +00:00
Chris Lattner a76f456a60 * Simplify Value classes
* Add initial support for FP constants
* Add initial FP support for several instructions

llvm-svn: 5154
2002-12-25 05:13:53 +00:00
Chris Lattner 6ecc6a72c9 * 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

llvm-svn: 5153
2002-12-25 05:11:46 +00:00
Chris Lattner e98ca19112 Add FP instr prefix byte support
Add Pseudo instr class

llvm-svn: 5152
2002-12-25 05:09:59 +00:00
Chris Lattner 36703cd02a Add support for FP prefixes
llvm-svn: 5151
2002-12-25 05:09:21 +00:00
Chris Lattner 7c10f4f5d4 Add printer support for Pseudo instructions
llvm-svn: 5150
2002-12-25 05:09:01 +00:00
Chris Lattner c9f3bbb5d2 Initial support for FP registers
llvm-svn: 5149
2002-12-25 05:08:03 +00:00
Chris Lattner dafa31658f New simpler spill interface
llvm-svn: 5148
2002-12-25 05:07:09 +00:00
Chris Lattner 4997a840bc Adjustments to match new simpler spill interface
llvm-svn: 5147
2002-12-25 05:06:43 +00:00
Chris Lattner 55aaff5590 Free machine code
llvm-svn: 5146
2002-12-25 05:06:21 +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 f2dc9d9cea Simplify spill interface methods
llvm-svn: 5142
2002-12-25 05:02:00 +00:00
Chris Lattner 52d325b494 Add comment
llvm-svn: 5141
2002-12-25 05:01:46 +00:00
Chris Lattner 05ec1f9369 Add abstract frame index capability
llvm-svn: 5140
2002-12-25 05:01:18 +00:00
Chris Lattner 9d8350939a Remove default ctor
llvm-svn: 5139
2002-12-25 05:01:05 +00:00
Chris Lattner 21d48e8f2c *** empty log message ***
llvm-svn: 5138
2002-12-25 05:00:49 +00:00
Chris Lattner 6e6c6eda24 Remove dependency on SSARegMap.h
llvm-svn: 5137
2002-12-25 05:00:16 +00:00
Chris Lattner 7c0f86233f Fix compilation on GCC 3.2
llvm-svn: 5136
2002-12-24 00:44:34 +00:00