22 #ifndef LLVM_TRANSFORMS_SCALAR_ARCRUNTIMEENTRYPOINTS_H
23 #define LLVM_TRANSFORMS_SCALAR_ARCRUNTIMEENTRYPOINTS_H
55 RetainAutoreleaseRV(0) { }
68 RetainAutorelease = 0;
69 RetainAutoreleaseRV = 0;
73 assert(TheModule != 0 &&
"Not initialized.");
77 return getI8XRetI8XEntryPoint(AutoreleaseRV,
78 "objc_autoreleaseReturnValue",
true);
80 return getVoidRetI8XEntryPoint(Release,
"objc_release");
82 return getI8XRetI8XEntryPoint(Retain,
"objc_retain",
true);
84 return getI8XRetI8XEntryPoint(RetainBlock,
"objc_retainBlock",
false);
86 return getI8XRetI8XEntryPoint(Autorelease,
"objc_autorelease",
true);
88 return getI8XRetI8XXI8XEntryPoint(StoreStrong,
"objc_storeStrong");
90 return getI8XRetI8XEntryPoint(RetainRV,
91 "objc_retainAutoreleasedReturnValue",
true);
93 return getI8XRetI8XEntryPoint(RetainAutorelease,
"objc_retainAutorelease",
96 return getI8XRetI8XEntryPoint(RetainAutoreleaseRV,
97 "objc_retainAutoreleaseReturnValue",
true);
143 bool NoUnwind =
false) {
149 Type *Params[] = { I8X };
151 AttributeSet Attr = AttributeSet();
154 Attr = Attr.addAttribute(C, AttributeSet::FunctionIndex,
168 Type *Params[] = { I8XX, I8X };
171 AttributeSet().addAttribute(C, AttributeSet::FunctionIndex,
186 #endif // LLVM_TRANSFORMS_SCALAR_ARCRUNTIMEENTRYPOINTS_H
COFF::RelocationTypeX86 Type
The main container class for the LLVM Intermediate Representation.
#define llvm_unreachable(msg)
Function creates no aliases of pointer.
static FunctionType * get(Type *Result, ArrayRef< Type * > Params, bool isVarArg)
Constant * getOrInsertFunction(StringRef Name, FunctionType *T, AttributeSet AttributeList)
LLVM Constant Representation.
static Type * getVoidTy(LLVMContext &C)
Function doesn't unwind stack.
static PointerType * getUnqual(Type *ElementType)
AttributeSet addAttribute(LLVMContext &C, unsigned Index, Attribute::AttrKind Attr) const
Add an attribute to the attribute set at the given index. Since attribute sets are immutable...
void Initialize(Module *M)
static IntegerType * getInt8Ty(LLVMContext &C)
LLVMContext & getContext() const