summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorMichael Gottesman <mgottesman@apple.com>2013-06-21 06:59:02 +0000
committerMichael Gottesman <mgottesman@apple.com>2013-06-21 06:59:02 +0000
commit00dacc44f5f3f3a67d4c7af6146d5584f709bc78 (patch)
tree56d926ffd6f0dd1a63be55dbfb6285f8a9f36ef0 /lib
parent36d9cda15d5a1eb81a5641935be84d342127698d (diff)
downloadllvm-00dacc44f5f3f3a67d4c7af6146d5584f709bc78.tar.gz
llvm-00dacc44f5f3f3a67d4c7af6146d5584f709bc78.tar.bz2
llvm-00dacc44f5f3f3a67d4c7af6146d5584f709bc78.tar.xz
[obcjarcopts] Encapsulate PtrState.RRI.KnownSafe in the methods PtrState.IsKnownSafe and PtrState.SetKnownSafe.
This is apart of a series of patches to encapsulate PtrState.RRI and make PtrState.RRI a private field of PtrState. *NOTE* This is actually the second commit in the patch stream. I should have put this note on the first such commit r184528. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184532 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib')
-rw-r--r--lib/Transforms/ObjCARC/ObjCARCOpts.cpp21
1 files changed, 15 insertions, 6 deletions
diff --git a/lib/Transforms/ObjCARC/ObjCARCOpts.cpp b/lib/Transforms/ObjCARC/ObjCARCOpts.cpp
index 8a182199f0..56bcd1068b 100644
--- a/lib/Transforms/ObjCARC/ObjCARCOpts.cpp
+++ b/lib/Transforms/ObjCARC/ObjCARCOpts.cpp
@@ -530,6 +530,15 @@ namespace {
PtrState() : KnownPositiveRefCount(false), Partial(false),
Seq(S_None) {}
+
+ bool IsKnownSafe() const {
+ return RRI.KnownSafe;
+ }
+
+ void SetKnownSafe(const bool NewValue) {
+ RRI.KnownSafe = NewValue;
+ }
+
void SetKnownPositiveRefCount() {
DEBUG(dbgs() << "Setting Known Positive.\n");
KnownPositiveRefCount = true;
@@ -1723,7 +1732,7 @@ static void CheckForUseCFGHazard(const Sequence SuccSSeq,
bool &ShouldContinue) {
switch (SuccSSeq) {
case S_CanRelease: {
- if (!S.RRI.KnownSafe && !SuccSRRIKnownSafe) {
+ if (!S.IsKnownSafe() && !SuccSRRIKnownSafe) {
S.ClearSequenceProgress();
break;
}
@@ -1737,7 +1746,7 @@ static void CheckForUseCFGHazard(const Sequence SuccSSeq,
case S_Stop:
case S_Release:
case S_MovableRelease:
- if (!S.RRI.KnownSafe && !SuccSRRIKnownSafe)
+ if (!S.IsKnownSafe() && !SuccSRRIKnownSafe)
AllSuccsHaveSame = false;
else
NotAllSeqEqualButKnownSafe = true;
@@ -1766,7 +1775,7 @@ static void CheckForCanReleaseCFGHazard(const Sequence SuccSSeq,
case S_Release:
case S_MovableRelease:
case S_Use:
- if (!S.RRI.KnownSafe && !SuccSRRIKnownSafe)
+ if (!S.IsKnownSafe() && !SuccSRRIKnownSafe)
AllSuccsHaveSame = false;
else
NotAllSeqEqualButKnownSafe = true;
@@ -1830,7 +1839,7 @@ ObjCARCOpt::CheckForCFGHazards(const BasicBlock *BB,
// If we have S_Use or S_CanRelease, perform our check for cfg hazard
// checks.
- const bool SuccSRRIKnownSafe = SuccS.RRI.KnownSafe;
+ const bool SuccSRRIKnownSafe = SuccS.IsKnownSafe();
// *NOTE* We do not use Seq from above here since we are allowing for
// S.GetSeq() to change while we are visiting basic blocks.
@@ -1908,7 +1917,7 @@ ObjCARCOpt::VisitInstructionBottomUp(Instruction *Inst,
ANNOTATE_BOTTOMUP(Inst, Arg, S.GetSeq(), NewSeq);
S.ResetSequenceProgress(NewSeq);
S.RRI.ReleaseMetadata = ReleaseMetadata;
- S.RRI.KnownSafe = S.HasKnownPositiveRefCount();
+ S.SetKnownSafe(S.HasKnownPositiveRefCount());
S.RRI.IsTailCallRelease = cast<CallInst>(Inst)->isTailCall();
S.RRI.Calls.insert(Inst);
S.SetKnownPositiveRefCount();
@@ -2166,7 +2175,7 @@ ObjCARCOpt::VisitInstructionTopDown(Instruction *Inst,
ANNOTATE_TOPDOWN(Inst, Arg, S.GetSeq(), S_Retain);
S.ResetSequenceProgress(S_Retain);
- S.RRI.KnownSafe = S.HasKnownPositiveRefCount();
+ S.SetKnownSafe(S.HasKnownPositiveRefCount());
S.RRI.Calls.insert(Inst);
}