diff options
author | Dan Gohman <gohman@apple.com> | 2008-07-28 21:51:04 +0000 |
---|---|---|
committer | Dan Gohman <gohman@apple.com> | 2008-07-28 21:51:04 +0000 |
commit | fed90b6d097d50881afb45e4d79f430db66dd741 (patch) | |
tree | 7ec1a6f6b2a8a37e054b84505502b3346c6680c7 /include/llvm/GlobalAlias.h | |
parent | 80e051dfdede65678ac66f1552278338bc1a1b33 (diff) | |
download | llvm-fed90b6d097d50881afb45e4d79f430db66dd741.tar.gz llvm-fed90b6d097d50881afb45e4d79f430db66dd741.tar.bz2 llvm-fed90b6d097d50881afb45e4d79f430db66dd741.tar.xz |
Fold the useful features of alist and alist_node into ilist, and
a new ilist_node class, and remove them. Unlike alist_node,
ilist_node doesn't attempt to manage storage itself, so it avoids
the associated problems, including being opaque in gdb.
Adjust the Recycler class so that it doesn't depend on alist_node.
Also, change it to use explicit Size and Align parameters, allowing
it to work when the largest-sized node doesn't have the greatest
alignment requirement.
Change MachineInstr's MachineMemOperand list from a pool-backed
alist to a std::list for now.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54146 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include/llvm/GlobalAlias.h')
-rw-r--r-- | include/llvm/GlobalAlias.h | 13 |
1 files changed, 2 insertions, 11 deletions
diff --git a/include/llvm/GlobalAlias.h b/include/llvm/GlobalAlias.h index 7c147eb62a..124cf94fa9 100644 --- a/include/llvm/GlobalAlias.h +++ b/include/llvm/GlobalAlias.h @@ -17,6 +17,7 @@ #include "llvm/GlobalValue.h" #include "llvm/OperandTraits.h" +#include "llvm/ADT/ilist_node.h" namespace llvm { @@ -26,23 +27,13 @@ class PointerType; template<typename ValueSubClass, typename ItemParentClass> class SymbolTableListTraits; -class GlobalAlias : public GlobalValue { +class GlobalAlias : public GlobalValue, public ilist_node<GlobalAlias> { friend class SymbolTableListTraits<GlobalAlias, Module>; void operator=(const GlobalAlias &); // Do not implement GlobalAlias(const GlobalAlias &); // Do not implement void setParent(Module *parent); - GlobalAlias *Prev, *Next; - void setNext(GlobalAlias *N) { Next = N; } - void setPrev(GlobalAlias *N) { Prev = N; } - - // getNext/Prev - Return the next or previous alias in the list. - GlobalAlias *getNext() { return Next; } - const GlobalAlias *getNext() const { return Next; } - GlobalAlias *getPrev() { return Prev; } - const GlobalAlias *getPrev() const { return Prev; } - public: // allocate space for exactly one operand void *operator new(size_t s) { |