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;
This file contains the simple types necessary to represent the attributes associated with functions a...
Machine Check Debug Module
assert(ImpDefSCC.getReg()==AMDGPU::SCC &&ImpDefSCC.isDef())
A Module instance is used to store all the information related to an LLVM module.
Declarations for ObjC runtime functions and constants.
ARCRuntimeEntryPoints()=default
Function * get(ARCRuntimeEntryPointKind kind)
#define llvm_unreachable(msg)
Marks that the current location is not supposed to be reachable.
Function * getOrInsertDeclaration(Module *M, ID id, ArrayRef< Type * > Tys={})
Look up the Function declaration of the intrinsic id in the Module M.
@ StoreStrong
objc_storeStrong (derived)
@ Autorelease
objc_autorelease
@ RetainRV
objc_retainAutoreleasedReturnValue
@ RetainBlock
objc_retainBlock
@ AutoreleaseRV
objc_autoreleaseReturnValue
@ UnsafeClaimRV
objc_unsafeClaimAutoreleasedReturnValue
This is an optimization pass for GlobalISel generic memory operations.