37#define DEBUG_TYPE "objc-arc-expand"
53 LLVM_DEBUG(
dbgs() <<
"ObjCARCExpand: Visiting Function: " <<
F.getName()
76 Inst.replaceAllUsesWith(
Value);
Expand Atomic instructions
static bool runImpl(Function &F, const TargetLowering &TLI, AssumptionCache *AC)
This header defines various interfaces for pass management in LLVM.
This file defines common analysis utilities used by the ObjC ARC Optimizer.
Represents analyses that only rely on functions' control flow.
A set of analyses that are preserved following a run of a transformation pass.
static PreservedAnalyses all()
Construct a special preserved set that preserves all passes.
PreservedAnalyses & preserveSet()
Mark an analysis set as preserved.
LLVM Value Representation.
bool ModuleHasARC(const Module &M)
Test if the given module looks interesting to run ARC optimization on.
@ FusedRetainAutorelease
objc_retainAutorelease
@ Autorelease
objc_autorelease
@ RetainRV
objc_retainAutoreleasedReturnValue
@ FusedRetainAutoreleaseRV
objc_retainAutoreleaseReturnValue
@ AutoreleaseRV
objc_autoreleaseReturnValue
bool EnableARCOpts
A handy option to enable/disable all ARC Optimizations.
ARCInstKind GetBasicARCInstKind(const Value *V)
Determine which objc runtime call instruction class V belongs to.
This is an optimization pass for GlobalISel generic memory operations.
LLVM_ABI raw_ostream & dbgs()
dbgs() - This returns a reference to a raw_ostream for debugging messages.
decltype(auto) cast(const From &Val)
cast<X> - Return the argument parameter cast to the specified type.
AnalysisManager< Function > FunctionAnalysisManager
Convenience typedef for the Function analysis manager.
LLVM_ABI PreservedAnalyses run(Function &M, FunctionAnalysisManager &AM)