Commit message (Collapse) | Author | Age | Files | Lines | ||
---|---|---|---|---|---|---|
... | ||||||
* | Add an option to disable spill fusing in the X86 backend | Chris Lattner | 2004-02-17 | 1 | -0/+5 | |
| | | | | llvm-svn: 11531 | |||||
* | Fix the mneumonics for the mov instructions to have the source and destination | Chris Lattner | 2004-02-17 | 1 | -9/+9 | |
| | | | | | | order in the correct sense!! Arg! llvm-svn: 11530 | |||||
* | GRRR. Move instructions have swapped the order of the r/m operands. | Chris Lattner | 2004-02-17 | 1 | -6/+6 | |
| | | | | llvm-svn: 11528 | |||||
* | Change to match the newer, simpler, interface | Chris Lattner | 2004-02-17 | 1 | -30/+7 | |
| | | | | llvm-svn: 11525 | |||||
* | Add support for folding memory operands into AND and IMUL's | Chris Lattner | 2004-02-17 | 1 | -2/+30 | |
| | | | | llvm-svn: 11523 | |||||
* | Scrunchify code, by adding helpers. No functionality changes. | Chris Lattner | 2004-02-17 | 1 | -56/+45 | |
| | | | | llvm-svn: 11522 | |||||
* | Add API to check and fold memory operands into instructions. | Alkis Evlogimenos | 2004-02-17 | 1 | -0/+81 | |
| | | | | llvm-svn: 11519 | |||||
* | Fix the 'have a framepointer' case, so that the frame pointer always points | Chris Lattner | 2004-02-15 | 1 | -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 this | Chris Lattner | 2004-02-14 | 1 | -10/+12 | |
| | | | | | | function! llvm-svn: 11450 | |||||
* | The prologue/epilogue related method calls have no reason to return a value, | Chris Lattner | 2004-02-14 | 1 | -25/+15 | |
| | | | | | | | | make them return void. This allows us to avoid some costly MBB.size() calls llvm-svn: 11448 | |||||
* | finegrainify namespacification, fix 80col prob | Chris Lattner | 2004-02-14 | 1 | -7/+1 | |
| | | | | llvm-svn: 11445 | |||||
* | Use newly added next() and prior() utility functions. | Alkis Evlogimenos | 2004-02-14 | 1 | -1/+2 | |
| | | | | llvm-svn: 11430 | |||||
* | Change interface so that we can add to the end of a basic block | Alkis Evlogimenos | 2004-02-12 | 1 | -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 an | Alkis Evlogimenos | 2004-02-12 | 1 | -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 duplicate | Alkis Evlogimenos | 2004-02-04 | 1 | -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 Gaeke | 2003-11-11 | 1 | -0/+8 | |
| | | | | llvm-svn: 9903 | |||||
* | Change all machine basic block modifier functions in MRegisterInfo to | Alkis Evlogimenos | 2003-11-04 | 1 | -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 Criswell | 2003-10-20 | 1 | -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 access | Chris Lattner | 2003-10-14 | 1 | -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 on | Chris Lattner | 2003-10-14 | 1 | -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 Brukman | 2003-08-18 | 1 | -1/+1 | |
| | | | | llvm-svn: 7944 | |||||
* | Rename register classes to be upper case to make it obvious that they are X86 | Chris Lattner | 2003-08-04 | 1 | -4/+4 | |
| | | | | | | specific in the tree patterns llvm-svn: 7578 | |||||
* | Switch over to TableGen generated register file description | Chris Lattner | 2003-08-03 | 1 | -109/+8 | |
| | | | | llvm-svn: 7511 | |||||
* | Move "register flags" definition the type of registers to be fully fledged | Chris Lattner | 2003-07-29 | 1 | -0/+1 | |
| | | | | | | value types llvm-svn: 7377 | |||||
* | Rename -no-* to -disable-* | Chris Lattner | 2003-02-26 | 1 | -1/+1 | |
| | | | | llvm-svn: 5642 | |||||
* | Implement code to keep the stack pointer aligned to an 8 byte boundary. | Chris Lattner | 2003-01-16 | 1 | -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 stack | Chris Lattner | 2003-01-15 | 1 | -6/+8 | |
| | | | | llvm-svn: 5319 | |||||
* | * Move frame and constant pool indexes to first argument of memory reference | Chris Lattner | 2003-01-13 | 1 | -11/+12 | |
| | | | | | | | so we can put an offset in there as well... * Fix long/ulong stuff llvm-svn: 5231 | |||||
* | Rename FunctionFrameInfo to MachineFrameInfo | Chris Lattner | 2002-12-28 | 1 | -11/+11 | |
| | | | | llvm-svn: 5201 | |||||
* | *** Implement frame pointer elimination on X86! | Chris Lattner | 2002-12-28 | 1 | -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 interface | Chris Lattner | 2002-12-25 | 1 | -49/+43 | |
| | | | | llvm-svn: 5148 | |||||
* | Fix compilation on gcc 2.96 | Chris Lattner | 2002-12-23 | 1 | -10/+10 | |
| | | | | llvm-svn: 5116 | |||||
* | Fix warning | Chris Lattner | 2002-12-20 | 1 | -1/+1 | |
| | | | | llvm-svn: 5109 | |||||
* | Update to use new interface for register info | Chris Lattner | 2002-12-17 | 1 | -19/+0 | |
| | | | | llvm-svn: 5098 | |||||
* | Round number of bytes allocated on the stack up to a multiple of 4 so that the | Chris Lattner | 2002-12-17 | 1 | -2/+5 | |
| | | | | | | stack remains aligned llvm-svn: 5095 | |||||
* | Register allocator is responsible for spilling callee saved regs | Chris Lattner | 2002-12-17 | 1 | -19/+3 | |
| | | | | llvm-svn: 5092 | |||||
* | Fix prolog/epilog in the presence of alloca | Chris Lattner | 2002-12-16 | 1 | -11/+11 | |
| | | | | llvm-svn: 5087 | |||||
* | Finish implementation of alias list impl | Chris Lattner | 2002-12-16 | 1 | -1/+8 | |
| | | | | llvm-svn: 5083 | |||||
* | Try #2 to get alias set stuff to work | Chris Lattner | 2002-12-16 | 1 | -1/+1 | |
| | | | | llvm-svn: 5077 | |||||
* | Add info about register file aliasing | Chris Lattner | 2002-12-16 | 1 | -1/+1 | |
| | | | | llvm-svn: 5074 | |||||
* | Correct the setting of Def flags on registers that are modified! | Chris Lattner | 2002-12-15 | 1 | -11/+9 | |
| | | | | llvm-svn: 5065 | |||||
* | Simplify interfaces used by regalloc to insert code | Chris Lattner | 2002-12-15 | 1 | -33/+26 | |
| | | | | llvm-svn: 5052 | |||||
* | Cleaned up the code: factored out switch/case into a separate function, put | Misha Brukman | 2002-12-13 | 1 | -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 into | Misha Brukman | 2002-12-13 | 1 | -0/+6 | |
| | | | | | | 32-bit registers. llvm-svn: 5008 | |||||
* | Added moveReg2Reg() and moveImm2Reg() to accomodate moving data around due to | Misha Brukman | 2002-12-13 | 1 | -0/+36 | |
| | | | | | | PHI nodes. llvm-svn: 5001 | |||||
* | Moves now select correct opcode based on the data size. | Misha Brukman | 2002-12-13 | 1 | -3/+18 | |
| | | | | llvm-svn: 4981 | |||||
* | Implemented functions for emitting prologues and epilogues; | Misha Brukman | 2002-12-04 | 1 | -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 value | Misha Brukman | 2002-12-04 | 1 | -2/+2 | |
| | | | | | | instead of by reference, since they return the modified iterator. llvm-svn: 4914 | |||||
* | Moved buildReg2RegClassMap() into from X86RegisterInfo to MRegisterInfo, since | Misha Brukman | 2002-12-04 | 1 | -12/+0 | |
| | | | | | | it is target-independent. llvm-svn: 4911 | |||||
* | Added support for callee- and caller-save registers. | Misha Brukman | 2002-12-03 | 1 | -0/+25 | |
| | | | | llvm-svn: 4897 |