summaryrefslogtreecommitdiffstats
path: root/llvm/lib
Commit message (Collapse)AuthorAgeFilesLines
...
* Add speculationChris Lattner2003-01-131-1/+1
| | | | llvm-svn: 5226
* * Implement rudimentary output of the constant poolChris Lattner2003-01-131-19/+110
| | | | | | | | | * Implement support for MRMS?m instructions * Add Arg64 support * Add support for frame indexes and constant pool indexes * llvm-svn: 5225
* * Add support for FP registers ST*Chris Lattner2003-01-132-40/+146
| | | | | | | | | * 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
* * Adjust to use new interfaces, eliminating CurReg stuffChris Lattner2003-01-131-410/+802
| | | | | | | | | | | | | | | | | | * 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
* Fix references to functionsChris Lattner2003-01-131-6/+8
| | | | llvm-svn: 5222
* Start renaming MachineInstrInfo -> TargetInstrInfoChris Lattner2003-01-131-16/+11
| | | | llvm-svn: 5221
* * Use the PHI Elimination passChris Lattner2003-01-131-80/+6
| | | | llvm-svn: 5220
* * Convert to use LiveVariable analysisChris Lattner2003-01-131-261/+251
| | | | | | | | | | | * 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. llvm-svn: 5219
* Convert to MachineFunctionPassChris Lattner2003-01-131-7/+6
| | | | llvm-svn: 5218
* Add support for 3 new forms of MachineOperandChris Lattner2003-01-131-18/+39
| | | | llvm-svn: 5217
* Add support for constant poolChris Lattner2003-01-131-1/+29
| | | | | | Add helper methods for MachineFrameInfo llvm-svn: 5216
* Add support for global address by string and constant pool valuesChris Lattner2003-01-131-1/+10
| | | | llvm-svn: 5215
* More renamings of Target/Machine*Info to Target/Target*InfoChris Lattner2002-12-2915-53/+53
| | | | llvm-svn: 5204
* Rename MachineOptInfo to TargetoptInfoChris Lattner2002-12-294-8/+8
| | | | | | Rename MachineCacheInfo to TargetCacheInfo llvm-svn: 5203
* Rename MachineOptInfo to TargetoptInfoChris Lattner2002-12-291-10/+8
| | | | | | Rename MachineCacheInfo to TargetCacheInfo llvm-svn: 5202
* Rename FunctionFrameInfo to MachineFrameInfoChris Lattner2002-12-282-18/+18
| | | | llvm-svn: 5201
* Rename FunctionFrameInfo to MachineFrameInfoChris Lattner2002-12-284-10/+10
| | | | llvm-svn: 5200
* Rename MachineFrameInfo to TargetFrameInfo.hChris Lattner2002-12-285-5/+5
| | | | llvm-svn: 5199
* Initial checkin of Prolog/Epilog code inserter, which is an important partChris Lattner2002-12-281-0/+247
| | | | | | of the abstract frame representation llvm-svn: 5198
* Put class in anonymous namespaceChris Lattner2002-12-281-23/+25
| | | | llvm-svn: 5197
* * Convert to be a MachineFunctionPass instanceChris Lattner2002-12-281-174/+67
| | | | | | | | | | | | | | | | | | * 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 llvm-svn: 5196
* * Convert to be a MachineFunctionPass instanceChris Lattner2002-12-281-196/+64
| | | | | | | | | | | | | | * 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 llvm-svn: 5195
* * Add printing support for FrameIndex operandsChris Lattner2002-12-281-24/+29
| | | | llvm-svn: 5194
* * A bunch of functionality and data was removed from MachineFunction and putChris Lattner2002-12-281-48/+84
| | | | | | | into a new MachineFunctionInfo class * Implement new FunctionFrameInfo class llvm-svn: 5193
* Frame info moved out of MachineFunction into a seperate objectChris Lattner2002-12-281-6/+7
| | | | llvm-svn: 5192
* Eliminate unneccesary fileChris Lattner2002-12-281-42/+0
| | | | llvm-svn: 5191
* Capture more information in ctorChris Lattner2002-12-281-1/+5
| | | | llvm-svn: 5190
* Implement the TargetFrameInfo interfaceChris Lattner2002-12-281-6/+9
| | | | llvm-svn: 5189
* * Initialize new FrameInfo memberChris Lattner2002-12-281-4/+11
| | | | | | | * most pass ctors no longer take TM arguments * New prolog/epilog insertion pass llvm-svn: 5188
* Changes to match new MRegisterInfo apiChris Lattner2002-12-281-25/+26
| | | | llvm-svn: 5187
* *** Implement frame pointer elimination on X86!Chris Lattner2002-12-281-57/+288
| | | | | | | | | | * 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
* Contents merged with X86RegisterInfo.cppChris Lattner2002-12-281-111/+0
| | | | llvm-svn: 5185
* * Remove implementations of previously pure virtual functions that are not ↵Chris Lattner2002-12-281-49/+0
| | | | | | any longer. llvm-svn: 5184
* * Minor reformattingChris Lattner2002-12-281-63/+78
| | | | | | | | | | * 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
* New addFrameReference functionChris Lattner2002-12-281-6/+18
| | | | llvm-svn: 5182
* * Most pass ctor functions don't take TM arguments anymoreChris Lattner2002-12-281-7/+12
| | | | | | * New createPrologEpilogCodeInserter() function llvm-svn: 5181
* * Convert to a MachineFunctionPassChris Lattner2002-12-281-36/+37
| | | | | | | * Don't take a TM as a ctor parameter * Print [X - Y] instead of [X + -Y] when possible llvm-svn: 5180
* * Convert to a MachineFunctionPassChris Lattner2002-12-282-26/+30
| | | | | | | * ctor doesn't take TM argument * handle direct ESP references correctly! llvm-svn: 5179
* * Use the new Abstract Frame Manager to handle incoming arguments andChris Lattner2002-12-281-100/+186
| | | | | | | fixed size allocas * Revamp call emission to work with new frame manager llvm-svn: 5178
* * Rename machineFrameInfo to targetFrameInfoChris Lattner2002-12-281-19/+18
| | | | | | * Constant pool and frame info is no longer directly in MachineFunction llvm-svn: 5177
* * Rename MachineFrameInfo to TargetFrameInfoChris Lattner2002-12-281-4/+28
| | | | | | * Move some sparc specific code here from Target files llvm-svn: 5176
* * TargetData is no longer directly accessable from TMChris Lattner2002-12-281-40/+42
| | | | | | * s/unsigned int/unsigned/ llvm-svn: 5175
* * TargetData is no longer directly accessable from TargetMachineChris Lattner2002-12-281-8/+9
| | | | | | * Constpool & frame info is no longer directly in MachineFunction llvm-svn: 5174
* * Frame & const pool info is no longer directly in MachineFunctionChris Lattner2002-12-281-8/+10
| | | | llvm-svn: 5173
* * Changes to be a MachineFunctionPassChris Lattner2002-12-281-56/+46
| | | | | | | | * 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
* * Don't access TargetData directlyChris Lattner2002-12-281-8/+10
| | | | | | * Changes because frame info is not in MachineFunction directly anymore llvm-svn: 5171
* Add diagnostic outputChris Lattner2002-12-281-0/+1
| | | | llvm-svn: 5157
* * Simplify Value classesChris Lattner2002-12-251-183/+243
| | | | | | | * Add initial support for FP constants * Add initial FP support for several instructions llvm-svn: 5154
* * Use new pseudo instr form for instructionsChris Lattner2002-12-251-14/+43
| | | | | | | | | * Mark CALLpcrel as a RawFrm instruction as required * Eliminate invalid BSWAP16 instruction * Add xchg instructions * Add initial support for FP instructions llvm-svn: 5153
* Add FP instr prefix byte supportChris Lattner2002-12-251-25/+40
| | | | | | Add Pseudo instr class llvm-svn: 5152
OpenPOWER on IntegriCloud