aboutsummaryrefslogtreecommitdiff
path: root/lib/Transforms/Scalar/ObjCARC.cpp
AgeCommit message (Expand)Author
2012-04-13Add some comments, and fix a few places that missed setting Changed.Dan Gohman
2012-04-13Consider ObjC runtime calls objc_storeWeak and others which make a copy ofDan Gohman
2012-04-13Use the new Use-aware dominates method to apply the objc runtimeDan Gohman
2012-04-13Don't move objc_autorelease calls past autorelease pool boundaries whenDan Gohman
2012-04-05Fix accidentally inverted logic from r152803, and make theDan Gohman
2012-03-24Fix the MSVC build.Francois Pichet
2012-03-23Don't convert objc_retainAutoreleasedReturnValue to objc_retain if itDan Gohman
2012-03-23It's not possible to insert code immediately after an invoke in theDan Gohman
2012-03-22Refactor the code for visiting instructions out into helper functions.Dan Gohman
2012-03-15Short term fix for pr12270 before we change dominates to handle unreachableRafael Espindola
2012-03-14When an invoke is marked with metadata indicating its unwind edgeDan Gohman
2012-03-09When identifying exit nodes for the reverse-CFG reverse-post-orderDan Gohman
2012-03-02Fix an iterator invalidation problem. operator[] on a DenseMapDan Gohman
2012-03-02Misc micro-optimizations.Dan Gohman
2012-02-17Calls and invokes with the new clang.arc.no_objc_arc_exceptionsDan Gohman
2012-02-13Just like in regular escape analysis, loads and stores throughDan Gohman
2012-01-20More dead code removal (using -Wunreachable-code)David Blaikie
2012-01-19Set the "tail" flag on pattern-matched objc_storeStrong calls.Dan Gohman
2012-01-18Add a depth limit to avoid runaway recursion.Dan Gohman
2012-01-18Use llvm.global_ctors to locate global constructors insteadDan Gohman
2012-01-17Add a new ObjC ARC optimization pass to eliminate unneededDan Gohman
2012-01-17Remove unreachable code. (replace with llvm_unreachable to help GCC where nec...David Blaikie
2012-01-14Fix an unused variable warning that Chad noticed.Dan Gohman
2012-01-13Implement proper ObjC ARC objc_retainBlock "escape" analysis, so thatDan Gohman
2011-12-21Fix a copy+pasto. No testcase, because the symptoms of dereferencingDan Gohman
2011-12-14It turns out that clang does use pointer-to-function types toDan Gohman
2011-12-12When computing reverse-CFG reverse-post-order, skip backedges, asDan Gohman
2011-12-12Add a TODO comment.Dan Gohman
2011-12-12Fix a copy+pasto in a comment.Dan Gohman
2011-12-12Use getArgOperand instead of getOperand on a call.Dan Gohman
2011-12-12Inline SetSeqToRelease into its only caller, since it's more clear that way.Dan Gohman
2011-12-12Fix omitted break statements in a switch.Dan Gohman
2011-10-17Teach the ARC optimizer about the !clang.arc.copy_on_escape metadataDan Gohman
2011-10-17Suppress partial retain+release elimination when there's aDan Gohman
2011-09-29When eliminating unnecessary retain+autorelease on return values,Dan Gohman
2011-09-29Don't eliminate objc_retainBlock calls on stack objects if theDan Gohman
2011-09-14Don't mark objc_retainBlock as nounwind. It calls user copy constructorsDan Gohman
2011-09-14objc_retainBlock is not NoModRef because it can update forwarding pointersDan Gohman
2011-09-12Change a bunch of isVolatile() checks to check for atomic load/store as well.Eli Friedman
2011-08-25When inserting new instructions, use getFirstInsertionPt instead ofBill Wendling
2011-08-22Add a comment.Dan Gohman
2011-08-22Constant pointers to objects don't need reference counting.Dan Gohman
2011-08-19Track a retain+release nesting level independently of theDan Gohman
2011-08-18Make it clear that this code is iterating in reverse order through the array.Dan Gohman
2011-08-12Don't convert objc_autoreleaseReturnValue to objc_autorelease if the resultDan Gohman
2011-08-12Don't let arbitrary calls disrupt nested retain+release pairs ifDan Gohman
2011-08-12Use an actual reverse-CFG reverse-postorder for the bottom-up traversal,Dan Gohman
2011-08-11Fix typos in comments, and delete an unused function.Dan Gohman
2011-08-04Fix an obvious type. Patch by Ivan Krasin.Evan Cheng
2011-07-22Move the last uses of RetainFunc etc. over to using getRetainCallee() etc.Dan Gohman