diff --git a/docs/ReleaseNotes.html b/docs/ReleaseNotes.html
index 61aca32610a..01a39a7ce07 100644
--- a/docs/ReleaseNotes.html
+++ b/docs/ReleaseNotes.html
@@ -318,6 +318,11 @@ expose new optimization opportunities:
To be portable across releases, resort to CallSite and the
high-level accessors, such as getCalledValue and setUnwindDest.
+
+ You can no longer pass use_iterators directly to cast<> (and similar), because
+ these routines tend to perform costly dereference operations more than once. You
+ have to dereference the iterators yourself and pass them in.
+
diff --git a/include/llvm/Use.h b/include/llvm/Use.h
index 2759338f42a..e1ebc6a51be 100644
--- a/include/llvm/Use.h
+++ b/include/llvm/Use.h
@@ -210,30 +210,6 @@ public:
unsigned getOperandNo() const;
};
-
-template<> struct simplify_type > {
- typedef User* SimpleType;
-
- static SimpleType getSimplifiedValue(const value_use_iterator &Val) {
- return *Val;
- }
-};
-
-template<> struct simplify_type >
- : public simplify_type > {};
-
-template<> struct simplify_type > {
- typedef const User* SimpleType;
-
- static SimpleType getSimplifiedValue(const
- value_use_iterator &Val) {
- return *Val;
- }
-};
-
-template<> struct simplify_type >
- : public simplify_type > {};
-
} // End llvm namespace
#endif