projects
/
oota-llvm.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Reference RegionPass to stop it being eliminated.
[oota-llvm.git]
/
include
/
llvm
/
AbstractTypeUser.h
diff --git
a/include/llvm/AbstractTypeUser.h
b/include/llvm/AbstractTypeUser.h
index 86862e790a14d819527d3416465ab83d560e64be..81f5c5c7680d87ef4b6f8b0fe76cc3963923287d 100644
(file)
--- a/
include/llvm/AbstractTypeUser.h
+++ b/
include/llvm/AbstractTypeUser.h
@@
-31,6
+31,7
@@
namespace llvm {
namespace llvm {
+class Value;
class Type;
class DerivedType;
template<typename T> struct simplify_type;
class Type;
class DerivedType;
template<typename T> struct simplify_type;
@@
-55,6
+56,12
@@
template<typename T> struct simplify_type;
class AbstractTypeUser {
protected:
virtual ~AbstractTypeUser(); // Derive from me
class AbstractTypeUser {
protected:
virtual ~AbstractTypeUser(); // Derive from me
+
+ /// setType - It's normally not possible to change a Value's type in place,
+ /// but an AbstractTypeUser subclass that knows what its doing can be
+ /// permitted to do so with care.
+ void setType(Value *V, const Type *NewTy);
+
public:
/// refineAbstractType - The callback method invoked when an abstract type is
public:
/// refineAbstractType - The callback method invoked when an abstract type is
@@
-139,6
+146,7
@@
class PATypeHolder {
mutable const Type *Ty;
void destroy();
public:
mutable const Type *Ty;
void destroy();
public:
+ PATypeHolder() : Ty(0) {}
PATypeHolder(const Type *ty) : Ty(ty) {
addRef();
}
PATypeHolder(const Type *ty) : Ty(ty) {
addRef();
}
@@
-146,7
+154,7
@@
public:
addRef();
}
addRef();
}
- ~PATypeHolder() {
if (Ty)
dropRef(); }
+ ~PATypeHolder() { dropRef(); }
operator Type *() const { return get(); }
Type *get() const;
operator Type *() const { return get(); }
Type *get() const;