diff options
author | Michael Gottesman <mgottesman@apple.com> | 2013-03-28 20:11:30 +0000 |
---|---|---|
committer | Michael Gottesman <mgottesman@apple.com> | 2013-03-28 20:11:30 +0000 |
commit | 3832eff354eea32f92acf3f5176c6213cb65848b (patch) | |
tree | af7db708f8621603db5611a92d0026ec0f747870 /lib/Transforms/ObjCARC | |
parent | 0d92a3c600b453f3aa4f50ba0189ccb1dbbc1580 (diff) | |
download | external_llvm-3832eff354eea32f92acf3f5176c6213cb65848b.zip external_llvm-3832eff354eea32f92acf3f5176c6213cb65848b.tar.gz external_llvm-3832eff354eea32f92acf3f5176c6213cb65848b.tar.bz2 |
Non optimizable objc_retainBlock calls are not forwarding.
Since we handle optimizable objc_retainBlocks through strength reduction
in OptimizableIndividualCalls, we know that all code after that point
will only see non-optimizable objc_retainBlock calls. IsForwarding is
only called by functions after that point, so it is ok to just classify
objc_retainBlock as non-forwarding.
<rdar://problem/13249661>.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@178285 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Transforms/ObjCARC')
-rw-r--r-- | lib/Transforms/ObjCARC/ObjCARC.h | 3 |
1 files changed, 0 insertions, 3 deletions
diff --git a/lib/Transforms/ObjCARC/ObjCARC.h b/lib/Transforms/ObjCARC/ObjCARC.h index ba98e0a..614fa29 100644 --- a/lib/Transforms/ObjCARC/ObjCARC.h +++ b/lib/Transforms/ObjCARC/ObjCARC.h @@ -120,13 +120,10 @@ static inline bool IsAutorelease(InstructionClass Class) { /// \brief Test if the given class represents instructions which return their /// argument verbatim. static inline bool IsForwarding(InstructionClass Class) { - // objc_retainBlock technically doesn't always return its argument - // verbatim, but it doesn't matter for our purposes here. return Class == IC_Retain || Class == IC_RetainRV || Class == IC_Autorelease || Class == IC_AutoreleaseRV || - Class == IC_RetainBlock || Class == IC_NoopCast; } |