Commit message (Collapse) | Author | Age | Files | Lines | ||
---|---|---|---|---|---|---|
... | ||||||
* | Rename function. It's determining which callee-save registers to save. | Evan Cheng | 2006-09-26 | 1 | -7/+7 | |
| | | | | llvm-svn: 30616 | |||||
* | s|llvm/Support/Visibility.h|llvm/Support/Compiler.h| | Chris Lattner | 2006-08-27 | 1 | -1/+1 | |
| | | | | llvm-svn: 29911 | |||||
* | Tidy up. | Jim Laskey | 2006-08-25 | 1 | -2/+4 | |
| | | | | llvm-svn: 29888 | |||||
* | Consolidate callee saved register information so that it can me used by debug | Jim Laskey | 2006-08-25 | 1 | -20/+21 | |
| | | | | | | information and exception handling. llvm-svn: 29881 | |||||
* | Shave another 27K off libllvmgcc.dylib with visibility hidden | Chris Lattner | 2006-06-28 | 1 | -1/+2 | |
| | | | | llvm-svn: 28973 | |||||
* | Remove dead variable | Chris Lattner | 2006-05-12 | 1 | -1/+0 | |
| | | | | llvm-svn: 28253 | |||||
* | Foundation for call frame information. | Jim Laskey | 2006-04-07 | 1 | -0/+6 | |
| | | | | llvm-svn: 27491 | |||||
* | The stack alignment is now computed dynamically, just verify it is correct. | Chris Lattner | 2006-04-03 | 1 | -1/+2 | |
| | | | | llvm-svn: 27380 | |||||
* | Always compute max align. | Chris Lattner | 2005-11-06 | 1 | -6/+5 | |
| | | | | llvm-svn: 24227 | |||||
* | Add the necessary support to the ISel to allow targets to codegen the new | Nate Begeman | 2005-11-06 | 1 | -3/+11 | |
| | | | | | | | | alignment information appropriately. Includes code for PowerPC to support fixed-size allocas with alignment larger than the stack. Support for arbitrarily aligned dynamic allocas coming soon. llvm-svn: 24224 | |||||
* | now that we have a reg class to spill with, get this info from the regclass | Chris Lattner | 2005-09-30 | 1 | -4/+3 | |
| | | | | llvm-svn: 23559 | |||||
* | Now that we have getCalleeSaveRegClasses() info, use it to pass the register | Chris Lattner | 2005-09-30 | 1 | -8/+11 | |
| | | | | | | class into the spill/reload methods. Targets can now rely on that argument. llvm-svn: 23556 | |||||
* | Change this code ot pass register classes into the stack slot spiller/reloader | Chris Lattner | 2005-09-30 | 1 | -2/+4 | |
| | | | | | | | code. PrologEpilogInserter hasn't been updated yet though, so targets cannot use this info. llvm-svn: 23536 | |||||
* | Fix a bug in my previous patch that was using the wrong iterator. This fixes | Chris Lattner | 2005-08-29 | 1 | -1/+1 | |
| | | | | | | Olden/bisort among others. llvm-svn: 23124 | |||||
* | Make this code safe for when loadRegFromStackSlot inserts multiple instructions. | Chris Lattner | 2005-08-26 | 1 | -1/+13 | |
| | | | | llvm-svn: 23108 | |||||
* | When inserting callee-save register reloads, make sure to skip over any | Chris Lattner | 2005-05-15 | 1 | -0/+8 | |
| | | | | | | | terminator instructions before the 'ret' in case the target has a multi-instruction return sequence. llvm-svn: 22041 | |||||
* | Tolerate instrs with extra args | Chris Lattner | 2005-05-13 | 1 | -1/+1 | |
| | | | | llvm-svn: 21982 | |||||
* | Remove trailing whitespace | Misha Brukman | 2005-04-21 | 1 | -12/+12 | |
| | | | | llvm-svn: 21420 | |||||
* | Simplify/speedup the PEI by not having to scan for uses of the callee saved | Chris Lattner | 2005-01-23 | 1 | -19/+5 | |
| | | | | | | | registers. This information is computed directly by the register allocator now. llvm-svn: 19795 | |||||
* | Speed this up a bit by making ModifiedRegs a vector<char> not vector<bool> | Chris Lattner | 2005-01-23 | 1 | -6/+5 | |
| | | | | llvm-svn: 19787 | |||||
* | Implicitly defined registers can clobber callee saved registers too! | Chris Lattner | 2005-01-22 | 1 | -0/+6 | |
| | | | | | | This fixes the return-address-not-being-saved problem in the Alpha backend. llvm-svn: 19741 | |||||
* | Add an assertion that would have made more sense to duraid | Chris Lattner | 2005-01-19 | 1 | -1/+3 | |
| | | | | llvm-svn: 19704 | |||||
* | Put this change back in after testing from Reid proved its innocence. ↵ | Nate Begeman | 2004-08-29 | 1 | -2/+2 | |
| | | | | | | getSpillSize now returns value in bits llvm-svn: 16102 | |||||
* | Back out change to divide getSpillSize by 8 until I figure out why it breaks ↵ | Nate Begeman | 2004-08-27 | 1 | -2/+2 | |
| | | | | | | x86, which has register sizes in bits. llvm-svn: 16073 | |||||
* | Register sizes are in bits, not bytes | Nate Begeman | 2004-08-27 | 1 | -2/+2 | |
| | | | | llvm-svn: 16070 | |||||
* | Register info alignment is in bits, frame object alignment is (currently) in | Chris Lattner | 2004-08-21 | 1 | -1/+1 | |
| | | | | | | bytes. llvm-svn: 15970 | |||||
* | Now that we have per-register spill size/alignment info, remove more uses | Chris Lattner | 2004-08-21 | 1 | -4/+5 | |
| | | | | | | of getRegClass llvm-svn: 15967 | |||||
* | Stop using CreateStackObject(RegClass*) | Chris Lattner | 2004-08-15 | 1 | -1/+1 | |
| | | | | llvm-svn: 15775 | |||||
* | These methods no longer take a TargetRegisterClass* operand. | Chris Lattner | 2004-08-15 | 1 | -6/+3 | |
| | | | | llvm-svn: 15774 | |||||
* | Make this compile on gc 3.4.1 (static_cast to non-const type was not | Alkis Evlogimenos | 2004-08-15 | 1 | -2/+2 | |
| | | | | | | allowed). llvm-svn: 15766 | |||||
* | Elminiate MachineFunction& argument from eliminateFrameIndex | Nate Begeman | 2004-08-14 | 1 | -1/+1 | |
| | | | | llvm-svn: 15736 | |||||
* | Split saveCallerSavedRegisters into two methods for clarity, and add comments. | Chris Lattner | 2004-08-12 | 1 | -9/+52 | |
| | | | | | | | | Add support for targets that must spill certain physregs at certain locations. Patch contributed by Nate Begeman, slightly hacked by me. llvm-svn: 15701 | |||||
* | Ok get rid of the REST of the tabs | Chris Lattner | 2004-08-07 | 1 | -11/+11 | |
| | | | | llvm-svn: 15564 | |||||
* | Death to tabs | Chris Lattner | 2004-08-07 | 1 | -14/+14 | |
| | | | | llvm-svn: 15563 | |||||
* | Fix fallout from getOffsetOfLocalArea() being negated. Debugging dumps were ↵ | Chris Lattner | 2004-06-11 | 1 | -2/+2 | |
| | | | | | | | | | being printed incorrectly, and we were reserving 8 extra bytes of stack space for functions on X86. llvm-svn: 14152 | |||||
* | Fix the prolog epilog code inserter to match the documentation and support | Chris Lattner | 2004-06-10 | 1 | -9/+33 | |
| | | | | | | | | targets whose stack grows up. Patch contributed by Vladimir Prus llvm-svn: 14111 | |||||
* | Adjust to new TargetMachine interface | Chris Lattner | 2004-06-02 | 1 | -4/+4 | |
| | | | | llvm-svn: 13956 | |||||
* | Make dense maps keyed on physical registers smallerusing | Alkis Evlogimenos | 2004-02-15 | 1 | -1/+1 | |
| | | | | | | | | | | MRegisterInfo::getNumRegs() instead of MRegisterInfo::FirstVirtualRegister. Also use MRegisterInfo::is{Physical,Virtual}Register where appropriate. llvm-svn: 11477 | |||||
* | Allow for fixed objects to reside in the local area, and if they don't to not | Chris Lattner | 2004-02-15 | 1 | -6/+13 | |
| | | | | | | clobber them by allocating other objects in the same space! llvm-svn: 11454 | |||||
* | There is no reason to align the stack pointer if there are no callees of ↵ | Chris Lattner | 2004-02-14 | 1 | -2/+5 | |
| | | | | | | this function! llvm-svn: 11449 | |||||
* | Change MachineBasicBlock's vector of MachineInstr pointers into an | Alkis Evlogimenos | 2004-02-12 | 1 | -12/+13 | |
| | | | | | | | | | 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 | |||||
* | Do not use MachineOperand::isVirtualRegister either! | Chris Lattner | 2004-02-10 | 1 | -5/+5 | |
| | | | | llvm-svn: 11283 | |||||
* | Eliminate users of MachineOperand::isPhysicalRegister | Chris Lattner | 2004-02-10 | 1 | -1/+2 | |
| | | | | llvm-svn: 11278 | |||||
* | Change interface of MachineOperand as follows: | Alkis Evlogimenos | 2003-12-14 | 1 | -2/+1 | |
| | | | | | | | | | | | | | | | a) remove opIsUse(), opIsDefOnly(), opIsDefAndUse() b) add isUse(), isDef() c) rename opHiBits32() to isHiBits32(), opLoBits32() to isLoBits32(), opHiBits64() to isHiBits64(), opLoBits64() to isLoBits64(). This results to much more readable code, for example compare "op.opIsDef() || op.opIsDefAndUse()" to "op.isDef()" a pattern used very often in the code. llvm-svn: 10461 | |||||
* | Put all LLVM code into the llvm namespace, as per bug 109. | Brian Gaeke | 2003-11-11 | 1 | -0/+5 | |
| | | | | llvm-svn: 9903 | |||||
* | 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 | |||||
* | Change MRegisterDesc::AliasSet, TargetInstrDescriptor::ImplicitDefs | Alkis Evlogimenos | 2003-10-08 | 1 | -3/+6 | |
| | | | | | | | | | | | | | | | | | | | | | and TargetInstrDescriptor::ImplicitUses to always point to a null terminated array and never be null. So there is no need to check for pointer validity when iterating over those sets. Code that looked like: if (const unsigned* AS = TID.ImplicitDefs) { for (int i = 0; AS[i]; ++i) { // use AS[i] } } was changed to: for (const unsigned* AS = TID.ImplicitDefs; *AS; ++AS) { // use *AS } llvm-svn: 8960 | |||||
* | Factory methods for FunctionPasses now return type FunctionPass *. | Brian Gaeke | 2003-08-13 | 1 | -1/+1 | |
| | | | | llvm-svn: 7823 | |||||
* | (1) Added special register class containing (for now) %fsr. | Vikram S. Adve | 2003-05-27 | 1 | -1/+2 | |
| | | | | | | | | | | | | | Fixed spilling of %fcc[0-3] which are part of %fsr. (2) Moved some machine-independent reg-class code to class TargetRegInfo from SparcReg{Class,}Info. (3) Renamed MachienOperand::opIsDef to MachineOperand::opIsDefOnly() and related functions and flags. Fixed several bugs where only "isDef" was being checked, not "isDefAndUse". llvm-svn: 6341 | |||||
* | Fix a bug which occurred with empty basic blocks | Chris Lattner | 2003-05-02 | 1 | -1/+1 | |
| | | | | llvm-svn: 5982 |