diff options
-rw-r--r-- | include/llvm/BasicBlock.h | 1 | ||||
-rw-r--r-- | include/llvm/Function.h | 2 | ||||
-rw-r--r-- | include/llvm/Module.h | 3 | ||||
-rw-r--r-- | include/llvm/SymbolTableListTraits.h | 6 | ||||
-rw-r--r-- | lib/VMCore/BasicBlock.cpp | 4 | ||||
-rw-r--r-- | lib/VMCore/Function.cpp | 7 | ||||
-rw-r--r-- | lib/VMCore/Module.cpp | 10 |
7 files changed, 5 insertions, 28 deletions
diff --git a/include/llvm/BasicBlock.h b/include/llvm/BasicBlock.h index 0d40909..0de71008 100644 --- a/include/llvm/BasicBlock.h +++ b/include/llvm/BasicBlock.h @@ -46,7 +46,6 @@ template<> struct ilist_traits<Instruction> Instruction *ensureHead(Instruction*) const { return createSentinel(); } static void noteHead(Instruction*, Instruction*) {} - static iplist<Instruction> &getList(BasicBlock *BB); static ValueSymbolTable *getSymTab(BasicBlock *ItemParent); private: mutable ilist_node<Instruction> Sentinel; diff --git a/include/llvm/Function.h b/include/llvm/Function.h index ff0b066..ccc006c 100644 --- a/include/llvm/Function.h +++ b/include/llvm/Function.h @@ -43,7 +43,6 @@ template<> struct ilist_traits<BasicBlock> BasicBlock *ensureHead(BasicBlock*) const { return createSentinel(); } static void noteHead(BasicBlock*, BasicBlock*) {} - static iplist<BasicBlock> &getList(Function *F); static ValueSymbolTable *getSymTab(Function *ItemParent); private: mutable ilist_node<BasicBlock> Sentinel; @@ -61,7 +60,6 @@ template<> struct ilist_traits<Argument> Argument *ensureHead(Argument*) const { return createSentinel(); } static void noteHead(Argument*, Argument*) {} - static iplist<Argument> &getList(Function *F); static ValueSymbolTable *getSymTab(Function *ItemParent); private: mutable ilist_node<Argument> Sentinel; diff --git a/include/llvm/Module.h b/include/llvm/Module.h index d706615..2564ddc 100644 --- a/include/llvm/Module.h +++ b/include/llvm/Module.h @@ -31,7 +31,6 @@ template<> struct ilist_traits<Function> // createSentinel is used to create a node that marks the end of the list. static Function *createSentinel(); static void destroySentinel(Function *F) { delete F; } - static iplist<Function> &getList(Module *M); static inline ValueSymbolTable *getSymTab(Module *M); }; template<> struct ilist_traits<GlobalVariable> @@ -39,7 +38,6 @@ template<> struct ilist_traits<GlobalVariable> // createSentinel is used to create a node that marks the end of the list. static GlobalVariable *createSentinel(); static void destroySentinel(GlobalVariable *GV) { delete GV; } - static iplist<GlobalVariable> &getList(Module *M); static inline ValueSymbolTable *getSymTab(Module *M); }; template<> struct ilist_traits<GlobalAlias> @@ -47,7 +45,6 @@ template<> struct ilist_traits<GlobalAlias> // createSentinel is used to create a node that marks the end of the list. static GlobalAlias *createSentinel(); static void destroySentinel(GlobalAlias *GA) { delete GA; } - static iplist<GlobalAlias> &getList(Module *M); static inline ValueSymbolTable *getSymTab(Module *M); }; diff --git a/include/llvm/SymbolTableListTraits.h b/include/llvm/SymbolTableListTraits.h index b5ec20d..44f64dc 100644 --- a/include/llvm/SymbolTableListTraits.h +++ b/include/llvm/SymbolTableListTraits.h @@ -46,7 +46,7 @@ public: /// of instructions, it returns the BasicBlock that owns them. ItemParentClass *getListOwner() { typedef iplist<ValueSubClass> ItemParentClass::*Sublist; - Sublist Sub(ItemParentClass:: + Sublist Sub(ItemParentClass:: getSublistAccess(static_cast<ValueSubClass*>(0))); size_t Offset(size_t(&((ItemParentClass*)0->*Sub))); iplist<ValueSubClass>* Anchor(static_cast<iplist<ValueSubClass>*>(this)); @@ -54,6 +54,10 @@ public: Offset); } + static iplist<ValueSubClass> &getList(ItemParentClass *Par) { + return Par->*(Par->getSublistAccess((ValueSubClass*)0)); +} + void addNodeToList(ValueSubClass *V); void removeNodeFromList(ValueSubClass *V); void transferNodesFromList(ilist_traits<ValueSubClass> &L2, diff --git a/lib/VMCore/BasicBlock.cpp b/lib/VMCore/BasicBlock.cpp index 66ee99d..f682231 100644 --- a/lib/VMCore/BasicBlock.cpp +++ b/lib/VMCore/BasicBlock.cpp @@ -31,10 +31,6 @@ ilist_traits<Instruction>::getSymTab(BasicBlock *BB) { return 0; } -iplist<Instruction> &ilist_traits<Instruction>::getList(BasicBlock *BB) { - return BB->getInstList(); -} - // Explicit instantiation of SymbolTableListTraits since some of the methods // are not in the public header file... template class SymbolTableListTraits<Instruction, BasicBlock>; diff --git a/lib/VMCore/Function.cpp b/lib/VMCore/Function.cpp index 258158f..3a991f6 100644 --- a/lib/VMCore/Function.cpp +++ b/lib/VMCore/Function.cpp @@ -22,13 +22,6 @@ #include "llvm/ADT/StringExtras.h" using namespace llvm; -iplist<BasicBlock> &ilist_traits<BasicBlock>::getList(Function *F) { - return F->getBasicBlockList(); -} - -iplist<Argument> &ilist_traits<Argument>::getList(Function *F) { - return F->getArgumentList(); -} // Explicit instantiations of SymbolTableListTraits since some of the methods // are not in the public header file... diff --git a/lib/VMCore/Module.cpp b/lib/VMCore/Module.cpp index 47233ae..25d297a 100644 --- a/lib/VMCore/Module.cpp +++ b/lib/VMCore/Module.cpp @@ -52,16 +52,6 @@ GlobalAlias *ilist_traits<GlobalAlias>::createSentinel() { return Ret; } -iplist<Function> &ilist_traits<Function>::getList(Module *M) { - return M->getFunctionList(); -} -iplist<GlobalVariable> &ilist_traits<GlobalVariable>::getList(Module *M) { - return M->getGlobalList(); -} -iplist<GlobalAlias> &ilist_traits<GlobalAlias>::getList(Module *M) { - return M->getAliasList(); -} - // Explicit instantiations of SymbolTableListTraits since some of the methods // are not in the public header file. template class SymbolTableListTraits<GlobalVariable, Module>; |