summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen/PrologEpilogInserter.cpp
Commit message (Collapse)AuthorAgeFilesLines
...
* Rename function. It's determining which callee-save registers to save.Evan Cheng2006-09-261-7/+7
| | | | llvm-svn: 30616
* s|llvm/Support/Visibility.h|llvm/Support/Compiler.h|Chris Lattner2006-08-271-1/+1
| | | | llvm-svn: 29911
* Tidy up.Jim Laskey2006-08-251-2/+4
| | | | llvm-svn: 29888
* Consolidate callee saved register information so that it can me used by debugJim Laskey2006-08-251-20/+21
| | | | | | information and exception handling. llvm-svn: 29881
* Shave another 27K off libllvmgcc.dylib with visibility hiddenChris Lattner2006-06-281-1/+2
| | | | llvm-svn: 28973
* Remove dead variableChris Lattner2006-05-121-1/+0
| | | | llvm-svn: 28253
* Foundation for call frame information.Jim Laskey2006-04-071-0/+6
| | | | llvm-svn: 27491
* The stack alignment is now computed dynamically, just verify it is correct.Chris Lattner2006-04-031-1/+2
| | | | llvm-svn: 27380
* Always compute max align.Chris Lattner2005-11-061-6/+5
| | | | llvm-svn: 24227
* Add the necessary support to the ISel to allow targets to codegen the newNate Begeman2005-11-061-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 regclassChris Lattner2005-09-301-4/+3
| | | | llvm-svn: 23559
* Now that we have getCalleeSaveRegClasses() info, use it to pass the registerChris Lattner2005-09-301-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/reloaderChris Lattner2005-09-301-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 fixesChris Lattner2005-08-291-1/+1
| | | | | | Olden/bisort among others. llvm-svn: 23124
* Make this code safe for when loadRegFromStackSlot inserts multiple instructions.Chris Lattner2005-08-261-1/+13
| | | | llvm-svn: 23108
* When inserting callee-save register reloads, make sure to skip over anyChris Lattner2005-05-151-0/+8
| | | | | | | terminator instructions before the 'ret' in case the target has a multi-instruction return sequence. llvm-svn: 22041
* Tolerate instrs with extra argsChris Lattner2005-05-131-1/+1
| | | | llvm-svn: 21982
* Remove trailing whitespaceMisha Brukman2005-04-211-12/+12
| | | | llvm-svn: 21420
* Simplify/speedup the PEI by not having to scan for uses of the callee savedChris Lattner2005-01-231-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 Lattner2005-01-231-6/+5
| | | | llvm-svn: 19787
* Implicitly defined registers can clobber callee saved registers too!Chris Lattner2005-01-221-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 duraidChris Lattner2005-01-191-1/+3
| | | | llvm-svn: 19704
* Put this change back in after testing from Reid proved its innocence. ↵Nate Begeman2004-08-291-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 Begeman2004-08-271-2/+2
| | | | | | x86, which has register sizes in bits. llvm-svn: 16073
* Register sizes are in bits, not bytesNate Begeman2004-08-271-2/+2
| | | | llvm-svn: 16070
* Register info alignment is in bits, frame object alignment is (currently) inChris Lattner2004-08-211-1/+1
| | | | | | bytes. llvm-svn: 15970
* Now that we have per-register spill size/alignment info, remove more usesChris Lattner2004-08-211-4/+5
| | | | | | of getRegClass llvm-svn: 15967
* Stop using CreateStackObject(RegClass*)Chris Lattner2004-08-151-1/+1
| | | | llvm-svn: 15775
* These methods no longer take a TargetRegisterClass* operand.Chris Lattner2004-08-151-6/+3
| | | | llvm-svn: 15774
* Make this compile on gc 3.4.1 (static_cast to non-const type was notAlkis Evlogimenos2004-08-151-2/+2
| | | | | | allowed). llvm-svn: 15766
* Elminiate MachineFunction& argument from eliminateFrameIndexNate Begeman2004-08-141-1/+1
| | | | llvm-svn: 15736
* Split saveCallerSavedRegisters into two methods for clarity, and add comments.Chris Lattner2004-08-121-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 tabsChris Lattner2004-08-071-11/+11
| | | | llvm-svn: 15564
* Death to tabsChris Lattner2004-08-071-14/+14
| | | | llvm-svn: 15563
* Fix fallout from getOffsetOfLocalArea() being negated. Debugging dumps were ↵Chris Lattner2004-06-111-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 supportChris Lattner2004-06-101-9/+33
| | | | | | | | targets whose stack grows up. Patch contributed by Vladimir Prus llvm-svn: 14111
* Adjust to new TargetMachine interfaceChris Lattner2004-06-021-4/+4
| | | | llvm-svn: 13956
* Make dense maps keyed on physical registers smallerusingAlkis Evlogimenos2004-02-151-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 notChris Lattner2004-02-151-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 Lattner2004-02-141-2/+5
| | | | | | this function! llvm-svn: 11449
* Change MachineBasicBlock's vector of MachineInstr pointers into anAlkis Evlogimenos2004-02-121-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 Lattner2004-02-101-5/+5
| | | | llvm-svn: 11283
* Eliminate users of MachineOperand::isPhysicalRegisterChris Lattner2004-02-101-1/+2
| | | | llvm-svn: 11278
* Change interface of MachineOperand as follows:Alkis Evlogimenos2003-12-141-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 Gaeke2003-11-111-0/+5
| | | | llvm-svn: 9903
* 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
* Change MRegisterDesc::AliasSet, TargetInstrDescriptor::ImplicitDefsAlkis Evlogimenos2003-10-081-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 Gaeke2003-08-131-1/+1
| | | | llvm-svn: 7823
* (1) Added special register class containing (for now) %fsr.Vikram S. Adve2003-05-271-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 blocksChris Lattner2003-05-021-1/+1
| | | | llvm-svn: 5982
OpenPOWER on IntegriCloud