From c4c6b9e5bc062763578eb63a011f447de1eeddc6 Mon Sep 17 00:00:00 2001 From: Chris Lattner Date: Tue, 25 Nov 2003 20:17:49 +0000 Subject: Work with gepi's and constant exprs. Also, add versions of iterator ctors that take references git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10220 91177308-0d34-0410-b5e6-96231b3b80d8 --- include/llvm/Support/GetElementPtrTypeIterator.h | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) (limited to 'include/llvm/Support/GetElementPtrTypeIterator.h') diff --git a/include/llvm/Support/GetElementPtrTypeIterator.h b/include/llvm/Support/GetElementPtrTypeIterator.h index 95f02a8b6a..c1533e07b8 100644 --- a/include/llvm/Support/GetElementPtrTypeIterator.h +++ b/include/llvm/Support/GetElementPtrTypeIterator.h @@ -24,21 +24,21 @@ namespace llvm { : public forward_iterator { typedef forward_iterator 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,13 +80,20 @@ namespace llvm { } }; - 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 #endif -- cgit v1.2.3