From 1e6810005f426798ce2541c26f0cdc7a08670846 Mon Sep 17 00:00:00 2001 From: Will Dietz Date: Wed, 16 Oct 2013 04:10:06 +0000 Subject: TypeFinder: prefer iterative algorithm to keep stack usage low. Introduce subtype_reverse_iterator to maintain the numbering assigned during the recursive type walk. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192770 91177308-0d34-0410-b5e6-96231b3b80d8 --- include/llvm/IR/Type.h | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'include/llvm') diff --git a/include/llvm/IR/Type.h b/include/llvm/IR/Type.h index 1bf8789d30..3cfb84edd8 100644 --- a/include/llvm/IR/Type.h +++ b/include/llvm/IR/Type.h @@ -324,6 +324,14 @@ public: subtype_iterator subtype_begin() const { return ContainedTys; } subtype_iterator subtype_end() const { return &ContainedTys[NumContainedTys];} + typedef std::reverse_iterator subtype_reverse_iterator; + subtype_reverse_iterator subtype_rbegin() const { + return subtype_reverse_iterator(subtype_end()); + } + subtype_reverse_iterator subtype_rend() const { + return subtype_reverse_iterator(subtype_begin()); + } + /// getContainedType - This method is used to implement the type iterator /// (defined a the end of the file). For derived types, this returns the /// types 'contained' in the derived type. -- cgit v1.2.3