[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.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@180693 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Michael Gottesman 2013-04-29 05:13:13 +00:00
parent d922518844
commit e056397e81

View File

@ -2581,6 +2581,11 @@ ObjCARCOpt::ConnectTDBUTraversals(DenseMap<const BasicBlock *, BBState>
// long as the existing imbalances are maintained. // long as the existing imbalances are maintained.
if (OldDelta != 0) if (OldDelta != 0)
return false; return false;
#ifdef ARC_ANNOTATIONS
// Do not move calls if ARC annotations are requested.
return false;
#endif // ARC_ANNOTATIONS
Changed = true; Changed = true;
assert(OldCount != 0 && "Unreachable code?"); assert(OldCount != 0 && "Unreachable code?");
@ -2644,12 +2649,6 @@ ObjCARCOpt::PerformCodePlacement(DenseMap<const BasicBlock *, BBState>
ReleasesToMove, Arg, KnownSafe, ReleasesToMove, Arg, KnownSafe,
AnyPairsCompletelyEliminated); 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) { if (PerformMoveCalls) {
// Ok, everything checks out and we're all set. Let's move/delete some // Ok, everything checks out and we're all set. Let's move/delete some
// code! // code!