aboutsummaryrefslogtreecommitdiffstats
path: root/lib/CodeGen/RegAllocLocal.cpp
Commit message (Collapse)AuthorAgeFilesLines
* standardize command line option namesChris Lattner2003-10-241-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9496 91177308-0d34-0410-b5e6-96231b3b80d8
* 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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9298 91177308-0d34-0410-b5e6-96231b3b80d8
* Change MRegisterDesc::AliasSet, TargetInstrDescriptor::ImplicitDefsAlkis Evlogimenos2003-10-081-20/+23
| | | | | | | | | | | | | | | | | | | | | | 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 } git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8960 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix bug: Jello/2003-08-23-RegisterAllocatePhysReg.llChris Lattner2003-08-231-13/+21
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8095 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix bug: Jello/2003-08-15-AllocaAssertion.llChris Lattner2003-08-171-8/+18
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7916 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix typo in commentBrian Gaeke2003-08-151-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7906 91177308-0d34-0410-b5e6-96231b3b80d8
* Factory methods for FunctionPasses now return type FunctionPass *.Brian Gaeke2003-08-131-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7823 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix bugs handling ESP in alloca referencesChris Lattner2003-08-051-3/+6
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7591 91177308-0d34-0410-b5e6-96231b3b80d8
* Revert previous change, and be really anal about what physical registers can do.Chris Lattner2003-08-051-27/+19
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7588 91177308-0d34-0410-b5e6-96231b3b80d8
* Don't bother calculating info unless its needed. May reduce number of stack ↵Chris Lattner2003-08-041-4/+2
| | | | | | slots created. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7584 91177308-0d34-0410-b5e6-96231b3b80d8
* * Fix spelling of 'necessary'Chris Lattner2003-08-041-26/+61
| | | | | | | | * Add a lot more DEBUG output, which is better structured than before * Fix bug: Jello/2003-08-04-PhysRegLiveFailure.llx git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7583 91177308-0d34-0410-b5e6-96231b3b80d8
* Set debug typesChris Lattner2003-08-031-0/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7533 91177308-0d34-0410-b5e6-96231b3b80d8
* Wrap at 80 columnsChris Lattner2003-08-031-1/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7503 91177308-0d34-0410-b5e6-96231b3b80d8
* Move DEBUG to Debug.hChris Lattner2003-08-011-1/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7497 91177308-0d34-0410-b5e6-96231b3b80d8
* (1) Added special register class containing (for now) %fsr.Vikram S. Adve2003-05-271-3/+3
| | | | | | | | | | | | | | 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". git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6341 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix tab infestation!Chris Lattner2003-05-121-45/+45
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6109 91177308-0d34-0410-b5e6-96231b3b80d8
* Debug output should go to cerr, not cout, because that's where bytecode goes.Misha Brukman2003-05-041-2/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6002 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix problems with empty basic blocksChris Lattner2003-01-161-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5326 91177308-0d34-0410-b5e6-96231b3b80d8
* Rename MachineInstrInfo -> TargetInstrInfoChris Lattner2003-01-141-6/+6
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5272 91177308-0d34-0410-b5e6-96231b3b80d8
* * Convert to use LiveVariable analysisChris Lattner2003-01-131-261/+251
| | | | | | | | | | | | * Convert to use PHIElimination pass * Don't spill values which have just been reloaded (big win reducing spills) * Add experimental support for eliminating spills before TwoAddress instructions. It currently is broken so it is #ifdef'd out. * Use new "is terminator" flag on instructions instead of looking for branches and returns explicitly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5219 91177308-0d34-0410-b5e6-96231b3b80d8
* Rename FunctionFrameInfo to MachineFrameInfoChris Lattner2002-12-281-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5200 91177308-0d34-0410-b5e6-96231b3b80d8
* * Convert to be a MachineFunctionPass instanceChris Lattner2002-12-281-196/+64
| | | | | | | | | | | | | | | * Use new FunctionFrameInfo object to manage stack slots instead of doing it directly * Adjust to new MRegisterInfo API * Don't take a TM as a ctor argument * Don't keep track of which callee saved registers are modified * Don't emit prolog/epilog code or spill/restore code for callee saved regs * Use new allocation_order_begin/end iterators to simplify dramatically the logic for picking registers to allocate * Machine PHI nodes can no longer contain constant arguments git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5195 91177308-0d34-0410-b5e6-96231b3b80d8
* Adjust to simpler spill interfaceChris Lattner2002-12-251-35/+64
| | | | | | | Only spill and reload caller saved registers that are actually modified. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5145 91177308-0d34-0410-b5e6-96231b3b80d8
* Substantial fixes to live range handling, fixing several problems, gettingChris Lattner2002-12-241-27/+35
| | | | | | | strtol to not miscompile, and fixing bug: 2002-12-23-LocalRAProblem.llx git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5132 91177308-0d34-0410-b5e6-96231b3b80d8
* * Fix several register aliasing bugsChris Lattner2002-12-181-39/+148
| | | | | | | | * Add a new option to eliminate spilling of registers that are only used within a basic block. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5106 91177308-0d34-0410-b5e6-96231b3b80d8
* Use new reginfo interfaceChris Lattner2002-12-171-31/+7
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5099 91177308-0d34-0410-b5e6-96231b3b80d8
* Add prolog/epilog spills/reloads to countersChris Lattner2002-12-171-4/+7
| | | | | | | Move X86 specific alignment gunk to X86 files git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5096 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix many bugs, regallocator now saves callee-save registers instead of targetChris Lattner2002-12-171-52/+163
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5093 91177308-0d34-0410-b5e6-96231b3b80d8
* * Fix a gross X86 hack that was intended to avoid allocating SP and BPChris Lattner2002-12-161-5/+38
| | | | | | | * Implement register alias set support git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5082 91177308-0d34-0410-b5e6-96231b3b80d8
* Initial checkin of "local" register allocator. Bugs are still present.Chris Lattner2002-12-161-0/+490
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5078 91177308-0d34-0410-b5e6-96231b3b80d8