LLVM
8.0.1
|
This file defines ObjC ARC optimizations. More...
#include "ObjCARC.h"
#include "llvm/IR/Function.h"
#include "llvm/IR/InstIterator.h"
#include "llvm/IR/Instruction.h"
#include "llvm/IR/Instructions.h"
#include "llvm/IR/Value.h"
#include "llvm/Pass.h"
#include "llvm/PassAnalysisSupport.h"
#include "llvm/PassRegistry.h"
#include "llvm/PassSupport.h"
#include "llvm/Support/Casting.h"
#include "llvm/Support/Debug.h"
#include "llvm/Support/raw_ostream.h"
Go to the source code of this file.
Namespaces | |
llvm | |
This class represents lattice values for constants. | |
Macros | |
#define | DEBUG_TYPE "objc-arc-expand" |
Functions | |
INITIALIZE_PASS (ObjCARCExpand, "objc-arc-expand", "ObjC ARC expansion", false, false) Pass *llvm | |
This file defines ObjC ARC optimizations.
ARC stands for Automatic Reference Counting and is a system for managing reference counts for objects in Objective C.
This specific file deals with early optimizations which perform certain cleanup operations.
WARNING: This file knows about certain library functions. It recognizes them by name, and hardwires knowledge of their semantics.
WARNING: This file knows about how certain Objective-C library functions are used. Naive LLVM IR transformations which would otherwise be behavior-preserving may break these assumptions.
Definition in file ObjCARCExpand.cpp.
Definition at line 40 of file ObjCARCExpand.cpp.
Definition at line 68 of file ObjCARCExpand.cpp.
References llvm::objcarc::Autorelease, llvm::objcarc::AutoreleaseRV, llvm::dbgs(), E, llvm::objcarc::EnableARCOpts, F(), llvm::objcarc::FusedRetainAutorelease, llvm::objcarc::FusedRetainAutoreleaseRV, llvm::objcarc::GetBasicARCInstKind(), llvm::Value::getName(), I, llvm::inst_begin(), llvm::inst_end(), LLVM_DEBUG, llvm::objcarc::ModuleHasARC(), llvm::Value::replaceAllUsesWith(), llvm::objcarc::Retain, llvm::objcarc::RetainRV, runOnFunction(), and llvm::AnalysisUsage::setPreservesCFG().