Commit message (Collapse) | Author | Age | Files | Lines | ||
---|---|---|---|---|---|---|
... | ||||||
* | Exit with nice warnings when register allocator run out of registers. | Evan Cheng | 2009-01-29 | 1 | -0/+10 | |
| | | | | llvm-svn: 63267 | |||||
* | Fix comment about removeRange. | Evan Cheng | 2009-01-29 | 1 | -1/+1 | |
| | | | | llvm-svn: 63255 | |||||
* | Next round of earlyclobber handling. Approach the | Dale Johannesen | 2008-09-24 | 1 | -4/+0 | |
| | | | | | | | | | | RA problem by expanding the live interval of an earlyclobber def back one slot. Remove overlap-earlyclobber throughout. Remove earlyclobber bits and their handling from live internals. llvm-svn: 56539 | |||||
* | Remove AsmThatEarlyClobber etc. from LiveIntervalAnalysis | Dale Johannesen | 2008-09-19 | 1 | -0/+4 | |
| | | | | | | | and redo as linked list walk. Logic moved into RA. Per review feedback. llvm-svn: 56326 | |||||
* | Use empty() instead of begin() == end(). | Dan Gohman | 2008-08-14 | 1 | -1/+1 | |
| | | | | llvm-svn: 54780 | |||||
* | Instead of adding an isSS field to LiveInterval to denote stack slot. Use ↵ | Evan Cheng | 2008-06-23 | 1 | -2/+2 | |
| | | | | | | top bit of 'reg' instead. If the top bit is set, than the LiveInterval represents a stack slot live interval. llvm-svn: 52639 | |||||
* | Add a stack slot coloring pass. Not yet enabled. | Evan Cheng | 2008-06-04 | 1 | -2/+18 | |
| | | | | llvm-svn: 51934 | |||||
* | Rename PrintableName to Name. | Bill Wendling | 2008-02-26 | 1 | -1/+1 | |
| | | | | llvm-svn: 47629 | |||||
* | Change "Name" to "AsmName" in the target register info. Gee, a refactoring tool | Bill Wendling | 2008-02-26 | 1 | -1/+1 | |
| | | | | | | would have been a Godsend here! llvm-svn: 47625 | |||||
* | Update gcc 4.3 warnings fix patch with recent head changes | Anton Korobeynikov | 2008-02-20 | 1 | -1/+2 | |
| | | | | llvm-svn: 47368 | |||||
* | - Removing the infamous r2rMap_ and rep() method. Now the coalescer will update | Evan Cheng | 2008-02-15 | 1 | -0/+21 | |
| | | | | | | | register defs and uses after each successful coalescing. - Also removed a number of hacks and fixed some subtle kill information bugs. llvm-svn: 47167 | |||||
* | - Added removeValNo() to remove all live ranges of a particular value#. | Evan Cheng | 2008-02-13 | 1 | -7/+61 | |
| | | | | | | - removeRange() can now update value# information. llvm-svn: 47044 | |||||
* | Rename MRegisterInfo to TargetRegisterInfo. | Dan Gohman | 2008-02-10 | 1 | -4/+5 | |
| | | | | llvm-svn: 46930 | |||||
* | Fixed a bug in MergeValueInAsValue() pointed out by David Greene. Replace ↵ | Evan Cheng | 2008-01-30 | 1 | -3/+3 | |
| | | | | | | val# with previous liverange's. llvm-svn: 46579 | |||||
* | remove dead #include | Chris Lattner | 2008-01-14 | 1 | -1/+0 | |
| | | | | llvm-svn: 45971 | |||||
* | Remove attribution from file headers, per discussion on llvmdev. | Chris Lattner | 2007-12-29 | 1 | -2/+2 | |
| | | | | llvm-svn: 45418 | |||||
* | Replace the odd kill# hack with something less fragile. | Evan Cheng | 2007-11-29 | 1 | -1/+3 | |
| | | | | llvm-svn: 44434 | |||||
* | Kill info update bug. | Evan Cheng | 2007-11-29 | 1 | -0/+3 | |
| | | | | llvm-svn: 44427 | |||||
* | Fix MergeValueInAsValue(). It allows overlapping live ranges but should replace | Evan Cheng | 2007-10-17 | 1 | -7/+57 | |
| | | | | | | their value numbers with the specified value number. llvm-svn: 43062 | |||||
* | When coalescing an EXTRACT_SUBREG and the dst register is a physical register, | Evan Cheng | 2007-10-14 | 1 | -1/+1 | |
| | | | | | | | | the source register will be coalesced to the super register of the LHS. Properly merge in the live ranges of the resulting coalesced interval that were part of the original source interval to the live interval of the super-register. llvm-svn: 42961 | |||||
* | EXTRACT_SUBREG coalescing support. The coalescer now treats EXTRACT_SUBREG like | Evan Cheng | 2007-10-12 | 1 | -0/+37 | |
| | | | | | | | | | (almost) a register copy. However, it always coalesced to the register of the RHS (the super-register). All uses of the result of a EXTRACT_SUBREG are sub- register uses which adds subtle complications to load folding, spiller rewrite, etc. llvm-svn: 42899 | |||||
* | Constify to catch bugs. | David Greene | 2007-09-06 | 1 | -2/+2 | |
| | | | | llvm-svn: 41751 | |||||
* | Fix a memory leak. | Evan Cheng | 2007-09-06 | 1 | -0/+2 | |
| | | | | llvm-svn: 41739 | |||||
* | Use pool allocator for all the VNInfo's to improve memory access locality. ↵ | Evan Cheng | 2007-09-05 | 1 | -36/+18 | |
| | | | | | | This reduces coalescing time on siod Mac OS X PPC by 35%. Also remove the back ptr from VNInfo to LiveInterval and other tweaks. llvm-svn: 41729 | |||||
* | More tweaks to improve compile time. | Evan Cheng | 2007-09-01 | 1 | -22/+35 | |
| | | | | llvm-svn: 41669 | |||||
* | Remove an unnecessary element, saving 4 bytes per LiveInterval. | Evan Cheng | 2007-08-31 | 1 | -3/+0 | |
| | | | | llvm-svn: 41641 | |||||
* | Change LiveRange so it keeps a pointer to the VNInfo rather than an index. | Evan Cheng | 2007-08-29 | 1 | -52/+78 | |
| | | | | | | | Changes related modules so VNInfo's are not copied. This decrease copy coalescing time by 45% and overall compilation time by 10% on siod. llvm-svn: 41579 | |||||
* | Recover most of the compile time regression due to recent live interval changes. | Evan Cheng | 2007-08-28 | 1 | -27/+19 | |
| | | | | | | | | 1. Eliminate the costly live interval "swapping". 2. Change ValueNumberInfo container from SmallVector to std::vector. The former performs slowly when the vector size is very large. llvm-svn: 41536 | |||||
* | Kill info update bugs. | Evan Cheng | 2007-08-14 | 1 | -1/+2 | |
| | | | | llvm-svn: 41064 | |||||
* | Kill info update bugs. | Evan Cheng | 2007-08-13 | 1 | -5/+2 | |
| | | | | llvm-svn: 41043 | |||||
* | Code to maintain kill information during register coalescing. | Evan Cheng | 2007-08-11 | 1 | -11/+32 | |
| | | | | llvm-svn: 41016 | |||||
* | Clean up and bug fix. | Evan Cheng | 2007-08-08 | 1 | -1/+1 | |
| | | | | llvm-svn: 40921 | |||||
* | - Each val# can have multiple kills. | Evan Cheng | 2007-08-08 | 1 | -6/+3 | |
| | | | | | | | - Fix some minor bugs related to special markers on val# def. ~0U means undefined, ~1U means dead val#. llvm-svn: 40916 | |||||
* | Remove a dead assertion. | Evan Cheng | 2007-08-08 | 1 | -1/+0 | |
| | | | | llvm-svn: 40914 | |||||
* | - LiveInterval value#'s now have 3 components: def instruction #, | Evan Cheng | 2007-08-07 | 1 | -7/+12 | |
| | | | | | | | | | | kill instruction #, and source register number (iff the value# is defined by a copy). - Now def instruction # is set for every value#, not just for copy defined ones. - Update some outdated code related inactive live ranges. - Kill info not yet set. That's next patch. llvm-svn: 40913 | |||||
* | Add a register allocation preference field; add a method to compute size of ↵ | Evan Cheng | 2007-04-17 | 1 | -0/+9 | |
| | | | | | | a live interval. llvm-svn: 36216 | |||||
* | Added an automatic cast to "std::ostream*" etc. from OStream. We then can | Bill Wendling | 2006-12-17 | 1 | -1/+1 | |
| | | | | | | | rework the hacks that had us passing OStream in. We pass in std::ostream* instead, check for null, and then dispatch to the correct print() method. llvm-svn: 32636 | |||||
* | The best unbreakage yet, addressing Bill's concerns. | Jeff Cohen | 2006-12-16 | 1 | -3/+2 | |
| | | | | llvm-svn: 32622 | |||||
* | An even better unbreakage... | Jeff Cohen | 2006-12-15 | 1 | -0/+7 | |
| | | | | llvm-svn: 32617 | |||||
* | Changed llvm_ostream et all to OStream. llvm_cerr, llvm_cout, llvm_null, are | Bill Wendling | 2006-12-07 | 1 | -4/+3 | |
| | | | | | | now cerr, cout, and NullStream resp. llvm-svn: 32298 | |||||
* | Converted to using llvm streams instead of <iostream>s | Bill Wendling | 2006-11-29 | 1 | -1/+1 | |
| | | | | llvm-svn: 31992 | |||||
* | Put the #include for a module first. | Bill Wendling | 2006-11-28 | 1 | -1/+1 | |
| | | | | llvm-svn: 31958 | |||||
* | Changed to using llvm streams. | Bill Wendling | 2006-11-28 | 1 | -5/+5 | |
| | | | | llvm-svn: 31954 | |||||
* | For PR786: | Reid Spencer | 2006-11-02 | 1 | -1/+0 | |
| | | | | | | | | | | Turn on -Wunused and -Wno-unused-parameter. Clean up most of the resulting fall out by removing unused variables. Remaining warnings have to do with unused functions (I didn't want to delete code without review) and unused variables in generated code. Maintainers should clean up the remaining issues when they see them. All changes pass DejaGnu tests and Olden. llvm-svn: 31380 | |||||
* | When joining two intervals where the RHS is really simple, use a light-weight | Chris Lattner | 2006-09-02 | 1 | -0/+17 | |
| | | | | | | method for joining the live ranges instead of the fully-general one. llvm-svn: 30049 | |||||
* | avoid calling the virtual isMoveInstr method endlessly by caching its results. | Chris Lattner | 2006-08-31 | 1 | -12/+12 | |
| | | | | llvm-svn: 29994 | |||||
* | Teach the coallescer to coallesce live intervals joined by an arbitrary | Chris Lattner | 2006-08-29 | 1 | -130/+59 | |
| | | | | | | | | number of copies, potentially defining live ranges that appear to have differing value numbers that become identical when coallsced. Among other things, this fixes CodeGen/X86/shift-coalesce.ll and PR687. llvm-svn: 29968 | |||||
* | Simplifications to liveinterval analysis, no functionality change. | Chris Lattner | 2006-08-26 | 1 | -11/+15 | |
| | | | | llvm-svn: 29896 | |||||
* | Completely change the way that joining with physregs is implemented. This | Chris Lattner | 2006-08-25 | 1 | -7/+40 | |
| | | | | | | | | paves the way for future changes, increases coallescing opportunities (in theory, not witnessed in practice), and eliminates the really expensive LiveIntervals::overlapsAliases method. llvm-svn: 29890 | |||||
* | When replacing value numbers, make sure to compactify the value # space. | Chris Lattner | 2006-08-24 | 1 | -0/+12 | |
| | | | | llvm-svn: 29865 |