aboutsummaryrefslogtreecommitdiffstats
path: root/lib/CodeGen
Commit message (Collapse)AuthorAgeFilesLines
* Add a spiller option to llc. A simple spiller will come soon. When we get ↵Alkis Evlogimenos2004-03-014-46/+74
| | | | | | CFG in the machine code represenation a global spiller will also be possible. Also document the linear scan register allocator but mark it as experimental for now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12062 91177308-0d34-0410-b5e6-96231b3b80d8
* Add the long awaited memory operand folding support for linear scanAlkis Evlogimenos2004-03-015-29/+87
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12058 91177308-0d34-0410-b5e6-96231b3b80d8
* TargetCacheInfo has been removed; its only uses were to propagate a constantBrian Gaeke2004-03-011-2/+1
| | | | | | | | | | (16) into certain areas of the SPARC V9 back-end. I'm fairly sure the US IIIi's dcache has 32-byte lines, so I'm not sure where the 16 came from. However, in the interest of not breaking things any more than they already are, I'm going to leave the constant alone. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12043 91177308-0d34-0410-b5e6-96231b3b80d8
* Adding new Modulo Scheduling graph files.Tanya Lattner2004-03-013-0/+769
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12031 91177308-0d34-0410-b5e6-96231b3b80d8
* Removing old graph files with new graph files that I wrote. Updated ↵Tanya Lattner2004-03-013-276/+682
| | | | | | ModuloScheduling pass, but still in progress. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12030 91177308-0d34-0410-b5e6-96231b3b80d8
* Add an assertChris Lattner2004-02-291-1/+4
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12010 91177308-0d34-0410-b5e6-96231b3b80d8
* Add back #include I messed upChris Lattner2004-02-291-0/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12009 91177308-0d34-0410-b5e6-96231b3b80d8
* Urg, forgot to check this in.Chris Lattner2004-02-291-1/+0
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12007 91177308-0d34-0410-b5e6-96231b3b80d8
* Move the private MachineInstrAnnot.h into a private directory.Chris Lattner2004-02-291-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12003 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove use of an ugly headerChris Lattner2004-02-291-1/+0
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12002 91177308-0d34-0410-b5e6-96231b3b80d8
* Move methods out of .h fileChris Lattner2004-02-291-0/+9
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12001 91177308-0d34-0410-b5e6-96231b3b80d8
* Eliminate the distinction between "real" and "unreal" instructionsChris Lattner2004-02-291-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11986 91177308-0d34-0410-b5e6-96231b3b80d8
* int64_t -> intChris Lattner2004-02-291-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11977 91177308-0d34-0410-b5e6-96231b3b80d8
* Rename member function to be consistent with the rest.Alkis Evlogimenos2004-02-272-4/+4
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11898 91177308-0d34-0410-b5e6-96231b3b80d8
* Make spiller push stores right after the definition of a register soAlkis Evlogimenos2004-02-271-8/+33
| | | | | | | that they are as far away from the loads as possible. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11895 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix crash caused by passing register 0 toAlkis Evlogimenos2004-02-271-1/+1
| | | | | | | MRegisterInfo::isPhysicalRegister(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11894 91177308-0d34-0410-b5e6-96231b3b80d8
* Clear maps right after basic block is processed.Alkis Evlogimenos2004-02-261-4/+4
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11892 91177308-0d34-0410-b5e6-96231b3b80d8
* Uncomment assertions that register# != 0 on calls toAlkis Evlogimenos2004-02-263-17/+23
| | | | | | | | MRegisterInfo::is{Physical,Virtual}Register. Apply appropriate fixes to relevant files. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11882 91177308-0d34-0410-b5e6-96231b3b80d8
* No need to clear the map here, it will always be emptyChris Lattner2004-02-261-1/+0
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11868 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix bugs found with recent addition of assertions inAlkis Evlogimenos2004-02-251-2/+2
| | | | | | | MRegisterInfo::is{Physical,Virtual}Register. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11849 91177308-0d34-0410-b5e6-96231b3b80d8
* Great sparc renaming fallout IV: Sparc --> SparcV9.Brian Gaeke2004-02-252-2/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11844 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove asssert since it is breaking cases that it shouldn't.Alkis Evlogimenos2004-02-251-1/+0
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11841 91177308-0d34-0410-b5e6-96231b3b80d8
* Add DenseMap template and actually use it for for mapping virtual regsAlkis Evlogimenos2004-02-253-36/+29
| | | | | | | to objects. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11840 91177308-0d34-0410-b5e6-96231b3b80d8
* Add an assertionChris Lattner2004-02-251-0/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11830 91177308-0d34-0410-b5e6-96231b3b80d8
* FunctionLiveVarInfo.h moved: include/llvm/CodeGen -> lib/Target/Sparc/LiveVarBrian Gaeke2004-02-242-2/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11804 91177308-0d34-0410-b5e6-96231b3b80d8
* Move machine code rewriter and spiller outside the registerAlkis Evlogimenos2004-02-243-143/+176
| | | | | | | | | | | | allocator. The implementation is completely rewritten and now employs several optimizations not exercised before. For example for 164.gzip we have 997 loads and 699 stores vs the 1221 loads and 880 stores we have before. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11798 91177308-0d34-0410-b5e6-96231b3b80d8
* Add predicates for checking if a virtual register has a physicalAlkis Evlogimenos2004-02-241-0/+8
| | | | | | | register mapping or a stack slot mapping. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11795 91177308-0d34-0410-b5e6-96231b3b80d8
* Make enum private as it is an implementation detail.Alkis Evlogimenos2004-02-231-5/+5
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11782 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove '4Virt' from member function names as it is obvious.Alkis Evlogimenos2004-02-232-15/+15
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11781 91177308-0d34-0410-b5e6-96231b3b80d8
* Refactor VirtRegMap out of RegAllocLinearScan as the first part of bugAlkis Evlogimenos2004-02-233-136/+195
| | | | | | | 251 (providing a generic machine code rewriter/spiller). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11780 91177308-0d34-0410-b5e6-96231b3b80d8
* Add number of spilled registers statistic.Alkis Evlogimenos2004-02-231-0/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11759 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix bugs in finegrainificationChris Lattner2004-02-231-1/+3
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11758 91177308-0d34-0410-b5e6-96231b3b80d8
* Finegrainify namespacificationChris Lattner2004-02-234-22/+12
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11757 91177308-0d34-0410-b5e6-96231b3b80d8
* Use MachineBasicBlock::getParent().Alkis Evlogimenos2004-02-231-2/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11756 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove implementation of default constructor as it is useless now.Alkis Evlogimenos2004-02-231-5/+0
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11755 91177308-0d34-0410-b5e6-96231b3b80d8
* Refactor rewinding code for finding the first terminator of a basicAlkis Evlogimenos2004-02-233-21/+14
| | | | | | | | | | | | | block into MachineBasicBlock::getFirstTerminator(). This also fixes a bug in the implementation of the above in both RegAllocLocal and InstrSched, where instructions where added after the terminator if the basic block's only instruction was a terminator (it shouldn't matter for RegAllocLocal since this case never occurs in practice). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11748 91177308-0d34-0410-b5e6-96231b3b80d8
* Improved PhysRegTracker interface. RegAlloc lazily allocates the register ↵Alkis Evlogimenos2004-02-232-23/+21
| | | | | | tracker using a std::auto_ptr git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11738 91177308-0d34-0410-b5e6-96231b3b80d8
* Simplify iterator usage now that we have next(). Also don't pass iterators ↵Alkis Evlogimenos2004-02-231-11/+7
| | | | | | by reference now that MachineInstr* are in an ilist git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11732 91177308-0d34-0410-b5e6-96231b3b80d8
* Some code cleanups from ChrisAlkis Evlogimenos2004-02-231-9/+4
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11724 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix comments in PhysRegTracker and rename isPhysRegAvail to isRegAvail to be ↵Alkis Evlogimenos2004-02-232-5/+6
| | | | | | consistent with the other two git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11723 91177308-0d34-0410-b5e6-96231b3b80d8
* Move LiveIntervals.h up to be the first included headerAlkis Evlogimenos2004-02-231-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11721 91177308-0d34-0410-b5e6-96231b3b80d8
* Pull PhysRegTracker out of RegAllocLinearScan as it can be used by other ↵Alkis Evlogimenos2004-02-232-59/+92
| | | | | | allocators as well git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11720 91177308-0d34-0410-b5e6-96231b3b80d8
* Move LiveIntervals.h to lib/CodeGen since it shouldn't be exposed to other ↵Alkis Evlogimenos2004-02-232-2/+4
| | | | | | parts of the compiler git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11719 91177308-0d34-0410-b5e6-96231b3b80d8
* Another bug fix for empty MBB'sChris Lattner2004-02-221-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11716 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix a bug where we were implicitly assuming that there would be at leastChris Lattner2004-02-221-2/+2
| | | | | | | one terminator instruction in each basic block. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11714 91177308-0d34-0410-b5e6-96231b3b80d8
* Print basic block boundaries in machine instruction debug output.Alkis Evlogimenos2004-02-222-4/+8
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11704 91177308-0d34-0410-b5e6-96231b3b80d8
* Abstract merging of ranges away from number of slots per instruction.Alkis Evlogimenos2004-02-222-4/+11
| | | | | | | | Also make it less aggressive as the current implementation breaks in some cases. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11696 91177308-0d34-0410-b5e6-96231b3b80d8
* Make 'fold' statistic's description the same in both allocators.Alkis Evlogimenos2004-02-212-3/+4
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11687 91177308-0d34-0410-b5e6-96231b3b80d8
* Some more statistics improvements.Alkis Evlogimenos2004-02-201-11/+17
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11676 91177308-0d34-0410-b5e6-96231b3b80d8
* Disambiguate statistic descriptions.Alkis Evlogimenos2004-02-201-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11675 91177308-0d34-0410-b5e6-96231b3b80d8