aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2007-08-15Test case for PR1609.Evan Cheng
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41110 91177308-0d34-0410-b5e6-96231b3b80d8
2007-08-15If the source of a move is in spill slot, the reload may be folded to ↵Evan Cheng
essentially a load from stack slot. It's ok to mark the stack slot value as available for reuse. But it should not be clobbered since the destination of the move is live. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41109 91177308-0d34-0410-b5e6-96231b3b80d8
2007-08-15Update .cvs fileDavid Greene
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41106 91177308-0d34-0410-b5e6-96231b3b80d8
2007-08-15Move ReturnAddrIndex variable to X86MachineFunctionInfo structure. This fixedAnton Korobeynikov
hard to catch bugs with retaddr lowering git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41104 91177308-0d34-0410-b5e6-96231b3b80d8
2007-08-15add a note.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41103 91177308-0d34-0410-b5e6-96231b3b80d8
2007-08-15svn propdel the svn:mime-type property of application/x-troff.Dan Gohman
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41102 91177308-0d34-0410-b5e6-96231b3b80d8
2007-08-15This test used "wc | grep ..."; convert it to use the count script.Dan Gohman
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41101 91177308-0d34-0410-b5e6-96231b3b80d8
2007-08-15Convert tests using "grep -c ... | grep ..." to use the count script.Dan Gohman
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41100 91177308-0d34-0410-b5e6-96231b3b80d8
2007-08-15Delete extraneous uses of wc -l.Dan Gohman
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41099 91177308-0d34-0410-b5e6-96231b3b80d8
2007-08-15Convert another test to use the count script. This one didn't fit theDan Gohman
regex used to convert all the others because the first '|' was on a separate line. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41098 91177308-0d34-0410-b5e6-96231b3b80d8
2007-08-15Convert tests using "| wc -l | grep ..." to use the count script.Dan Gohman
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41097 91177308-0d34-0410-b5e6-96231b3b80d8
2007-08-15Dominance frontier is now required.Devang Patel
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41096 91177308-0d34-0410-b5e6-96231b3b80d8
2007-08-15Cleanup removeBlocks. Devang Patel
Use dominance frontier to fixup incoming edges of successor blocks not domianted by DeadBB. Use df_iterator to walk and delete basic blocks dominated by DeadBB. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41095 91177308-0d34-0410-b5e6-96231b3b80d8
2007-08-15Remove unneeded header file.Reid Spencer
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41094 91177308-0d34-0410-b5e6-96231b3b80d8
2007-08-15Avoid triangle loops.Devang Patel
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41093 91177308-0d34-0410-b5e6-96231b3b80d8
2007-08-14Break infinite loop.Devang Patel
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41091 91177308-0d34-0410-b5e6-96231b3b80d8
2007-08-14Avoid nested loops at the moment.Devang Patel
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41090 91177308-0d34-0410-b5e6-96231b3b80d8
2007-08-14New test.Evan Cheng
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41087 91177308-0d34-0410-b5e6-96231b3b80d8
2007-08-14- If a def is dead, do not spill it.Evan Cheng
- If the defs of a spilled rematerializable MI are dead after the spill store is deleted, delete the def MI as well. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41086 91177308-0d34-0410-b5e6-96231b3b80d8
2007-08-14Test case for PR1596.Evan Cheng
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41085 91177308-0d34-0410-b5e6-96231b3b80d8
2007-08-14Fix for PR1596: AdjustCopiesBackFrom() should conservatively check if any of ↵Evan Cheng
its sub-registers may overlap with the interval of the copy that's being coalesced. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41084 91177308-0d34-0410-b5e6-96231b3b80d8
2007-08-14If a MI's def is remat as well as spilled, and the store is later deemed ↵Evan Cheng
dead, mark the def operand as isDead. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41083 91177308-0d34-0410-b5e6-96231b3b80d8
2007-08-14Fix dominance frontier update while removing blocks.Devang Patel
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41082 91177308-0d34-0410-b5e6-96231b3b80d8
2007-08-14Eliminate PHI nodes with constant values during normal GVN processing, even whenOwen Anderson
they're not related to eliminating a load. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41081 91177308-0d34-0410-b5e6-96231b3b80d8
2007-08-14Be more aggressive in pruning unnecessary PHI nodes when doing PHI construction.Owen Anderson
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41080 91177308-0d34-0410-b5e6-96231b3b80d8
2007-08-14Make GVN iterative.Owen Anderson
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41078 91177308-0d34-0410-b5e6-96231b3b80d8
2007-08-14Fix a case where GVN was failing to return true when it had, in fact, modifiedOwen Anderson
the function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41077 91177308-0d34-0410-b5e6-96231b3b80d8
2007-08-14Assert sooner. Fix wordings.Devang Patel
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41075 91177308-0d34-0410-b5e6-96231b3b80d8
2007-08-14No need to use iterator to erase basic block.Devang Patel
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41074 91177308-0d34-0410-b5e6-96231b3b80d8
2007-08-14tcl seems to hate |& for some reason.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41073 91177308-0d34-0410-b5e6-96231b3b80d8
2007-08-14switch this to use fastcc to avoid fpstack traffic on x86-32. Switch to Chris Lattner
using the count script instead of wc -l git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41072 91177308-0d34-0410-b5e6-96231b3b80d8
2007-08-14Update test case. A spill should now be deleted.Evan Cheng
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41070 91177308-0d34-0410-b5e6-96231b3b80d8
2007-08-14If a spilled value is being reused and the use is a kill, that means there areEvan Cheng
no more uses within the MBB and the spilled value isn't live out of the MBB. Then it's safe to delete the spill store. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41069 91177308-0d34-0410-b5e6-96231b3b80d8
2007-08-14Spiller reuse test case.Evan Cheng
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41068 91177308-0d34-0410-b5e6-96231b3b80d8
2007-08-14If a rematerializable def is not deleted, i.e. it is also spilled, check if theEvan Cheng
spilled value is available for reuse. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41067 91177308-0d34-0410-b5e6-96231b3b80d8
2007-08-14Kill info update bugs.Evan Cheng
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41064 91177308-0d34-0410-b5e6-96231b3b80d8
2007-08-14Handle last value assignments.Devang Patel
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41063 91177308-0d34-0410-b5e6-96231b3b80d8
2007-08-14StartValue is already calculated.Devang Patel
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41062 91177308-0d34-0410-b5e6-96231b3b80d8
2007-08-13Now capable of rematerializing coalesced live intervals.Evan Cheng
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41061 91177308-0d34-0410-b5e6-96231b3b80d8
2007-08-13Re-implement trivial rematerialization. This allows def MIs whose live ↵Evan Cheng
intervals that are coalesced to be rematerialized. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41060 91177308-0d34-0410-b5e6-96231b3b80d8
2007-08-13Fix a typo pointd out by Maarten ter Huurne.Evan Cheng
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41059 91177308-0d34-0410-b5e6-96231b3b80d8
2007-08-13Preserve simple analysis.Devang Patel
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41054 91177308-0d34-0410-b5e6-96231b3b80d8
2007-08-13Preserve dominator info.Devang Patel
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41053 91177308-0d34-0410-b5e6-96231b3b80d8
2007-08-13Add methods to erase basic block entry.Devang Patel
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41052 91177308-0d34-0410-b5e6-96231b3b80d8
2007-08-13If NewBB dominates DestBB then DestBB is not part of NewBB's dominance frontier.Devang Patel
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41051 91177308-0d34-0410-b5e6-96231b3b80d8
2007-08-13move assertion into mutex guard, a partial fix for PR1606.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41050 91177308-0d34-0410-b5e6-96231b3b80d8
2007-08-13When x86 addresses matching exceeds its recursion limit, check toDan Gohman
see if the base register is already occupied before assuming it can be used. This fixes bogus code generation in the accompanying testcase. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41049 91177308-0d34-0410-b5e6-96231b3b80d8
2007-08-13Fix PR1607Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41048 91177308-0d34-0410-b5e6-96231b3b80d8
2007-08-13test that the ptr-to-method is succefully eliminated, leaving just the ↵Chris Lattner
vtable dispatch. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41047 91177308-0d34-0410-b5e6-96231b3b80d8
2007-08-13Constant fold: getelementptr (i8* inttoptr (i64 1 to i8*), i32 -1)Chris Lattner
Into: inttoptr (i64 0 to i8*) -> null This occurs in the example in PR1602. With this fixed, we now compile the example in PR1602 into fully "devirtualized" code: define void @_Z1g1S(%struct.S* noalias %s) { entry: %tmp131415 = getelementptr %struct.S* %s, i32 0, i32 0 ; <i32 (...)***> [#uses=1] %tmp16 = load i32 (...)*** %tmp131415, align 4 ; <i32 (...)**> [#uses=1] %tmp26277 = load i32 (...)** %tmp16 ; <i32 (...)*> [#uses=1] %tmp2829 = bitcast i32 (...)* %tmp26277 to void (%struct.S*)* ; <void (%struct.S*)*> [#uses=1] tail call void %tmp2829( %struct.S* %s ) ret void } This still has the vtable dispatch (as required) but does not have any pointer to method cruft left. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41046 91177308-0d34-0410-b5e6-96231b3b80d8