summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/X86/X86RegisterInfo.cpp
Commit message (Collapse)AuthorAgeFilesLines
...
* Add an option to disable spill fusing in the X86 backendChris Lattner2004-02-171-0/+5
| | | | llvm-svn: 11531
* Fix the mneumonics for the mov instructions to have the source and destinationChris Lattner2004-02-171-9/+9
| | | | | | order in the correct sense!! Arg! llvm-svn: 11530
* GRRR. Move instructions have swapped the order of the r/m operands.Chris Lattner2004-02-171-6/+6
| | | | llvm-svn: 11528
* Change to match the newer, simpler, interfaceChris Lattner2004-02-171-30/+7
| | | | llvm-svn: 11525
* Add support for folding memory operands into AND and IMUL'sChris Lattner2004-02-171-2/+30
| | | | llvm-svn: 11523
* Scrunchify code, by adding helpers. No functionality changes.Chris Lattner2004-02-171-56/+45
| | | | llvm-svn: 11522
* Add API to check and fold memory operands into instructions.Alkis Evlogimenos2004-02-171-0/+81
| | | | llvm-svn: 11519
* Fix the 'have a framepointer' case, so that the frame pointer always pointsChris Lattner2004-02-151-8/+10
| | | | | | to the old saved EBP. llvm-svn: 11455
* There is no reason to align the stack pointer if there are no callees of thisChris Lattner2004-02-141-10/+12
| | | | | | function! llvm-svn: 11450
* The prologue/epilogue related method calls have no reason to return a value,Chris Lattner2004-02-141-25/+15
| | | | | | | | make them return void. This allows us to avoid some costly MBB.size() calls llvm-svn: 11448
* finegrainify namespacification, fix 80col probChris Lattner2004-02-141-7/+1
| | | | llvm-svn: 11445
* Use newly added next() and prior() utility functions.Alkis Evlogimenos2004-02-141-1/+2
| | | | llvm-svn: 11430
* Change interface so that we can add to the end of a basic blockAlkis Evlogimenos2004-02-121-5/+5
| | | | | | | without getting an assertion from ilist that we are dereferencing ilist<T>::end(). llvm-svn: 11345
* Change MachineBasicBlock's vector of MachineInstr pointers into anAlkis Evlogimenos2004-02-121-26/+23
| | | | | | | | | ilist of MachineInstr objects. This allows constant time removal and insertion of MachineInstr instances from anywhere in each MachineBasicBlock. It also allows for constant time splicing of MachineInstrs into or out of MachineBasicBlocks. llvm-svn: 11340
* Modify the two address instruction pass to remove the duplicateAlkis Evlogimenos2004-02-041-5/+5
| | | | | | operand of the instruction and thus simplify the register allocation. llvm-svn: 11124
* Put all LLVM code into the llvm namespace, as per bug 109.Brian Gaeke2003-11-111-0/+8
| | | | llvm-svn: 9903
* Change all machine basic block modifier functions in MRegisterInfo toAlkis Evlogimenos2003-11-041-23/+36
| | | | | | | | | | | | | | | return the number of instructions added to/removed from the basic block passed as their first argument. Note: This is only needed because we use a std::vector instead of an ilist to keep MachineBasicBlock instructions. Inserting an instruction to a MachineBasicBlock invalidates all iterators to the basic block. The return value can be used to update an index to the machine basic block instruction vector and circumvent the iterator elimination problem but this is really not needed if we move to a better representation. llvm-svn: 9704
* Added LLVM project notice to the top of every C++ source file.John Criswell2003-10-201-0/+7
| | | | | | Header files will be on the way. llvm-svn: 9298
* Output a contorted sequence of instructions to make sure that we don't accessChris Lattner2003-10-141-8/+20
| | | | | | off the bottom of the stack. This fixes PR#41 llvm-svn: 9114
* Disable the leaf function optimization, which is apparently not legal onChris Lattner2003-10-141-25/+2
| | | | | | | | X86/linux. :( The problem is that a signal delivered while the function is executing could clobber the functions stack. This is a partial fix for PR41. llvm-svn: 9113
* Spell `necessary' correctly.Misha Brukman2003-08-181-1/+1
| | | | llvm-svn: 7944
* Rename register classes to be upper case to make it obvious that they are X86Chris Lattner2003-08-041-4/+4
| | | | | | specific in the tree patterns llvm-svn: 7578
* Switch over to TableGen generated register file descriptionChris Lattner2003-08-031-109/+8
| | | | llvm-svn: 7511
* Move "register flags" definition the type of registers to be fully fledgedChris Lattner2003-07-291-0/+1
| | | | | | value types llvm-svn: 7377
* Rename -no-* to -disable-*Chris Lattner2003-02-261-1/+1
| | | | llvm-svn: 5642
* Implement code to keep the stack pointer aligned to an 8 byte boundary.Chris Lattner2003-01-161-0/+13
| | | | | | | | 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
* Handle frame offset due to return address pushed on the stackChris Lattner2003-01-151-6/+8
| | | | llvm-svn: 5319
* * Move frame and constant pool indexes to first argument of memory referenceChris Lattner2003-01-131-11/+12
| | | | | | | so we can put an offset in there as well... * Fix long/ulong stuff llvm-svn: 5231
* Rename FunctionFrameInfo to MachineFrameInfoChris Lattner2002-12-281-11/+11
| | | | llvm-svn: 5201
* *** 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
* New simpler spill interfaceChris Lattner2002-12-251-49/+43
| | | | llvm-svn: 5148
* Fix compilation on gcc 2.96Chris Lattner2002-12-231-10/+10
| | | | llvm-svn: 5116
* Fix warningChris Lattner2002-12-201-1/+1
| | | | llvm-svn: 5109
* Update to use new interface for register infoChris Lattner2002-12-171-19/+0
| | | | llvm-svn: 5098
* Round number of bytes allocated on the stack up to a multiple of 4 so that theChris Lattner2002-12-171-2/+5
| | | | | | stack remains aligned llvm-svn: 5095
* Register allocator is responsible for spilling callee saved regsChris Lattner2002-12-171-19/+3
| | | | llvm-svn: 5092
* Fix prolog/epilog in the presence of allocaChris Lattner2002-12-161-11/+11
| | | | llvm-svn: 5087
* Finish implementation of alias list implChris Lattner2002-12-161-1/+8
| | | | llvm-svn: 5083
* Try #2 to get alias set stuff to workChris Lattner2002-12-161-1/+1
| | | | llvm-svn: 5077
* Add info about register file aliasingChris Lattner2002-12-161-1/+1
| | | | llvm-svn: 5074
* Correct the setting of Def flags on registers that are modified!Chris Lattner2002-12-151-11/+9
| | | | llvm-svn: 5065
* Simplify interfaces used by regalloc to insert codeChris Lattner2002-12-151-33/+26
| | | | llvm-svn: 5052
* Cleaned up the code: factored out switch/case into a separate function, putMisha Brukman2002-12-131-43/+22
| | | | | | | constants in an array for quick lookup. Stole the idea from elsewhere in Jello. llvm-svn: 5017
* Treat longs as ints => pretend they're all 32-bit values and squeeze them intoMisha Brukman2002-12-131-0/+6
| | | | | | 32-bit registers. llvm-svn: 5008
* Added moveReg2Reg() and moveImm2Reg() to accomodate moving data around due toMisha Brukman2002-12-131-0/+36
| | | | | | PHI nodes. llvm-svn: 5001
* Moves now select correct opcode based on the data size.Misha Brukman2002-12-131-3/+18
| | | | llvm-svn: 4981
* Implemented functions for emitting prologues and epilogues;Misha Brukman2002-12-041-1/+54
| | | | | | removed EBP from the list of callee-saved registers (it isn't one). llvm-svn: 4929
* storeReg2RegOffset() and loadRegOffset2Reg() now take the iterator by valueMisha Brukman2002-12-041-2/+2
| | | | | | instead of by reference, since they return the modified iterator. llvm-svn: 4914
* Moved buildReg2RegClassMap() into from X86RegisterInfo to MRegisterInfo, sinceMisha Brukman2002-12-041-12/+0
| | | | | | it is target-independent. llvm-svn: 4911
* Added support for callee- and caller-save registers.Misha Brukman2002-12-031-0/+25
| | | | llvm-svn: 4897
OpenPOWER on IntegriCloud