LLVM  8.0.1
Namespaces | Enumerations | Functions
ObjCARCInstKind.h File Reference
#include "llvm/IR/Function.h"
#include "llvm/IR/Intrinsics.h"
#include "llvm/IR/Instructions.h"
Include dependency graph for ObjCARCInstKind.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Namespaces

 llvm
 This class represents lattice values for constants.
 
 llvm::objcarc
 

Enumerations

enum  llvm::objcarc::ARCInstKind {
  llvm::objcarc::ARCInstKind::Retain, llvm::objcarc::ARCInstKind::RetainRV, llvm::objcarc::ARCInstKind::ClaimRV, llvm::objcarc::ARCInstKind::RetainBlock,
  llvm::objcarc::ARCInstKind::Release, llvm::objcarc::ARCInstKind::Autorelease, llvm::objcarc::ARCInstKind::AutoreleaseRV, llvm::objcarc::ARCInstKind::AutoreleasepoolPush,
  llvm::objcarc::ARCInstKind::AutoreleasepoolPop, llvm::objcarc::ARCInstKind::NoopCast, llvm::objcarc::ARCInstKind::FusedRetainAutorelease, llvm::objcarc::ARCInstKind::FusedRetainAutoreleaseRV,
  llvm::objcarc::ARCInstKind::LoadWeakRetained, llvm::objcarc::ARCInstKind::StoreWeak, llvm::objcarc::ARCInstKind::InitWeak, llvm::objcarc::ARCInstKind::LoadWeak,
  llvm::objcarc::ARCInstKind::MoveWeak, llvm::objcarc::ARCInstKind::CopyWeak, llvm::objcarc::ARCInstKind::DestroyWeak, llvm::objcarc::ARCInstKind::StoreStrong,
  llvm::objcarc::ARCInstKind::IntrinsicUser, llvm::objcarc::ARCInstKind::CallOrUser, llvm::objcarc::ARCInstKind::Call, llvm::objcarc::ARCInstKind::User,
  llvm::objcarc::ARCInstKind::None
}
 Equivalence classes of instructions in the ARC Model. More...
 

Functions

raw_ostreamllvm::objcarc::operator<< (raw_ostream &OS, const ARCInstKind Class)
 
bool llvm::objcarc::IsUser (ARCInstKind Class)
 Test if the given class is a kind of user. More...
 
bool llvm::objcarc::IsRetain (ARCInstKind Class)
 Test if the given class is objc_retain or equivalent. More...
 
bool llvm::objcarc::IsAutorelease (ARCInstKind Class)
 Test if the given class is objc_autorelease or equivalent. More...
 
bool llvm::objcarc::IsForwarding (ARCInstKind Class)
 Test if the given class represents instructions which return their argument verbatim. More...
 
bool llvm::objcarc::IsNoopOnNull (ARCInstKind Class)
 Test if the given class represents instructions which do nothing if passed a null pointer. More...
 
bool llvm::objcarc::IsAlwaysTail (ARCInstKind Class)
 Test if the given class represents instructions which are always safe to mark with the "tail" keyword. More...
 
bool llvm::objcarc::IsNeverTail (ARCInstKind Class)
 Test if the given class represents instructions which are never safe to mark with the "tail" keyword. More...
 
bool llvm::objcarc::IsNoThrow (ARCInstKind Class)
 Test if the given class represents instructions which are always safe to mark with the nounwind attribute. More...
 
bool llvm::objcarc::CanInterruptRV (ARCInstKind Class)
 Test whether the given instruction can autorelease any pointer or cause an autoreleasepool pop. More...
 
ARCInstKind llvm::objcarc::GetFunctionClass (const Function *F)
 Determine if F is one of the special known Functions. More...
 
ARCInstKind llvm::objcarc::GetBasicARCInstKind (const Value *V)
 Determine which objc runtime call instruction class V belongs to. More...
 
ARCInstKind llvm::objcarc::GetARCInstKind (const Value *V)
 Map V to its ARCInstKind equivalence class. More...
 
bool llvm::objcarc::CanDecrementRefCount (ARCInstKind Kind)
 Returns false if conservatively we can prove that any instruction mapped to this kind can not decrement ref counts. More...