Chris Lattner
70445403c3
Add speculation
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5226 91177308-0d34-0410-b5e6-96231b3b80d8
2003-01-13 00:35:08 +00:00
Chris Lattner
b708944fc2
* 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
2003-01-13 00:35:03 +00:00
Chris Lattner
e831b6b802
* 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
2003-01-13 00:33:59 +00:00
Chris Lattner
3e130a2a77
* 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
2003-01-13 00:32:26 +00:00
Chris Lattner
d0f166a486
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
2002-12-29 03:13:05 +00:00
Chris Lattner
f27eeea54f
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
2002-12-29 02:50:35 +00:00
Chris Lattner
aa09b75d22
Rename FunctionFrameInfo to MachineFrameInfo
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5201 91177308-0d34-0410-b5e6-96231b3b80d8
2002-12-28 21:08:28 +00:00
Chris Lattner
8bd66e6907
Rename MachineFrameInfo to TargetFrameInfo.h
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5199 91177308-0d34-0410-b5e6-96231b3b80d8
2002-12-28 21:00:25 +00:00
Chris Lattner
fde4b51baa
Implement the TargetFrameInfo interface
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5189 91177308-0d34-0410-b5e6-96231b3b80d8
2002-12-28 20:33:52 +00:00
Chris Lattner
d282cfef61
* 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
2002-12-28 20:33:32 +00:00
Chris Lattner
128aff4f95
Changes to match new MRegisterInfo api
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5187 91177308-0d34-0410-b5e6-96231b3b80d8
2002-12-28 20:32:54 +00:00
Chris Lattner
3c1c03d7a7
*** 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
2002-12-28 20:32:28 +00:00
Chris Lattner
e0a3fcb304
Contents merged with X86RegisterInfo.cpp
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5185 91177308-0d34-0410-b5e6-96231b3b80d8
2002-12-28 20:30:15 +00:00
Chris Lattner
0ef73f3e29
* 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
2002-12-28 20:29:41 +00:00
Chris Lattner
3e6dd5009d
* 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
2002-12-28 20:29:14 +00:00
Chris Lattner
a1826c2ecd
New addFrameReference function
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5182 91177308-0d34-0410-b5e6-96231b3b80d8
2002-12-28 20:26:58 +00:00
Chris Lattner
f2ab4124e3
* 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
2002-12-28 20:26:16 +00:00
Chris Lattner
0285a33761
* 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
2002-12-28 20:25:38 +00:00
Chris Lattner
5ae99fe3bf
* 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
2002-12-28 20:24:48 +00:00
Chris Lattner
065faebe10
* 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
2002-12-28 20:24:02 +00:00
Chris Lattner
94af414b71
* 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
2002-12-25 05:13:53 +00:00
Chris Lattner
6331bdb940
* 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
2002-12-25 05:11:46 +00:00
Chris Lattner
4c299f5da1
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
2002-12-25 05:09:59 +00:00
Chris Lattner
5ada8df488
Add support for FP prefixes
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5151 91177308-0d34-0410-b5e6-96231b3b80d8
2002-12-25 05:09:21 +00:00
Chris Lattner
eca1f639eb
Add printer support for Pseudo instructions
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5150 91177308-0d34-0410-b5e6-96231b3b80d8
2002-12-25 05:09:01 +00:00
Chris Lattner
ba4ef26245
Initial support for FP registers
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5149 91177308-0d34-0410-b5e6-96231b3b80d8
2002-12-25 05:08:03 +00:00
Chris Lattner
8e58179048
New simpler spill interface
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5148 91177308-0d34-0410-b5e6-96231b3b80d8
2002-12-25 05:07:09 +00:00
Chris Lattner
6811c6e1d7
Adjustments to match new simpler spill interface
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5147 91177308-0d34-0410-b5e6-96231b3b80d8
2002-12-25 05:06:43 +00:00
Chris Lattner
430cda7452
Free machine code
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5146 91177308-0d34-0410-b5e6-96231b3b80d8
2002-12-25 05:06:21 +00:00
Chris Lattner
5bcd95c57f
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
2002-12-24 00:04:01 +00:00
Chris Lattner
e8f0d924d4
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
2002-12-24 00:03:11 +00:00
Chris Lattner
fc1c705965
Fix compilation on gcc 2.96
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5116 91177308-0d34-0410-b5e6-96231b3b80d8
2002-12-23 23:46:55 +00:00
Chris Lattner
25f091fc61
Add definition for the bswap instruction
...
*** FIX: the encoding of the SUB instruction
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5115 91177308-0d34-0410-b5e6-96231b3b80d8
2002-12-23 23:46:31 +00:00
Chris Lattner
facc9fb9ba
Add support for the bswap instruction
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5114 91177308-0d34-0410-b5e6-96231b3b80d8
2002-12-23 23:46:00 +00:00
Chris Lattner
6eaa46956a
Fix warning
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5109 91177308-0d34-0410-b5e6-96231b3b80d8
2002-12-20 04:13:28 +00:00
Chris Lattner
45a4399f88
CBW doesn't modify AL
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5108 91177308-0d34-0410-b5e6-96231b3b80d8
2002-12-20 04:13:11 +00:00
Chris Lattner
df642e1fd6
fix warning
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5107 91177308-0d34-0410-b5e6-96231b3b80d8
2002-12-20 04:12:48 +00:00
Chris Lattner
89fab07abd
Don't force setCC instructions into AL
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5104 91177308-0d34-0410-b5e6-96231b3b80d8
2002-12-18 01:44:31 +00:00
Chris Lattner
b339223518
Add comments, switch uses/defs to match InstrInfo.def file
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5102 91177308-0d34-0410-b5e6-96231b3b80d8
2002-12-18 01:05:54 +00:00
Chris Lattner
1445895e19
Add reg clobber list for direct calls
...
Represent empty use/def list as a null pointer
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5101 91177308-0d34-0410-b5e6-96231b3b80d8
2002-12-18 01:05:31 +00:00
Chris Lattner
79de6319b1
Update to use new interface for register info
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5098 91177308-0d34-0410-b5e6-96231b3b80d8
2002-12-17 04:19:17 +00:00
Chris Lattner
3bbe7cc51d
Round number of bytes allocated on the stack up to a multiple of 4 so that the
...
stack remains aligned
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5095 91177308-0d34-0410-b5e6-96231b3b80d8
2002-12-17 03:15:26 +00:00
Chris Lattner
14322cd337
Local register allocator is now stable enough for use, it passes all tests
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5094 91177308-0d34-0410-b5e6-96231b3b80d8
2002-12-17 02:51:15 +00:00
Chris Lattner
6c6cf873f3
Register allocator is responsible for spilling callee saved regs
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5092 91177308-0d34-0410-b5e6-96231b3b80d8
2002-12-17 02:48:57 +00:00
Chris Lattner
3bd9409349
Build add instructions of the correct form!
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5090 91177308-0d34-0410-b5e6-96231b3b80d8
2002-12-16 23:36:57 +00:00
Chris Lattner
14aa7fe238
Two fixes:
...
* Only load incoming arguments into virtual registers once at the
beginning of the function
* Assign different virtual registers to each reference to constants/globals
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5088 91177308-0d34-0410-b5e6-96231b3b80d8
2002-12-16 22:54:46 +00:00
Chris Lattner
3fc14c2602
Fix prolog/epilog in the presence of alloca
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5087 91177308-0d34-0410-b5e6-96231b3b80d8
2002-12-16 22:29:30 +00:00
Chris Lattner
4863fe14de
Make sure stack manipulation refers to ESP the right number of times
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5086 91177308-0d34-0410-b5e6-96231b3b80d8
2002-12-16 22:29:06 +00:00
Chris Lattner
8a307e8c63
Add some special cases to make common getelementptr cases easier to read/faster
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5084 91177308-0d34-0410-b5e6-96231b3b80d8
2002-12-16 19:32:50 +00:00
Chris Lattner
27177cb1c1
Finish implementation of alias list impl
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5083 91177308-0d34-0410-b5e6-96231b3b80d8
2002-12-16 19:31:48 +00:00