aboutsummaryrefslogtreecommitdiff
path: root/include/llvm/Module.h
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2001-06-27 23:26:41 +0000
committerChris Lattner <sabre@nondot.org>2001-06-27 23:26:41 +0000
commit1020b3982c9eae15844c5612b0cf251917931b1d (patch)
treef5de5c6a2697aac3f36193ed29cfeded73856a4f /include/llvm/Module.h
parent0305cfd3cc858313a58d6a969db91edbd59d5861 (diff)
Add extra forwarding accessor methods so that getMethodList(), getBasicBlocks()
and getInstList() are obsolete... except for when modifying those lists. This makes code much more succinct and to the point. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include/llvm/Module.h')
-rw-r--r--include/llvm/Module.h28
1 files changed, 28 insertions, 0 deletions
diff --git a/include/llvm/Module.h b/include/llvm/Module.h
index 9437b2c778..da5024b408 100644
--- a/include/llvm/Module.h
+++ b/include/llvm/Module.h
@@ -14,6 +14,12 @@ class Method;
class Module : public SymTabValue {
public:
typedef ValueHolder<Method, Module> MethodListType;
+
+ // Method iterators...
+ typedef MethodListType::iterator iterator;
+ typedef MethodListType::const_iterator const_iterator;
+ typedef reverse_iterator<const_iterator> const_reverse_iterator;
+ typedef reverse_iterator<iterator> reverse_iterator;
private:
MethodListType MethodList; // The Methods
@@ -21,9 +27,31 @@ public:
Module();
~Module();
+ // Get the underlying elements of the Module...
inline const MethodListType &getMethodList() const { return MethodList; }
inline MethodListType &getMethodList() { return MethodList; }
+ //===--------------------------------------------------------------------===//
+ // Module iterator forwarding functions
+ //
+ inline iterator begin() { return MethodList.begin(); }
+ inline const_iterator begin() const { return MethodList.begin(); }
+ inline iterator end () { return MethodList.end(); }
+ inline const_iterator end () const { return MethodList.end(); }
+
+ inline reverse_iterator rbegin() { return MethodList.rbegin(); }
+ inline const_reverse_iterator rbegin() const { return MethodList.rbegin(); }
+ inline reverse_iterator rend () { return MethodList.rend(); }
+ inline const_reverse_iterator rend () const { return MethodList.rend(); }
+
+ inline unsigned size() const { return MethodList.size(); }
+ inline bool empty() const { return MethodList.empty(); }
+ inline const Method *front() const { return MethodList.front(); }
+ inline Method *front() { return MethodList.front(); }
+ inline const Method *back() const { return MethodList.back(); }
+ inline Method *back() { return MethodList.back(); }
+
+
// dropAllReferences() - This function causes all the subinstructions to "let
// go" of all references that they are maintaining. This allows one to
// 'delete' a whole class at a time, even though there may be circular