diff options
author | Dan Gohman <gohman@apple.com> | 2012-04-19 21:50:46 +0000 |
---|---|---|
committer | Dan Gohman <gohman@apple.com> | 2012-04-19 21:50:46 +0000 |
commit | 8b74e5afda780d05a46c1a35f46ebfd625e41f1a (patch) | |
tree | 54e9ec49191f598bfad1b303089c891e6d431111 /lib/Transforms | |
parent | c8969fd2919ac99bfd2fa07a6885659d804101c6 (diff) |
Avoid a bug in the path count computation, preventing an infinite
loop repeatedlt making the same change. This is for rdar://11256239.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@155160 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Transforms')
-rw-r--r-- | lib/Transforms/Scalar/ObjCARC.cpp | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/lib/Transforms/Scalar/ObjCARC.cpp b/lib/Transforms/Scalar/ObjCARC.cpp index 29234da644..a5ccfec9a0 100644 --- a/lib/Transforms/Scalar/ObjCARC.cpp +++ b/lib/Transforms/Scalar/ObjCARC.cpp @@ -3379,7 +3379,7 @@ ObjCARCOpt::PerformCodePlacement(DenseMap<const BasicBlock *, BBState> // Ok, everything checks out and we're all set. Let's move some code! Changed = true; - AnyPairsCompletelyEliminated = NewCount == 0; + AnyPairsCompletelyEliminated = OldCount != 0 && NewCount == 0; NumRRs += OldCount - NewCount; MoveCalls(Arg, RetainsToMove, ReleasesToMove, Retains, Releases, DeadInsts, M); |