[llvm-commits] CVS: llvm/include/llvm/Support/GetElementPtrTypeIterator.h

Chris Lattner lattner at cs.uiuc.edu
Tue Nov 25 14:19:01 PST 2003


Changes in directory llvm/include/llvm/Support:

GetElementPtrTypeIterator.h updated: 1.2 -> 1.3

---
Log message:

Work with gepi's and constant exprs.  Also, add versions of iterator ctors that take references


---
Diffs of the changes:  (+12 -5)

Index: llvm/include/llvm/Support/GetElementPtrTypeIterator.h
diff -u llvm/include/llvm/Support/GetElementPtrTypeIterator.h:1.2 llvm/include/llvm/Support/GetElementPtrTypeIterator.h:1.3
--- llvm/include/llvm/Support/GetElementPtrTypeIterator.h:1.2	Tue Nov 25 13:58:35 2003
+++ llvm/include/llvm/Support/GetElementPtrTypeIterator.h	Tue Nov 25 14:17:49 2003
@@ -24,21 +24,21 @@
     : public forward_iterator<const Type *, ptrdiff_t> {
     typedef forward_iterator<const Type*, ptrdiff_t> super;
 
-    GetElementPtrInst *TheGEP;
+    User *TheGEP;          // Either GetElemenPtrInst or ConstantExpr
     const Type *CurTy;
     unsigned Operand;
     
     gep_type_iterator() {}
   public:
 
-    static gep_type_iterator begin(GetElementPtrInst *gep) {
+    static gep_type_iterator begin(User *gep) {
       gep_type_iterator I;
       I.TheGEP = gep;
       I.CurTy = gep->getOperand(0)->getType();
       I.Operand = 1;
       return I;
     }
-    static gep_type_iterator end(GetElementPtrInst *gep) {
+    static gep_type_iterator end(User *gep) {
       gep_type_iterator I;
       I.TheGEP = gep;
       I.CurTy = 0;
@@ -80,12 +80,19 @@
     }
   };
 
-  inline gep_type_iterator gep_type_begin(GetElementPtrInst *GEP) {
+  inline gep_type_iterator gep_type_begin(User *GEP) {
     return gep_type_iterator::begin(GEP);
   }
 
-  inline gep_type_iterator gep_type_end(GetElementPtrInst *GEP) {
+  inline gep_type_iterator gep_type_end(User *GEP) {
     return gep_type_iterator::end(GEP);
+  }
+  inline gep_type_iterator gep_type_begin(User &GEP) {
+    return gep_type_iterator::begin(&GEP);
+  }
+
+  inline gep_type_iterator gep_type_end(User &GEP) {
+    return gep_type_iterator::end(&GEP);
   }
 } // end namespace llvm
 





More information about the llvm-commits mailing list