Early CFG simplification can fold conditionals down to selects, which is often a...
[oota-llvm.git] / include / llvm / Support / Recycler.h
index 39c992bc5370cddb82abbb959ed4b3dca6aab114..d8f8c78941429fbca8056a515e34001ba173cf73 100644 (file)
@@ -34,7 +34,8 @@ struct RecyclerStruct {
 };
 
 template<>
-struct ilist_traits<RecyclerStruct> : ilist_default_traits<RecyclerStruct> {
+struct ilist_traits<RecyclerStruct> :
+    public ilist_default_traits<RecyclerStruct> {
   static RecyclerStruct *getPrev(const RecyclerStruct *t) { return t->Prev; }
   static RecyclerStruct *getNext(const RecyclerStruct *t) { return t->Next; }
   static void setPrev(RecyclerStruct *t, RecyclerStruct *p) { t->Prev = p; }
@@ -48,6 +49,7 @@ struct ilist_traits<RecyclerStruct> : ilist_default_traits<RecyclerStruct> {
 
   RecyclerStruct *provideInitialHead() const { return createSentinel(); }
   RecyclerStruct *ensureHead(RecyclerStruct*) const { return createSentinel(); }
+  static void noteHead(RecyclerStruct*, RecyclerStruct*) {}
 
   static void deleteNode(RecyclerStruct *) {
     assert(0 && "Recycler's ilist_traits shouldn't see a deleteNode call!");