[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