#
ba61fed5 |
| 11-Nov-2009 |
Duncan Sands <baldrick@free.fr> |
Don't trivially delete unused calls to llvm.invariant.start. This allows llvm.invariant.start to be used without necessarily being paired with a call to llvm.invariant.end. If you run the entire op
Don't trivially delete unused calls to llvm.invariant.start. This allows llvm.invariant.start to be used without necessarily being paired with a call to llvm.invariant.end. If you run the entire optimization pipeline then such calls are in fact deleted (adce does it), but that's actually a good thing since we probably do want them to be zapped late in the game. There should really be an integration test that checks that the llvm.invariant.start call lasts long enough that all passes that do interesting things with it get to do their stuff before it is deleted. But since no passes do anything interesting with it yet this will have to wait for later.
llvm-svn: 86840
show more ...
|
#
852d6d64 |
| 10-Nov-2009 |
Chris Lattner <sabre@nondot.org> |
move some generally useful functions out of jump threading into libanalysis and transformutils.
llvm-svn: 86735
|
#
cbd18fc9 |
| 10-Nov-2009 |
Chris Lattner <sabre@nondot.org> |
refactor TryToSimplifyUncondBranchFromEmptyBlock out of SimplifyCFG.
llvm-svn: 86666
|
#
5a383249 |
| 03-Nov-2009 |
Chris Lattner <sabre@nondot.org> |
remove a isFreeCall check: it is a callinst that can write to memory already.
llvm-svn: 85863
|
#
54a4b840 |
| 01-Nov-2009 |
Chris Lattner <sabre@nondot.org> |
constant fold indirectbr(blockaddress(%bb)) -> br label %bb.
llvm-svn: 85704
|
#
f390e04a |
| 27-Oct-2009 |
Victor Hernandez <vhernandez@apple.com> |
Rename MallocFreeHelper as MemoryBuiltins
llvm-svn: 85286
|
#
762195bd |
| 26-Oct-2009 |
Victor Hernandez <vhernandez@apple.com> |
Rename MallocHelper as MallocFreeHelper, since it now also identifies calls to free()
llvm-svn: 85181
|
#
de5ad42a |
| 26-Oct-2009 |
Victor Hernandez <vhernandez@apple.com> |
Remove FreeInst. Remove LowerAllocations pass. Update some more passes to treate free calls just like they were treating FreeInst.
llvm-svn: 85176
|
#
e297149e |
| 24-Oct-2009 |
Victor Hernandez <vhernandez@apple.com> |
Auto-upgrade free instructions to calls to the builtin free function. Update all analysis passes and transforms to treat free calls just like FreeInst. Remove RaiseAllocations and all its tests since
Auto-upgrade free instructions to calls to the builtin free function. Update all analysis passes and transforms to treat free calls just like FreeInst. Remove RaiseAllocations and all its tests since FreeInst no longer needs to be raised.
llvm-svn: 84987
show more ...
|
Revision tags: llvmorg-2.6.0 |
|
#
f8cb758b |
| 16-Sep-2009 |
Andreas Neustifter <astifter-llvm@gmx.at> |
Preserve ProfileInfo during CodeGenPrepare.
llvm-svn: 82034
|
#
b292b8ce |
| 30-Jul-2009 |
Owen Anderson <resistor@mac.com> |
Move more code back to 2.5 APIs.
llvm-svn: 77635
|
#
47db941f |
| 22-Jul-2009 |
Owen Anderson <resistor@mac.com> |
Get rid of the Pass+Context magic.
llvm-svn: 76702
|
#
1e5f00e7 |
| 09-Jul-2009 |
Owen Anderson <resistor@mac.com> |
This started as a small change, I swear. Unfortunately, lots of things call the [I|F]CmpInst constructors. Who knew!?
llvm-svn: 75200
|
#
38264b15 |
| 06-Jul-2009 |
Owen Anderson <resistor@mac.com> |
"LLVMContext* " --> "LLVMContext *"
llvm-svn: 74878
|
#
e70b6370 |
| 05-Jul-2009 |
Owen Anderson <resistor@mac.com> |
More LLVMContext-ification.
llvm-svn: 74807
|
#
0f2eb5b9 |
| 26-Jun-2009 |
Devang Patel <dpatel@apple.com> |
Remove unused routines.
llvm-svn: 74351
|
#
945d08d7 |
| 16-Jun-2009 |
Chris Lattner <sabre@nondot.org> |
Generalize instcombine's isSafeToLoadUnconditionally() function to ignore readonly calls, and factor it out of instcombine so that it can be used by other passes. Patch by Frits van Bommel!
llvm-sv
Generalize instcombine's isSafeToLoadUnconditionally() function to ignore readonly calls, and factor it out of instcombine so that it can be used by other passes. Patch by Frits van Bommel!
llvm-svn: 73506
show more ...
|
#
9a6fef0a |
| 06-May-2009 |
Dan Gohman <gohman@apple.com> |
Simplify code by using SmallVector's pop_back_val() instead of separate back() and pop_back() calls.
llvm-svn: 71089
|
#
1efabaaa |
| 06-May-2009 |
Duncan Sands <baldrick@free.fr> |
Allow readonly functions to unwind exceptions. Teach the optimizers about this. For example, a readonly function with no uses cannot be removed unless it is also marked nounwind.
llvm-svn: 71071
|
#
48f82222 |
| 04-May-2009 |
Dan Gohman <gohman@apple.com> |
Re-apply 70645, converting ScalarEvolution to use CallbackVH, with fixes. allUsesReplacedWith need to walk the def-use chains and invalidate all users of a value that is replaced. SCEVs of users need
Re-apply 70645, converting ScalarEvolution to use CallbackVH, with fixes. allUsesReplacedWith need to walk the def-use chains and invalidate all users of a value that is replaced. SCEVs of users need to be recalcualted even if the new value is equivalent. Also, make forgetLoopPHIs walk def-use chains, since any SCEV that depends on a PHI should be recalculated when more information about that PHI becomes available.
llvm-svn: 70927
show more ...
|
#
5036695c |
| 03-May-2009 |
Dan Gohman <gohman@apple.com> |
Revert r70645 for now; it's causing a variety of regressions.
llvm-svn: 70661
|
#
e9a38d16 |
| 02-May-2009 |
Dan Gohman <gohman@apple.com> |
Convert ScalarEvolution to use CallbackVH for its internal map. This makes ScalarEvolution::deleteValueFromRecords, and it's code that subtly needed to be called before ReplaceAllUsesWith, unnecessar
Convert ScalarEvolution to use CallbackVH for its internal map. This makes ScalarEvolution::deleteValueFromRecords, and it's code that subtly needed to be called before ReplaceAllUsesWith, unnecessary.
It also makes ValueDeletionListener unnecessary.
llvm-svn: 70645
show more ...
|
#
ff089955 |
| 02-May-2009 |
Dan Gohman <gohman@apple.com> |
Previously, RecursivelyDeleteDeadInstructions provided an option of returning a list of pointers to Values that are deleted. This was unsafe, because the pointers in the list are, by nature of what R
Previously, RecursivelyDeleteDeadInstructions provided an option of returning a list of pointers to Values that are deleted. This was unsafe, because the pointers in the list are, by nature of what RecursivelyDeleteDeadInstructions does, always dangling. Replace this with a simple callback mechanism. This may eventually be removed if all clients can reasonably be expected to use CallbackVH.
Use this to factor out the dead-phi-cycle-elimination code from LSR utility function, and generalize it to use the RecursivelyDeleteTriviallyDeadInstructions utility function.
This makes LSR more aggressive about eliminating dead PHI cycles; adjust tests to either be less trivial or to simply expect fewer instructions.
llvm-svn: 70636
show more ...
|
#
05bea906 |
| 18-Mar-2009 |
Zhou Sheng <zhousheng00@gmail.com> |
Revert my previous change on Local.cpp, instead, fix the bug on scalarrepl. If the instruction has no users, it is also not only used by debug info and should not be deleted.
llvm-svn: 67194
|
#
64a6a092 |
| 18-Mar-2009 |
Zhou Sheng <zhousheng00@gmail.com> |
Fix a bug. If I->use_empty(), this method should return false.
llvm-svn: 67180
|