[ObjCARC] Turn off ignoring unwind edges in ObjCARC when -fno-objc-arc-exception...
[oota-llvm.git] / lib / Transforms / Scalar / ObjCARC.cpp
index abd6b4185f6305f82f2a0cf747b8cb0fb8f9cb06..8da872676659fbf460380ab4dd30508f26612051 100644 (file)
@@ -2675,17 +2675,6 @@ ObjCARCOpt::CheckForCFGHazards(const BasicBlock *BB,
       PtrState &S = I->second;
       succ_const_iterator SI(TI), SE(TI, false);
 
-      // If the terminator is an invoke marked with the
-      // clang.arc.no_objc_arc_exceptions metadata, the unwind edge can be
-      // ignored, for ARC purposes.
-      if (isa<InvokeInst>(TI) && TI->getMetadata(NoObjCARCExceptionsMDKind)) {
-        DEBUG(dbgs() << "ObjCARCOpt::CheckForCFGHazards: Found an invoke "
-                        "terminator marked with "
-                        "clang.arc.no_objc_arc_exceptions. Ignoring unwind "
-                        "edge.\n");
-        --SE;
-      }
-
       for (; SI != SE; ++SI) {
         Sequence SuccSSeq = S_None;
         bool SuccSRRIKnownSafe = false;
@@ -2734,17 +2723,6 @@ ObjCARCOpt::CheckForCFGHazards(const BasicBlock *BB,
       PtrState &S = I->second;
       succ_const_iterator SI(TI), SE(TI, false);
 
-      // If the terminator is an invoke marked with the
-      // clang.arc.no_objc_arc_exceptions metadata, the unwind edge can be
-      // ignored, for ARC purposes.
-      if (isa<InvokeInst>(TI) && TI->getMetadata(NoObjCARCExceptionsMDKind)) {
-        DEBUG(dbgs() << "ObjCARCOpt::CheckForCFGHazards: Found an invoke "
-                        "terminator marked with "
-                        "clang.arc.no_objc_arc_exceptions. Ignoring unwind "
-                        "edge.\n");
-        --SE;
-      }
-
       for (; SI != SE; ++SI) {
         Sequence SuccSSeq = S_None;
         bool SuccSRRIKnownSafe = false;
@@ -3199,17 +3177,6 @@ ComputePostOrders(Function &F,
     TerminatorInst *TI = cast<TerminatorInst>(&CurrBB->back());
     succ_iterator SE(TI, false);
 
-    // If the terminator is an invoke marked with the
-    // clang.arc.no_objc_arc_exceptions metadata, the unwind edge can be
-    // ignored, for ARC purposes.
-    if (isa<InvokeInst>(TI) && TI->getMetadata(NoObjCARCExceptionsMDKind)) {
-        DEBUG(dbgs() << "ObjCARCOpt::ComputePostOrders: Found an invoke "
-                        "terminator marked with "
-                        "clang.arc.no_objc_arc_exceptions. Ignoring unwind "
-                        "edge.\n");
-      --SE;
-    }
-
     while (SuccStack.back().second != SE) {
       BasicBlock *SuccBB = *SuccStack.back().second++;
       if (Visited.insert(SuccBB)) {