Commit message (Collapse) | Author | Age | Files | Lines | ||
---|---|---|---|---|---|---|
... | ||||||
* | 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 | |||||
* | Fix problems with empty basic blocks | Chris Lattner | 2003-01-16 | 1 | -1/+1 | |
| | | | | llvm-svn: 5326 | |||||
* | Arg, fix bugs in previous checkin... | Chris Lattner | 2003-01-16 | 1 | -2/+2 | |
| | | | | llvm-svn: 5322 | |||||
* | Add assertion | Chris Lattner | 2003-01-16 | 1 | -2/+5 | |
| | | | | llvm-svn: 5321 | |||||
* | * Insert prolog/epilog code before rewriting indexes | Chris Lattner | 2003-01-15 | 1 | -23/+23 | |
| | | | | | | * Fix calculation of frame offsets when there is an offset. llvm-svn: 5318 | |||||
* | Rename MachineInstrInfo -> TargetInstrInfo | Chris Lattner | 2003-01-14 | 1 | -5/+5 | |
| | | | | llvm-svn: 5272 | |||||
* | Convert to MachineFunctionPass | Chris Lattner | 2003-01-13 | 1 | -7/+6 | |
| | | | | llvm-svn: 5218 | |||||
* | Rename FunctionFrameInfo to MachineFrameInfo | Chris Lattner | 2002-12-28 | 1 | -3/+3 | |
| | | | | llvm-svn: 5200 | |||||
* | Rename MachineFrameInfo to TargetFrameInfo.h | Chris Lattner | 2002-12-28 | 1 | -1/+1 | |
| | | | | llvm-svn: 5199 | |||||
* | Initial checkin of Prolog/Epilog code inserter, which is an important part | Chris Lattner | 2002-12-28 | 1 | -0/+247 | |
of the abstract frame representation llvm-svn: 5198 |