summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Transforms/ObjCARC/PtrState.h
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/lib/Transforms/ObjCARC/PtrState.h')
-rw-r--r--llvm/lib/Transforms/ObjCARC/PtrState.h13
1 files changed, 11 insertions, 2 deletions
diff --git a/llvm/lib/Transforms/ObjCARC/PtrState.h b/llvm/lib/Transforms/ObjCARC/PtrState.h
index d49c909fe50..299acff884c 100644
--- a/llvm/lib/Transforms/ObjCARC/PtrState.h
+++ b/llvm/lib/Transforms/ObjCARC/PtrState.h
@@ -17,6 +17,7 @@
#ifndef LLVM_LIB_TRANSFORMS_OBJCARC_PTRSTATE_H
#define LLVM_LIB_TRANSFORMS_OBJCARC_PTRSTATE_H
+#include "ARCInstKind.h"
#include "llvm/ADT/SmallPtrSet.h"
#include "llvm/IR/Instruction.h"
#include "llvm/IR/Value.h"
@@ -26,6 +27,8 @@
namespace llvm {
namespace objcarc {
+struct ARCMDKindCache;
+
/// \enum Sequence
///
/// \brief A sequence of states that a pointer may go through in which an
@@ -160,14 +163,20 @@ public:
const RRInfo &GetRRInfo() const { return RRI; }
};
-/// This is currently a stub.
struct BottomUpPtrState : PtrState {
BottomUpPtrState() : PtrState() {}
+
+ /// (Re-)Initialize this bottom up pointer returning true if we detected a
+ /// pointer with nested releases.
+ bool InitBottomUp(ARCMDKindCache &Cache, Instruction *I);
};
-/// This is currently a stub.
struct TopDownPtrState : PtrState {
TopDownPtrState() : PtrState() {}
+
+ /// (Re-)Initialize this bottom up pointer returning true if we detected a
+ /// pointer with nested releases.
+ bool InitTopDown(ARCInstKind Kind, Instruction *I);
};
} // end namespace objcarc
OpenPOWER on IntegriCloud