Commit message (Collapse) | Author | Age | Files | Lines | ||
---|---|---|---|---|---|---|
... | ||||||
* | Remove includes of Support/Compiler.h that are no longer needed after the | Nick Lewycky | 2009-10-25 | 1 | -1/+0 | |
| | | | | | | VISIBILITY_HIDDEN removal. llvm-svn: 85043 | |||||
* | Remove VISIBILITY_HIDDEN from class/struct found inside anonymous namespaces. | Nick Lewycky | 2009-10-25 | 1 | -1/+1 | |
| | | | | | | | Chris claims we should never have visibility_hidden inside any .cpp file but that's still not true even after this commit. llvm-svn: 85042 | |||||
* | Oops. Renamed remaining MachineInstrIndex references. | Lang Hames | 2009-10-03 | 1 | -1/+1 | |
| | | | | llvm-svn: 83255 | |||||
* | Renamed MachineInstrIndex to LiveIndex. | Lang Hames | 2009-10-03 | 1 | -9/+9 | |
| | | | | llvm-svn: 83254 | |||||
* | Removed static qualifier from a few index related methods. These methods may ↵ | Lang Hames | 2009-09-09 | 1 | -9/+8 | |
| | | | | | | require a LiveIntervals instance in future. llvm-svn: 81374 | |||||
* | Replaces uses of unsigned for indexes in LiveInterval and VNInfo with | Lang Hames | 2009-09-04 | 1 | -16/+15 | |
| | | | | | | | | a new class, MachineInstrIndex, which hides arithmetic details from most clients. This is a step towards allowing the register allocator to update/insert code during allocation. llvm-svn: 81040 | |||||
* | remove a few DOUTs here and there. | Chris Lattner | 2009-08-23 | 1 | -9/+11 | |
| | | | | llvm-svn: 79832 | |||||
* | Modified VNInfo. The "copy" member is now a union which holds the copy for a ↵ | Lang Hames | 2009-08-10 | 1 | -2/+2 | |
| | | | | | | register interval, or the defining register for a stack interval. Access is via getCopy/setCopy and getReg/setReg. llvm-svn: 78620 | |||||
* | Use setPreservesAll and setPreservesCFG in CodeGen passes. | Dan Gohman | 2009-07-31 | 1 | -0/+1 | |
| | | | | llvm-svn: 77754 | |||||
* | Improved tracking of value number kills. VN kills are now represented | Lang Hames | 2009-07-09 | 1 | -2/+2 | |
| | | | | | | | | | | | | as an (index,bool) pair. The bool flag records whether the kill is a PHI kill or not. This code will be used to enable splitting of live intervals containing PHI-kills. A slight change to live interval weights introduced an extra spill into lsr-code-insertion (outside the critical sections). The test condition has been updated to reflect this. llvm-svn: 75097 | |||||
* | VNInfo cleanup. | Lang Hames | 2009-06-17 | 1 | -7/+4 | |
| | | | | llvm-svn: 73634 | |||||
* | Update to in-place spilling framework. Includes live interval scaling and ↵ | Lang Hames | 2009-06-02 | 1 | -1/+1 | |
| | | | | | | trivial rewriter. llvm-svn: 72729 | |||||
* | Fix a bug in live-in detection that caused lost-copy problems to show up. | Owen Anderson | 2008-10-12 | 1 | -1/+1 | |
| | | | | llvm-svn: 57424 | |||||
* | Fix compilation error on MSVC. | Argyrios Kyrtzidis | 2008-10-04 | 1 | -1/+1 | |
| | | | | llvm-svn: 57046 | |||||
* | Switch the MachineOperand accessors back to the short names like | Dan Gohman | 2008-10-03 | 1 | -1/+1 | |
| | | | | | | isReg, etc., from isRegister, etc. llvm-svn: 57006 | |||||
* | Use a multimap rather than a map for holding the list of copies to insert, ↵ | Owen Anderson | 2008-10-02 | 1 | -12/+19 | |
| | | | | | | | | | | so we don't lose copies when two of them have the same source. I don't know what I was thinking when I wrote this originally. Note: There's probably a more efficient way to do this, but I need to think about it some more, and about what determinism guarantees need to be present. llvm-svn: 56964 | |||||
* | Mark merged-in VNInfo's as being PHIKilled. | Owen Anderson | 2008-09-30 | 1 | -0/+5 | |
| | | | | llvm-svn: 56893 | |||||
* | We don't need to insert copies for implicit_def's. | Owen Anderson | 2008-09-26 | 1 | -1/+5 | |
| | | | | llvm-svn: 56674 | |||||
* | Fix off-by-one error when updating live intervals. | Owen Anderson | 2008-09-24 | 1 | -1/+1 | |
| | | | | llvm-svn: 56567 | |||||
* | Add initial support for inserting last minute copies. | Owen Anderson | 2008-09-23 | 1 | -28/+53 | |
| | | | | llvm-svn: 56485 | |||||
* | Significant improvements to the logic for merging live intervals. This code ↵ | Owen Anderson | 2008-09-22 | 1 | -15/+53 | |
| | | | | | | | | | can't just use LI::MergeValueAsValue, as its behavior in the presence of overlapping ranges isn't what StrongPHIElimination wants. llvm-svn: 56472 | |||||
* | Tidy up several unbeseeming casts from pointer to intptr_t. | Dan Gohman | 2008-09-04 | 1 | -1/+1 | |
| | | | | llvm-svn: 55779 | |||||
* | Use empty() instead of begin() == end(). | Dan Gohman | 2008-08-14 | 1 | -1/+1 | |
| | | | | llvm-svn: 54780 | |||||
* | Get rid of unused variable. | Owen Anderson | 2008-08-13 | 1 | -1/+0 | |
| | | | | llvm-svn: 54742 | |||||
* | 1) Merge entire live intervals instead of parts of them. | Owen Anderson | 2008-08-13 | 1 | -62/+36 | |
| | | | | | | 2) Conditionalize temporary insertion if we don't need it. llvm-svn: 54741 | |||||
* | Do a dominator walk when scheduling copies, rather than a DFS on the CFG. ↵ | Owen Anderson | 2008-08-07 | 1 | -14/+44 | |
| | | | | | | | | Also, fix a few problems when creating live intervals for temporaries created by phi elimination. llvm-svn: 54483 | |||||
* | Correct handle cases where two phis are coalesced together, and correct ↵ | Owen Anderson | 2008-08-06 | 1 | -6/+39 | |
| | | | | | | | | break up the case where two different phis want to coalesce with the same vreg. llvm-svn: 54426 | |||||
* | We don't need to try to coalesce input vregs that are the same as the output ↵ | Owen Anderson | 2008-08-06 | 1 | -0/+7 | |
| | | | | | | vreg. llvm-svn: 54422 | |||||
* | Only trim a live interval if the register is not used after the PHI node. | Owen Anderson | 2008-08-06 | 1 | -2/+5 | |
| | | | | llvm-svn: 54421 | |||||
* | Oops, we were already checking for dead phis. Handle this the proper way, then. | Owen Anderson | 2008-08-05 | 1 | -22/+19 | |
| | | | | llvm-svn: 54371 | |||||
* | We don't need to update live intervals for dead PHIs. | Owen Anderson | 2008-08-05 | 1 | -29/+32 | |
| | | | | llvm-svn: 54369 | |||||
* | Use existing LiveInterval methods to simplify live interval merging. Thanks ↵ | Owen Anderson | 2008-07-30 | 1 | -31/+32 | |
| | | | | | | to Evan for pointing these out. llvm-svn: 54225 | |||||
* | When merging live intervals, we also need to merge in any live ranges that ↵ | Owen Anderson | 2008-07-30 | 1 | -13/+42 | |
| | | | | | | | | are inputs to two-address instructions that themselves define a range we already care about. llvm-svn: 54185 | |||||
* | When merging a PHI operand's live interval into the PHI's live interval, we ↵ | Owen Anderson | 2008-07-29 | 1 | -9/+17 | |
| | | | | | | | | need to merge over all liveranges in the operand's interval that share the relevant value number, not just the range that immediately precedes the PHI. llvm-svn: 54174 | |||||
* | Fix the issues originally addressed in r54070. After thinking about it some ↵ | Owen Anderson | 2008-07-25 | 1 | -2/+19 | |
| | | | | | | | | | | more, I realized that the right thing to do is to have StrongPHIElimination use its knowledge of the PHIs before they're erased to update the intervals appropriate. This is both simpler and more accurate than the alternative, which was having LIA figure it out when it renumbered things, plus it's just the right thing to do! llvm-svn: 54077 | |||||
* | In order to avoid reprocessing a register more than once, we need to add it | Owen Anderson | 2008-07-25 | 1 | -1/+1 | |
| | | | | | | to the handled set so it will get filtered out in future iterations. llvm-svn: 54065 | |||||
* | Remove live interval entries for an interval if we're eliminating its only VN. | Owen Anderson | 2008-07-25 | 1 | -1/+6 | |
| | | | | llvm-svn: 54062 | |||||
* | Store the predecessor MBB in the PHIUnion, rather than an index, since the ↵ | Owen Anderson | 2008-07-24 | 1 | -26/+28 | |
| | | | | | | indices will change after renumbering. llvm-svn: 53985 | |||||
* | Remove debugging code. | Owen Anderson | 2008-06-05 | 1 | -4/+0 | |
| | | | | llvm-svn: 52016 | |||||
* | Use the newly created helper on LiveIntervals. | Owen Anderson | 2008-06-05 | 1 | -116/+21 | |
| | | | | llvm-svn: 52013 | |||||
* | Correctly construct live intervals for the copies we inserted into the ↵ | Owen Anderson | 2008-06-04 | 1 | -1/+38 | |
| | | | | | | predecessors of a block containing a PHI. llvm-svn: 51950 | |||||
* | We need to subtract one from this index because live ranges are open at the end. | Owen Anderson | 2008-06-04 | 1 | -1/+1 | |
| | | | | llvm-svn: 51922 | |||||
* | Preserve the register coallescer, and update live intervals more correctly ↵ | Owen Anderson | 2008-05-30 | 1 | -1/+4 | |
| | | | | | | by triggering a renumbering after phi elimination. llvm-svn: 51780 | |||||
* | Change class' public PassInfo variables to by initialized with the | Dan Gohman | 2008-05-13 | 1 | -1/+1 | |
| | | | | | | | | | | | address of the PassInfo directly instead of calling getPassInfo. This eliminates a bunch of dynamic initializations of static data. Also, fold RegisterPassBase into PassInfo, make a bunch of its data members const, and rearrange some code to initialize data members in constructors instead of using setter member functions. llvm-svn: 51022 | |||||
* | Clean up the use of static and anonymous namespaces. This turned up | Dan Gohman | 2008-05-13 | 1 | -4/+9 | |
| | | | | | | | several things that were neither in an anonymous namespace nor static but not intended to be global. llvm-svn: 51017 | |||||
* | In some situations, we need to check for local interferences between the PHI | Owen Anderson | 2008-04-02 | 1 | -2/+11 | |
| | | | | | | node and its inputs. llvm-svn: 49070 | |||||
* | Correctly mark a valno that was previous defined by a PHI node as having an | Owen Anderson | 2008-04-02 | 1 | -4/+7 | |
| | | | | | | unknown defining inst after PHI elimination. llvm-svn: 49069 | |||||
* | Don't dereference MBB->end(). | Owen Anderson | 2008-04-01 | 1 | -1/+1 | |
| | | | | llvm-svn: 49043 | |||||
* | Fix a major bug in the DFS calculation. Thanks for Christopher Lamb for ↵ | Owen Anderson | 2008-03-31 | 1 | -1/+1 | |
| | | | | | | pointing this out. llvm-svn: 48973 | |||||
* | Remove some unneeded code for LiveInterval joining, and fix a bug in the Phi ↵ | Owen Anderson | 2008-03-29 | 1 | -58/+25 | |
| | | | | | | | | elimination algorithm where we were accidentally reasoning about the source rather than the destination. llvm-svn: 48936 |