summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen/PrologEpilogInserter.cpp
Commit message (Collapse)AuthorAgeFilesLines
...
* Make requiresRegisterScavenging determination on a per MachineFunction basis.Evan Cheng2007-02-281-1/+1
| | | | llvm-svn: 34711
* MRegisterInfo disowns RegScavenger. It's immutable.Evan Cheng2007-02-281-2/+2
| | | | llvm-svn: 34706
* Let MRegisterInfo now owns RegScavenger.Evan Cheng2007-02-271-3/+3
| | | | llvm-svn: 34691
* forward() should not increment internal iterator. Its client may insert ↵Evan Cheng2007-02-271-1/+1
| | | | | | instruction between now and next forward() call. llvm-svn: 34649
* First potential client of register scavenger.Evan Cheng2007-02-231-4/+13
| | | | llvm-svn: 34516
* Change the MachineDebugInfo to MachineModuleInfo to better reflect usageJim Laskey2007-01-261-3/+3
| | | | | | for debugging and exception handling. llvm-svn: 33550
* Added a MRegisterInfo hook that tells PEI the target is responsible forEvan Cheng2007-01-251-2/+3
| | | | | | rounding the stack frame to a multiple of stack alignment. llvm-svn: 33504
* PEI is now responsible for adding MaxCallFrameSize to frame size and align ↵Evan Cheng2007-01-231-1/+16
| | | | | | the stack. Each target can further adjust the frame size if necessary. llvm-svn: 33460
* Remove an unused variable.Evan Cheng2007-01-201-1/+0
| | | | llvm-svn: 33396
* We not align the final stack slot but instead let the target do so in ↵Evan Cheng2007-01-201-7/+0
| | | | | | emitPrologue(). Each target can make adjustments to the stack frame and re-align the stack as it deem appropriate. Do not align it twice which can end up wasting stack space. llvm-svn: 33387
* - Fixing naming inconsistency: calleesave -> calleesaved.Evan Cheng2007-01-021-24/+30
| | | | | | - Make use of spillCalleeSavedRegisters() and restoreCalleeSavedRegisters(). llvm-svn: 32822
* Initialize {Min|Max}CSFrameIndex properly.Evan Cheng2006-12-071-2/+4
| | | | llvm-svn: 32299
* TargetRegisterClass specifies the desired spill alignment. However, it ↵Evan Cheng2006-09-281-1/+6
| | | | | | cannot be honored if stack alignment is smaller. llvm-svn: 30648
* PEI now place callee save spills closest to the address pointed to by theEvan Cheng2006-09-281-11/+67
| | | | | | | incoming stack. This allows X86 backend to use push / pop in epilogue / prologue. llvm-svn: 30636
* 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
OpenPOWER on IntegriCloud