summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--docs/ReleaseNotes.html5
-rw-r--r--include/llvm/Use.h24
2 files changed, 5 insertions, 24 deletions
diff --git a/docs/ReleaseNotes.html b/docs/ReleaseNotes.html
index 61aca32610..01a39a7ce0 100644
--- a/docs/ReleaseNotes.html
+++ b/docs/ReleaseNotes.html
@@ -318,6 +318,11 @@ expose new optimization opportunities:</p>
To be portable across releases, resort to <tt>CallSite</tt> and the
high-level accessors, such as <tt>getCalledValue</tt> and <tt>setUnwindDest</tt>.
</li>
+<li>
+ 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.
+</li>
</ul>
diff --git a/include/llvm/Use.h b/include/llvm/Use.h
index 2759338f42..e1ebc6a51b 100644
--- a/include/llvm/Use.h
+++ b/include/llvm/Use.h
@@ -210,30 +210,6 @@ public:
unsigned getOperandNo() const;
};
-
-template<> struct simplify_type<value_use_iterator<User> > {
- typedef User* SimpleType;
-
- static SimpleType getSimplifiedValue(const value_use_iterator<User> &Val) {
- return *Val;
- }
-};
-
-template<> struct simplify_type<const value_use_iterator<User> >
- : public simplify_type<value_use_iterator<User> > {};
-
-template<> struct simplify_type<value_use_iterator<const User> > {
- typedef const User* SimpleType;
-
- static SimpleType getSimplifiedValue(const
- value_use_iterator<const User> &Val) {
- return *Val;
- }
-};
-
-template<> struct simplify_type<const value_use_iterator<const User> >
- : public simplify_type<value_use_iterator<const User> > {};
-
} // End llvm namespace
#endif