[llvm] r180693 - [objc-arc-annotations] Moved the disabling of call movement to ConnectTDBUTraversals so that I can prevent Changed = true from being set. This prevents an infinite loop.

Michael Gottesman mgottesman at apple.com
Sun Apr 28 22:13:14 PDT 2013


Author: mgottesman
Date: Mon Apr 29 00:13:13 2013
New Revision: 180693

URL: http://llvm.org/viewvc/llvm-project?rev=180693&view=rev
Log:
[objc-arc-annotations] Moved the disabling of call movement to ConnectTDBUTraversals so that I can prevent Changed = true from being set. This prevents an infinite loop.

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

Modified: llvm/trunk/lib/Transforms/ObjCARC/ObjCARCOpts.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/ObjCARC/ObjCARCOpts.cpp?rev=180693&r1=180692&r2=180693&view=diff
==============================================================================
--- llvm/trunk/lib/Transforms/ObjCARC/ObjCARCOpts.cpp (original)
+++ llvm/trunk/lib/Transforms/ObjCARC/ObjCARCOpts.cpp Mon Apr 29 00:13:13 2013
@@ -2581,6 +2581,11 @@ ObjCARCOpt::ConnectTDBUTraversals(DenseM
   // long as the existing imbalances are maintained.
   if (OldDelta != 0)
     return false;
+  
+#ifdef ARC_ANNOTATIONS
+  // Do not move calls if ARC annotations are requested.
+  return false;
+#endif // ARC_ANNOTATIONS
 
   Changed = true;
   assert(OldCount != 0 && "Unreachable code?");
@@ -2644,12 +2649,6 @@ ObjCARCOpt::PerformCodePlacement(DenseMa
                             ReleasesToMove, Arg, KnownSafe,
                             AnyPairsCompletelyEliminated);
 
-#ifdef ARC_ANNOTATIONS
-    // Do not move calls if ARC annotations are requested. If we were to move
-    // calls in this case, we would not be able
-    PerformMoveCalls = PerformMoveCalls && !EnableARCAnnotations;
-#endif // ARC_ANNOTATIONS
-
     if (PerformMoveCalls) {
       // Ok, everything checks out and we're all set. Let's move/delete some
       // code!





More information about the llvm-commits mailing list