From 9b474fdf2b2afab36961aa2b32901a6bba9267e3 Mon Sep 17 00:00:00 2001 From: Chris Lattner Date: Sat, 10 Nov 2001 06:47:45 +0000 Subject: [PATCH] Refactor some functionality to expose more useful stuff llvm-svn: 1240 --- llvm/include/llvm/ValueHolder.h | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/llvm/include/llvm/ValueHolder.h b/llvm/include/llvm/ValueHolder.h index 77bae5d68291..ef4ed1949f8f 100644 --- a/llvm/include/llvm/ValueHolder.h +++ b/llvm/include/llvm/ValueHolder.h @@ -81,13 +81,6 @@ public: inline reverse_iterator rend () { return ValueList.rend(); } inline const_reverse_iterator rend () const { return ValueList.rend(); } - void delete_all() { // Delete all removes and deletes all elements - while (!empty()) { - iterator it = end(); - delete remove(--it); // Delete all instructions... - } - } - // ValueHolder::remove(iterator &) this removes the element at the location // specified by the iterator, and leaves the iterator pointing to the element // that used to follow the element deleted. @@ -97,6 +90,19 @@ public: void remove(ValueSubclass *D); // Defined in ValueHolderImpl.h ValueSubclass *pop_back(); // Defined in ValueHolderImpl.h + // delete_span - Remove the elements from begin to end, deleting them as we + // go. This leaves the iterator pointing to the element that used to be end. + // + iterator delete_span(iterator begin, iterator end) { + while (end != begin) + delete remove(--end); + return end; + } + + void delete_all() { // Delete all removes and deletes all elements + delete_span(begin(), end()); + } + void push_front(ValueSubclass *Inst); // Defined in ValueHolderImpl.h void push_back(ValueSubclass *Inst); // Defined in ValueHolderImpl.h