#include "llvm/AbstractTypeUser.h"
#include "llvm/Use.h"
#include "llvm/Support/Casting.h"
-#include "llvm/Support/Streams.h"
+#include <iosfwd>
#include <string>
namespace llvm {
/// their end. This always returns a non-null pointer.
const char *getNameStart() const;
+ /// isName - Return true if this value has the name specified by the provided
+ /// nul terminated string.
+ bool isName(const char *N) const;
+
/// getNameLen - Return the length of the string, correctly handling nul
/// characters embedded into them.
unsigned getNameLen() const;
/// getRawType - This should only be used to implement the vmcore library.
///
const Type *getRawType() const { return Ty.getRawType(); }
+
+ /// stripPointerCasts - This method strips off any unneeded pointer
+ /// casts from the specified value, returning the original uncasted value.
+ /// Note that the returned value is guaranteed to have pointer type.
+ Value *stripPointerCasts();
};
inline std::ostream &operator<<(std::ostream &OS, const Value &V) {
return OS;
}
-void Use::init(Value *v, User *user) {
- Val = v;
- U = user;
- if (Val) Val->addUse(*this);
+void Use::init(Value *V, User *) {
+ Val = V;
+ if (V) V->addUse(*this);
}
void Use::set(Value *V) {