mirror of
https://github.com/RPCS3/llvm.git
synced 2025-01-20 08:54:08 +00:00
Simplifying use_iterators by dereferencing
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
This commit is contained in:
parent
7d455eb7a4
commit
4a3bb24179
@ -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
|
||||
|
Loading…
x
Reference in New Issue
Block a user