22 #ifndef LLVM_LIB_TRANSFORMS_OBJCARC_ARCRUNTIMEENTRYPOINTS_H
23 #define LLVM_LIB_TRANSFORMS_OBJCARC_ARCRUNTIMEENTRYPOINTS_H
58 AutoreleaseRV =
nullptr;
61 RetainBlock =
nullptr;
62 Autorelease =
nullptr;
63 StoreStrong =
nullptr;
65 UnsafeClaimRV =
nullptr;
66 RetainAutorelease =
nullptr;
67 RetainAutoreleaseRV =
nullptr;
71 assert(TheModule !=
nullptr &&
"Not initialized.");
75 return getIntrinsicEntryPoint(AutoreleaseRV,
76 Intrinsic::objc_autoreleaseReturnValue);
78 return getIntrinsicEntryPoint(Release, Intrinsic::objc_release);
80 return getIntrinsicEntryPoint(Retain, Intrinsic::objc_retain);
82 return getIntrinsicEntryPoint(RetainBlock, Intrinsic::objc_retainBlock);
84 return getIntrinsicEntryPoint(Autorelease, Intrinsic::objc_autorelease);
86 return getIntrinsicEntryPoint(StoreStrong, Intrinsic::objc_storeStrong);
88 return getIntrinsicEntryPoint(RetainRV,
89 Intrinsic::objc_retainAutoreleasedReturnValue);
91 return getIntrinsicEntryPoint(
92 UnsafeClaimRV, Intrinsic::objc_unsafeClaimAutoreleasedReturnValue);
94 return getIntrinsicEntryPoint(RetainAutorelease,
95 Intrinsic::objc_retainAutorelease);
97 return getIntrinsicEntryPoint(RetainAutoreleaseRV,
98 Intrinsic::objc_retainAutoreleaseReturnValue);
106 Module *TheModule =
nullptr;
133 Function *RetainAutorelease =
nullptr;
136 Function *RetainAutoreleaseRV =
nullptr;
150 #endif // LLVM_LIB_TRANSFORMS_OBJCARC_ARCRUNTIMEENTRYPOINTS_H