LLVM: include/llvm/Analysis/ObjCARCInstKind.h Source File (original) (raw)
1
2
3
4
5
6
7
8
9#ifndef LLVM_ANALYSIS_OBJCARCINSTKIND_H
10#define LLVM_ANALYSIS_OBJCARCINSTKIND_H
11
13
14namespace llvm {
16
17
18
19
20
21
22
23
24
25
26
27
54};
55
57
58
60
61
63
64
66
67
68
70
71
72
74
75
76
78
79
80
82
83
84
86
87
88
90
91
92
94
95
96
98
99
100
101
102
103
106 if (const Function *F = CI->getCalledFunction())
108
110 }
111
112
114}
115
116
118
119
120
122
123}
124}
125
126#endif
This class represents a function call, abstracting a target machine's calling convention.
LLVM Value Representation.
This class implements an extremely fast bulk output stream that can only output to a stream.
bool IsUser(ARCInstKind Class)
Test if the given class is a kind of user.
raw_ostream & operator<<(raw_ostream &OS, const ARCInstKind Class)
bool IsRetain(ARCInstKind Class)
Test if the given class is objc_retain or equivalent.
bool IsNeverTail(ARCInstKind Class)
Test if the given class represents instructions which are never safe to mark with the "tail" keyword.
bool IsAlwaysTail(ARCInstKind Class)
Test if the given class represents instructions which are always safe to mark with the "tail" keyword...
bool IsAutorelease(ARCInstKind Class)
Test if the given class is objc_autorelease or equivalent.
ARCInstKind
Equivalence classes of instructions in the ARC Model.
Definition ObjCARCInstKind.h:28
@ DestroyWeak
objc_destroyWeak (derived)
Definition ObjCARCInstKind.h:47
@ FusedRetainAutorelease
objc_retainAutorelease
Definition ObjCARCInstKind.h:39
@ CallOrUser
could call objc_release and/or "use" pointers
Definition ObjCARCInstKind.h:50
@ StoreStrong
objc_storeStrong (derived)
Definition ObjCARCInstKind.h:48
@ LoadWeakRetained
objc_loadWeakRetained (primitive)
Definition ObjCARCInstKind.h:41
@ StoreWeak
objc_storeWeak (primitive)
Definition ObjCARCInstKind.h:42
@ AutoreleasepoolPop
objc_autoreleasePoolPop
Definition ObjCARCInstKind.h:37
@ AutoreleasepoolPush
objc_autoreleasePoolPush
Definition ObjCARCInstKind.h:36
@ InitWeak
objc_initWeak (derived)
Definition ObjCARCInstKind.h:43
@ Autorelease
objc_autorelease
Definition ObjCARCInstKind.h:34
@ LoadWeak
objc_loadWeak (derived)
Definition ObjCARCInstKind.h:44
@ None
anything that is inert from an ARC perspective.
Definition ObjCARCInstKind.h:53
@ MoveWeak
objc_moveWeak (derived)
Definition ObjCARCInstKind.h:45
@ User
could "use" a pointer
Definition ObjCARCInstKind.h:52
@ RetainRV
objc_retainAutoreleasedReturnValue
Definition ObjCARCInstKind.h:30
@ RetainBlock
objc_retainBlock
Definition ObjCARCInstKind.h:32
@ FusedRetainAutoreleaseRV
objc_retainAutoreleaseReturnValue
Definition ObjCARCInstKind.h:40
@ Retain
objc_retain
Definition ObjCARCInstKind.h:29
@ Release
objc_release
Definition ObjCARCInstKind.h:33
@ AutoreleaseRV
objc_autoreleaseReturnValue
Definition ObjCARCInstKind.h:35
@ Call
could call objc_release
Definition ObjCARCInstKind.h:51
@ CopyWeak
objc_copyWeak (derived)
Definition ObjCARCInstKind.h:46
@ NoopCast
objc_retainedObject, etc.
Definition ObjCARCInstKind.h:38
@ UnsafeClaimRV
objc_unsafeClaimAutoreleasedReturnValue
Definition ObjCARCInstKind.h:31
@ IntrinsicUser
llvm.objc.clang.arc.use
Definition ObjCARCInstKind.h:49
ARCInstKind GetFunctionClass(const Function *F)
Determine if F is one of the special known Functions.
bool IsForwarding(ARCInstKind Class)
Test if the given class represents instructions which return their argument verbatim.
ARCInstKind GetBasicARCInstKind(const Value *V)
Determine which objc runtime call instruction class V belongs to.
Definition ObjCARCInstKind.h:104
ARCInstKind GetARCInstKind(const Value *V)
Map V to its ARCInstKind equivalence class.
bool CanInterruptRV(ARCInstKind Class)
Test whether the given instruction can autorelease any pointer or cause an autoreleasepool pop.
bool IsNoThrow(ARCInstKind Class)
Test if the given class represents instructions which are always safe to mark with the nounwind attri...
bool CanDecrementRefCount(ARCInstKind Kind)
Returns false if conservatively we can prove that any instruction mapped to this kind can not decreme...
bool IsNoopOnGlobal(ARCInstKind Class)
Test if the given class represents instructions which do nothing if passed a global variable.
bool IsNoopOnNull(ARCInstKind Class)
Test if the given class represents instructions which do nothing if passed a null pointer.
This is an optimization pass for GlobalISel generic memory operations.
decltype(auto) dyn_cast(const From &Val)
dyn_cast - Return the argument parameter cast to the specified type.
bool isa(const From &Val)
isa - Return true if the parameter to the template is an instance of one of the template type argu...