diff options
| author | 2020-08-03 15:06:44 +0000 | |
|---|---|---|
| committer | 2020-08-03 15:06:44 +0000 | |
| commit | b64793999546ed8adebaeebd9d8345d18db8927d (patch) | |
| tree | 4357c27b561d73b0e089727c6ed659f2ceff5f47 /gnu/llvm/lib/Transforms/ObjCARC/DependencyAnalysis.h | |
| parent | Add support for UTF-8 DISPLAY-HINTs with octet length. For now only (diff) | |
| download | wireguard-openbsd-b64793999546ed8adebaeebd9d8345d18db8927d.tar.xz wireguard-openbsd-b64793999546ed8adebaeebd9d8345d18db8927d.zip | |
Remove LLVM 8.0.1 files.
Diffstat (limited to 'gnu/llvm/lib/Transforms/ObjCARC/DependencyAnalysis.h')
| -rw-r--r-- | gnu/llvm/lib/Transforms/ObjCARC/DependencyAnalysis.h | 89 |
1 files changed, 0 insertions, 89 deletions
diff --git a/gnu/llvm/lib/Transforms/ObjCARC/DependencyAnalysis.h b/gnu/llvm/lib/Transforms/ObjCARC/DependencyAnalysis.h deleted file mode 100644 index 0f13b02c806..00000000000 --- a/gnu/llvm/lib/Transforms/ObjCARC/DependencyAnalysis.h +++ /dev/null @@ -1,89 +0,0 @@ -//===- DependencyAnalysis.h - ObjC ARC Optimization ---*- C++ -*-----------===// -// -// The LLVM Compiler Infrastructure -// -// This file is distributed under the University of Illinois Open Source -// License. See LICENSE.TXT for details. -// -//===----------------------------------------------------------------------===// -/// \file -/// -/// This file declares special dependency analysis routines used in Objective C -/// ARC Optimizations. -/// -/// 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. -/// -//===----------------------------------------------------------------------===// - -#ifndef LLVM_LIB_TRANSFORMS_OBJCARC_DEPENDENCYANALYSIS_H -#define LLVM_LIB_TRANSFORMS_OBJCARC_DEPENDENCYANALYSIS_H - -#include "llvm/ADT/SmallPtrSet.h" -#include "llvm/Analysis/ObjCARCInstKind.h" - -namespace llvm { - class BasicBlock; - class Instruction; - class Value; -} - -namespace llvm { -namespace objcarc { - -class ProvenanceAnalysis; - -/// \enum DependenceKind -/// Defines different dependence kinds among various ARC constructs. -/// -/// There are several kinds of dependence-like concepts in use here. -/// -enum DependenceKind { - NeedsPositiveRetainCount, - AutoreleasePoolBoundary, - CanChangeRetainCount, - RetainAutoreleaseDep, ///< Blocks objc_retainAutorelease. - RetainAutoreleaseRVDep, ///< Blocks objc_retainAutoreleaseReturnValue. - RetainRVDep ///< Blocks objc_retainAutoreleasedReturnValue. -}; - -void FindDependencies(DependenceKind Flavor, - const Value *Arg, - BasicBlock *StartBB, Instruction *StartInst, - SmallPtrSetImpl<Instruction *> &DependingInstructions, - SmallPtrSetImpl<const BasicBlock *> &Visited, - ProvenanceAnalysis &PA); - -bool -Depends(DependenceKind Flavor, Instruction *Inst, const Value *Arg, - ProvenanceAnalysis &PA); - -/// Test whether the given instruction can "use" the given pointer's object in a -/// way that requires the reference count to be positive. -bool CanUse(const Instruction *Inst, const Value *Ptr, ProvenanceAnalysis &PA, - ARCInstKind Class); - -/// Test whether the given instruction can result in a reference count -/// modification (positive or negative) for the pointer's object. -bool CanAlterRefCount(const Instruction *Inst, const Value *Ptr, - ProvenanceAnalysis &PA, ARCInstKind Class); - -/// Returns true if we can not conservatively prove that Inst can not decrement -/// the reference count of Ptr. Returns false if we can. -bool CanDecrementRefCount(const Instruction *Inst, const Value *Ptr, - ProvenanceAnalysis &PA, ARCInstKind Class); - -static inline bool CanDecrementRefCount(const Instruction *Inst, - const Value *Ptr, - ProvenanceAnalysis &PA) { - return CanDecrementRefCount(Inst, Ptr, PA, GetARCInstKind(Inst)); -} - -} // namespace objcarc -} // namespace llvm - -#endif |
