Simplifying use_iterators by dereferencing
authorGabor Greif <ggreif@gmail.com>
Fri, 23 Jul 2010 08:36:07 +0000 (08:36 +0000)
committerGabor Greif <ggreif@gmail.com>
Fri, 23 Jul 2010 08:36:07 +0000 (08:36 +0000)
is not a good idea. The codebase does not depend
in this any more, and it may introduce hidden
runtime cost. If you get compile errors, please
dereference your iterator before passing to cast<>
(and friends).

Also: please consider caching the result of
operator* and reusing that instead of dereferencing
many times.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109220 91177308-0d34-0410-b5e6-96231b3b80d8

include/llvm/Use.h

index 2759338f42aabb2a68d468f383e9766f240cc39f..e1ebc6a51be5d62eaa72422e79667d7ffdcee7a6 100644 (file)
@@ -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