1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-21 20:12:56 +02:00

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

llvm-svn: 180693
This commit is contained in:
Michael Gottesman 2013-04-29 05:13:13 +00:00
parent 0276e2b56d
commit 740a406cde

View File

@ -2581,6 +2581,11 @@ ObjCARCOpt::ConnectTDBUTraversals(DenseMap<const BasicBlock *, BBState>
// 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(DenseMap<const BasicBlock *, BBState>
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!