[objc-arc] Move initialization of ARCMDKindCache into the class itself. I also made it lazy.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@232348 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Michael Gottesman
2015-03-16 07:02:27 +00:00
parent 5b69462b3a
commit 927900a50e
6 changed files with 54 additions and 21 deletions

View File

@@ -174,7 +174,8 @@ bool BottomUpPtrState::InitBottomUp(ARCMDKindCache &Cache, Instruction *I) {
NestingDetected = true;
}
MDNode *ReleaseMetadata = I->getMetadata(Cache.ImpreciseReleaseMDKind);
MDNode *ReleaseMetadata =
I->getMetadata(Cache.get(ARCMDKindID::ImpreciseRelease));
Sequence NewSeq = ReleaseMetadata ? S_MovableRelease : S_Release;
ResetSequenceProgress(NewSeq);
SetReleaseMetadata(ReleaseMetadata);
@@ -319,7 +320,8 @@ bool TopDownPtrState::MatchWithRelease(ARCMDKindCache &Cache,
Sequence OldSeq = GetSeq();
MDNode *ReleaseMetadata = Release->getMetadata(Cache.ImpreciseReleaseMDKind);
MDNode *ReleaseMetadata =
Release->getMetadata(Cache.get(ARCMDKindID::ImpreciseRelease));
switch (OldSeq) {
case S_Retain: