[llvm-commits] [llvm] r172346 - /llvm/trunk/lib/Transforms/Scalar/ObjCARC.cpp

Michael Gottesman mgottesman at apple.com
Sat Jan 12 23:00:52 PST 2013


Author: mgottesman
Date: Sun Jan 13 01:00:51 2013
New Revision: 172346

URL: http://llvm.org/viewvc/llvm-project?rev=172346&view=rev
Log:
[ObjCARC] More debug messages.

Modified:
    llvm/trunk/lib/Transforms/Scalar/ObjCARC.cpp

Modified: llvm/trunk/lib/Transforms/Scalar/ObjCARC.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/Scalar/ObjCARC.cpp?rev=172346&r1=172345&r2=172346&view=diff
==============================================================================
--- llvm/trunk/lib/Transforms/Scalar/ObjCARC.cpp (original)
+++ llvm/trunk/lib/Transforms/Scalar/ObjCARC.cpp Sun Jan 13 01:00:51 2013
@@ -894,6 +894,8 @@
 
   bool Changed = false;
 
+  DEBUG(dbgs() << "ObjCARCExpand: Visiting Function: " << F.getName() << "\n");
+
   for (inst_iterator I = inst_begin(&F), E = inst_end(&F); I != E; ++I) {
     Instruction *Inst = &*I;
 
@@ -2630,8 +2632,13 @@
       // 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))
+      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;
@@ -2684,8 +2691,13 @@
       // 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))
+      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;
@@ -2752,8 +2764,11 @@
     // Theoretically we could implement removal of nested retain+release
     // pairs by making PtrState hold a stack of states, but this is
     // simple and avoids adding overhead for the non-nested case.
-    if (S.GetSeq() == S_Release || S.GetSeq() == S_MovableRelease)
+    if (S.GetSeq() == S_Release || S.GetSeq() == S_MovableRelease) {
+      DEBUG(dbgs() << "ObjCARCOpt::VisitInstructionBottomUp: Found nested "
+                      "releases (i.e. a release pair)\n");
       NestingDetected = true;
+    }
 
     MDNode *ReleaseMetadata = Inst->getMetadata(ImpreciseReleaseMDKind);
     S.ResetSequenceProgress(ReleaseMetadata ? S_MovableRelease : S_Release);
@@ -2916,6 +2931,8 @@
     if (isa<InvokeInst>(Inst))
       continue;
 
+    DEBUG(dbgs() << "ObjCARCOpt::VisitButtonUp: Visiting " << *Inst << "\n");
+
     NestingDetected |= VisitInstructionBottomUp(Inst, BB, Retains, MyStates);
   }
 
@@ -3098,6 +3115,9 @@
   // Visit all the instructions, top-down.
   for (BasicBlock::iterator I = BB->begin(), E = BB->end(); I != E; ++I) {
     Instruction *Inst = I;
+
+    DEBUG(dbgs() << "ObjCARCOpt::VisitTopDown: Visiting " << *Inst << "\n");
+
     NestingDetected |= VisitInstructionTopDown(Inst, Releases, MyStates);
   }
 
@@ -3136,8 +3156,13 @@
     // 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))
+    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++;





More information about the llvm-commits mailing list