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