summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen/SimpleRegisterCoalescing.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Change LiveRange so it keeps a pointer to the VNInfo rather than an index.Evan Cheng2007-08-291-110/+118
| | | | | | | 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 Cheng2007-08-281-17/+27
| | | | | | | | 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
* Fix some kill info update bugs; add hidden option -disable-rematerialization ↵Evan Cheng2007-08-161-0/+6
| | | | | | to turn off remat for debugging. llvm-svn: 41118
* Fix for PR1596: AdjustCopiesBackFrom() should conservatively check if any of ↵Evan Cheng2007-08-141-0/+13
| | | | | | its sub-registers may overlap with the interval of the copy that's being coalesced. llvm-svn: 41084
* Kill info update bugs.Evan Cheng2007-08-141-1/+1
| | | | llvm-svn: 41064
* Re-implement trivial rematerialization. This allows def MIs whose live ↵Evan Cheng2007-08-131-6/+0
| | | | | | intervals that are coalesced to be rematerialized. llvm-svn: 41060
* No need to remove dead range from soon-to-be-dead live interval. Its val# ↵Evan Cheng2007-08-121-3/+3
| | | | | | may be out of whack. llvm-svn: 41024
* Code to maintain kill information during register coalescing.Evan Cheng2007-08-111-14/+42
| | | | llvm-svn: 41016
* unbreak the buildChris Lattner2007-08-091-1/+1
| | | | llvm-svn: 40976
* Bug fix. ~1U marks the val# dead.Evan Cheng2007-08-091-1/+1
| | | | llvm-svn: 40975
* - Each val# can have multiple kills.Evan Cheng2007-08-081-2/+2
| | | | | | | - Fix some minor bugs related to special markers on val# def. ~0U means undefined, ~1U means dead val#. llvm-svn: 40916
* - LiveInterval value#'s now have 3 components: def instruction #,Evan Cheng2007-08-071-12/+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
* shorten this nameChris Lattner2007-08-051-2/+1
| | | | llvm-svn: 40843
* simpleregistercoalescing -> regcoalescing. It's too long for me to handle.Evan Cheng2007-07-311-1/+1
| | | | llvm-svn: 40654
* Don't assume that only Uses can be kills. Defs are marked as kills initiallyDan Gohman2007-07-201-2/+2
| | | | | | | | when there are no uses. This fixes a dangling-pointer bug, where pointers to deleted instructions were not removed from kills lists. More info here: http://lists.cs.uiuc.edu/pipermail/llvmdev/2007-July/009749.html llvm-svn: 40131
* Add comment.Evan Cheng2007-07-181-0/+3
| | | | llvm-svn: 40022
* fix typosGabor Greif2007-07-091-31/+31
| | | | llvm-svn: 38453
* Factor live variable analysis so it does not do register coalescingDavid Greene2007-06-081-0/+1138
simultaneously. Move that pass to SimpleRegisterCoalescing. This makes it easier to implement alternative register allocation and coalescing strategies while maintaining reuse of the existing live interval analysis. llvm-svn: 37520
OpenPOWER on IntegriCloud