summaryrefslogtreecommitdiffstats
path: root/gnu/llvm/lib/Transforms/ObjCARC/DependencyAnalysis.h
diff options
context:
space:
mode:
authorpatrick <patrick@openbsd.org>2020-08-03 15:06:44 +0000
committerpatrick <patrick@openbsd.org>2020-08-03 15:06:44 +0000
commitb64793999546ed8adebaeebd9d8345d18db8927d (patch)
tree4357c27b561d73b0e089727c6ed659f2ceff5f47 /gnu/llvm/lib/Transforms/ObjCARC/DependencyAnalysis.h
parentAdd support for UTF-8 DISPLAY-HINTs with octet length. For now only (diff)
downloadwireguard-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.h89
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