LLVM 20.0.0git
Namespaces | Enumerations | Functions
ObjCARCInstKind.h File Reference
#include "llvm/IR/Instructions.h"

Go to the source code of this file.

Namespaces

namespace  llvm
 This is an optimization pass for GlobalISel generic memory operations.
 
namespace  llvm::objcarc
 

Enumerations

enum class  llvm::objcarc::ARCInstKind {
  llvm::objcarc::Retain , llvm::objcarc::RetainRV , llvm::objcarc::UnsafeClaimRV , llvm::objcarc::RetainBlock ,
  llvm::objcarc::Release , llvm::objcarc::Autorelease , llvm::objcarc::AutoreleaseRV , llvm::objcarc::AutoreleasepoolPush ,
  llvm::objcarc::AutoreleasepoolPop , llvm::objcarc::NoopCast , llvm::objcarc::FusedRetainAutorelease , llvm::objcarc::FusedRetainAutoreleaseRV ,
  llvm::objcarc::LoadWeakRetained , llvm::objcarc::StoreWeak , llvm::objcarc::InitWeak , llvm::objcarc::LoadWeak ,
  llvm::objcarc::MoveWeak , llvm::objcarc::CopyWeak , llvm::objcarc::DestroyWeak , llvm::objcarc::StoreStrong ,
  llvm::objcarc::IntrinsicUser , llvm::objcarc::CallOrUser , llvm::objcarc::Call , llvm::objcarc::User ,
  llvm::objcarc::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.
 
bool llvm::objcarc::IsRetain (ARCInstKind Class)
 Test if the given class is objc_retain or equivalent.
 
bool llvm::objcarc::IsAutorelease (ARCInstKind Class)
 Test if the given class is objc_autorelease or equivalent.
 
bool llvm::objcarc::IsForwarding (ARCInstKind Class)
 Test if the given class represents instructions which return their argument verbatim.
 
bool llvm::objcarc::IsNoopOnNull (ARCInstKind Class)
 Test if the given class represents instructions which do nothing if passed a null pointer.
 
bool llvm::objcarc::IsNoopOnGlobal (ARCInstKind Class)
 Test if the given class represents instructions which do nothing if passed a global variable.
 
bool llvm::objcarc::IsAlwaysTail (ARCInstKind Class)
 Test if the given class represents instructions which are always safe to mark with the "tail" keyword.
 
bool llvm::objcarc::IsNeverTail (ARCInstKind Class)
 Test if the given class represents instructions which are never safe to mark with the "tail" keyword.
 
bool llvm::objcarc::IsNoThrow (ARCInstKind Class)
 Test if the given class represents instructions which are always safe to mark with the nounwind attribute.
 
bool llvm::objcarc::CanInterruptRV (ARCInstKind Class)
 Test whether the given instruction can autorelease any pointer or cause an autoreleasepool pop.
 
ARCInstKind llvm::objcarc::GetFunctionClass (const Function *F)
 Determine if F is one of the special known Functions.
 
ARCInstKind llvm::objcarc::GetBasicARCInstKind (const Value *V)
 Determine which objc runtime call instruction class V belongs to.
 
ARCInstKind llvm::objcarc::GetARCInstKind (const Value *V)
 Map V to its ARCInstKind equivalence class.
 
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.