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

30 RetainRV,

31 UnsafeClaimRV,

38 NoopCast,

42 StoreWeak,

43 InitWeak,

44 LoadWeak,

45 MoveWeak,

46 CopyWeak,

50 CallOrUser,

51 Call,

52 User,

53 None

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...