[llvm-commits] CVS: llvm/include/llvm/Use.h
Chris Lattner
lattner at cs.uiuc.edu
Mon Mar 27 14:49:19 PST 2006
Changes in directory llvm/include/llvm:
Use.h updated: 1.12 -> 1.13
---
Log message:
Add some missing template specializations for autodereferencing User.
---
Diffs of the changes: (+25 -1)
Use.h | 26 +++++++++++++++++++++++++-
1 files changed, 25 insertions(+), 1 deletion(-)
Index: llvm/include/llvm/Use.h
diff -u llvm/include/llvm/Use.h:1.12 llvm/include/llvm/Use.h:1.13
--- llvm/include/llvm/Use.h:1.12 Thu Apr 21 15:11:51 2005
+++ llvm/include/llvm/Use.h Mon Mar 27 16:49:07 2006
@@ -132,7 +132,7 @@
}
// Retrieve a reference to the current SCC
- UserTy *operator*() const {
+ UserTy *operator*() const {
assert(U && "Cannot increment end iterator!");
return U->getUser();
}
@@ -142,6 +142,30 @@
Use &getUse() const { return *U; }
};
+
+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
More information about the llvm-commits
mailing list