1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-23 19:23:23 +01:00
Commit Graph

654 Commits

Author SHA1 Message Date
Chris Lattner
b1aeaf7efb Remove wierd case that can never happen
llvm-svn: 5623
2003-02-25 20:27:09 +00:00
Chris Lattner
bf414ca145 Don't emit unneccesary branch instructions!
llvm-svn: 5328
2003-01-16 18:07:23 +00:00
Chris Lattner
0a6ac532e1 Fix problem with invalidated iterator
llvm-svn: 5327
2003-01-16 18:07:13 +00:00
Chris Lattner
7455428f21 Implement optimization folding setcc into branch.
llvm-svn: 5324
2003-01-16 16:43:00 +00:00
Chris Lattner
8b4e7a511b Add more flavors of branch instructions
llvm-svn: 5323
2003-01-16 16:42:45 +00:00
Chris Lattner
013ad21206 Implement code to keep the stack pointer aligned to an 8 byte boundary.
This improves the performance of the power benchmark by a few percent.
This will be neccesary for SSE code, which requires 16 byte alignment of
the stack.

llvm-svn: 5320
2003-01-16 02:20:12 +00:00
Chris Lattner
df631471bf Handle frame offset due to return address pushed on the stack
llvm-svn: 5319
2003-01-15 22:57:35 +00:00
Chris Lattner
301e1307d2 Move sparc specific code into the Sparc backend
llvm-svn: 5317
2003-01-15 21:36:50 +00:00
Chris Lattner
e52cb68321 Fix warnings
llvm-svn: 5316
2003-01-15 21:36:30 +00:00
Chris Lattner
1af4454811 Adjust to simpler interfaces
Eliminate dependency on RegClass.h

llvm-svn: 5315
2003-01-15 21:14:32 +00:00
Chris Lattner
e5a3e82de5 #include RegClass.h explicitly
llvm-svn: 5307
2003-01-15 19:57:07 +00:00
Chris Lattner
01fcbebadc Move private header to private directory
llvm-svn: 5305
2003-01-15 19:50:44 +00:00
Chris Lattner
760b144cf9 Prune #includes
llvm-svn: 5303
2003-01-15 19:48:13 +00:00
Chris Lattner
7cc4353706 Use BuildMI more
llvm-svn: 5299
2003-01-15 19:23:34 +00:00
Chris Lattner
142533ab9a Fix bug found by regtests
llvm-svn: 5294
2003-01-15 18:11:11 +00:00
Chris Lattner
1caa00d195 Use BuildMI more, Create*Instruction less
llvm-svn: 5291
2003-01-15 17:47:49 +00:00
Chris Lattner
1a7dbb190e X86 backend should never use addMReg
llvm-svn: 5288
2003-01-15 00:04:14 +00:00
Chris Lattner
5af3bbf2fd * Elimiante a bunch of functions from InstrSelectionSupport.h, replacing users
of them with BUildMI calls instead.
* Fix def information in instructions generated by prologepilog inserter

llvm-svn: 5287
2003-01-15 00:03:28 +00:00
Chris Lattner
07b0e49989 Rename llvm/Analysis/LiveVar/FunctionLiveVarInfo.h -> llvm/CodeGen/FunctionLiveVarInfo.h
llvm-svn: 5284
2003-01-14 23:05:08 +00:00
Chris Lattner
b27d60ccf1 Rename MachineInstrInfo -> TargetInstrInfo
llvm-svn: 5272
2003-01-14 22:00:31 +00:00
Chris Lattner
7feefc7bb6 Minor cleanups
llvm-svn: 5266
2003-01-14 20:32:10 +00:00
Chris Lattner
fe32c9841d New files
llvm-svn: 5260
2003-01-13 01:01:59 +00:00
Chris Lattner
41b715c939 * No longer need lowerallocation pass
* Add X86 Stackifier pass
* Add peephole optimizer pass

llvm-svn: 5233
2003-01-13 00:51:23 +00:00
Chris Lattner
b3776320cf rename FP -> fp*
llvm-svn: 5232
2003-01-13 00:50:46 +00:00
Chris Lattner
b355b13a8e * 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

llvm-svn: 5231
2003-01-13 00:50:33 +00:00
Chris Lattner
4f840c1292 * Some instructions take 64 bit integers, add an Arg type for it
* Add flags for different types of FP pseudo instrs

llvm-svn: 5230
2003-01-13 00:49:24 +00:00
Chris Lattner
902000e290 * 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

llvm-svn: 5229
2003-01-13 00:48:46 +00:00
Chris Lattner
af51740068 Add support for frame and constant pool references
llvm-svn: 5228
2003-01-13 00:45:53 +00:00
Chris Lattner
b264e01cfe Move passes out to Passes.h
llvm-svn: 5227
2003-01-13 00:45:29 +00:00
Chris Lattner
9b01e3a012 Add speculation
llvm-svn: 5226
2003-01-13 00:35:08 +00:00
Chris Lattner
21c83b54c0 * 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
*

llvm-svn: 5225
2003-01-13 00:35:03 +00:00
Chris Lattner
d329d95d7f * 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

llvm-svn: 5224
2003-01-13 00:33:59 +00:00
Chris Lattner
f3989edae2 * 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

llvm-svn: 5223
2003-01-13 00:32:26 +00:00
Chris Lattner
00051d10a3 Start renaming MachineInstrInfo -> TargetInstrInfo
llvm-svn: 5221
2003-01-13 00:26:36 +00:00
Chris Lattner
dfa3c21f1c More renamings of Target/Machine*Info to Target/Target*Info
llvm-svn: 5204
2002-12-29 03:13:05 +00:00
Chris Lattner
bff4411f3a Rename MachineOptInfo to TargetoptInfo
Rename MachineCacheInfo to TargetCacheInfo

llvm-svn: 5203
2002-12-29 02:50:35 +00:00
Chris Lattner
4748968a73 Rename MachineOptInfo to TargetoptInfo
Rename MachineCacheInfo to TargetCacheInfo

llvm-svn: 5202
2002-12-29 02:50:33 +00:00
Chris Lattner
ea33ca1e96 Rename FunctionFrameInfo to MachineFrameInfo
llvm-svn: 5201
2002-12-28 21:08:28 +00:00
Chris Lattner
2407294a41 Rename MachineFrameInfo to TargetFrameInfo.h
llvm-svn: 5199
2002-12-28 21:00:25 +00:00
Chris Lattner
61698ab8f1 Put class in anonymous namespace
llvm-svn: 5197
2002-12-28 20:42:56 +00:00
Chris Lattner
ccf8923c73 Eliminate unneccesary file
llvm-svn: 5191
2002-12-28 20:34:47 +00:00
Chris Lattner
c004869af1 Capture more information in ctor
llvm-svn: 5190
2002-12-28 20:34:18 +00:00
Chris Lattner
105b7d86fb Implement the TargetFrameInfo interface
llvm-svn: 5189
2002-12-28 20:33:52 +00:00
Chris Lattner
c98a33844d * Initialize new FrameInfo member
* most pass ctors no longer take TM arguments
* New prolog/epilog insertion pass

llvm-svn: 5188
2002-12-28 20:33:32 +00:00
Chris Lattner
56a499f4ee Changes to match new MRegisterInfo api
llvm-svn: 5187
2002-12-28 20:32:54 +00:00
Chris Lattner
a2bb8607ab *** 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.

llvm-svn: 5186
2002-12-28 20:32:28 +00:00
Chris Lattner
df4f605836 Contents merged with X86RegisterInfo.cpp
llvm-svn: 5185
2002-12-28 20:30:15 +00:00
Chris Lattner
4c782b2fb2 * 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
edd79f7fe1 * 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
f6da2e0f4c New addFrameReference function
llvm-svn: 5182
2002-12-28 20:26:58 +00:00