Go to the documentation of this file.
37 #define DEBUG_TYPE "objc-arc-expand"
53 LLVM_DEBUG(
dbgs() <<
"ObjCARCExpand: Visiting Function: " <<
F.getName()
71 Value *
Value = cast<CallInst>(&Inst)->getArgOperand(0);
76 Inst.replaceAllUsesWith(
Value);
ARCInstKind GetBasicARCInstKind(const Value *V)
Determine which objc runtime call instruction class V belongs to.
A set of analyses that are preserved following a run of a transformation pass.
This is an optimization pass for GlobalISel generic memory operations.
@ Autorelease
objc_autorelease
raw_ostream & dbgs()
dbgs() - This returns a reference to a raw_ostream for debugging messages.
@ RetainRV
objc_retainAutoreleasedReturnValue
inst_range instructions(Function *F)
@ FusedRetainAutorelease
objc_retainAutorelease
bool EnableARCOpts
A handy option to enable/disable all ARC Optimizations.
PreservedAnalyses run(Function &M, FunctionAnalysisManager &AM)
Represents analyses that only rely on functions' control flow.
static PreservedAnalyses all()
Construct a special preserved set that preserves all passes.
@ FusedRetainAutoreleaseRV
objc_retainAutoreleaseReturnValue
bool ModuleHasARC(const Module &M)
Test if the given module looks interesting to run ARC optimization on.
static bool runImpl(Function &F, const TargetLowering &TLI)
void preserveSet()
Mark an analysis set as preserved.
A container for analyses that lazily runs them and caches their results.
LLVM Value Representation.
@ AutoreleaseRV
objc_autoreleaseReturnValue