class DIEValueList
Declaration
class DIEValueList { /* full declaration omitted */ };
Description
A list of DIE values. This is a singly-linked list, but instead of reversing the order of insertion, we keep a pointer to the back of the list so we can push in order. There are two main reasons to choose a linked list over a customized vector-like data structure. 1. For teardown efficiency, we want DIEs to be BumpPtrAllocated. Using a linked list here makes this way easier to accomplish. 2. Carrying an extra pointer per \a DIEValue isn't expensive. 45% of DIEs have 2 or fewer values, and 90% have 5 or fewer. A vector would be over-allocated by 50% on average anyway, the same cost as the linked-list node.
Declared at: llvm/include/llvm/CodeGen/DIE.h:635
Method Overview
- public llvm::DIEValueList::value_iterator addValue(llvm::BumpPtrAllocator & Alloc, const llvm::DIEValue & V)
- public template <class T>llvm::DIEValueList::value_iterator addValue(llvm::BumpPtrAllocator & Alloc, dwarf::Attribute Attribute, dwarf::Form Form, T && Value)
- public void takeValues(llvm::DIEValueList & Other)
- public llvm::DIEValueList::value_range values()
- public llvm::DIEValueList::const_value_range values() const
Methods
¶llvm::DIEValueList::value_iterator addValue(
llvm::BumpPtrAllocator& Alloc,
const llvm::DIEValue& V)
llvm::DIEValueList::value_iterator addValue(
llvm::BumpPtrAllocator& Alloc,
const llvm::DIEValue& V)
Declared at: llvm/include/llvm/CodeGen/DIE.h:686
Parameters
- llvm::BumpPtrAllocator& Alloc
- const llvm::DIEValue& V
¶template <class T>
llvm::DIEValueList::value_iterator addValue(
llvm::BumpPtrAllocator& Alloc,
dwarf::Attribute Attribute,
dwarf::Form Form,
T&& Value)
template <class T>
llvm::DIEValueList::value_iterator addValue(
llvm::BumpPtrAllocator& Alloc,
dwarf::Attribute Attribute,
dwarf::Form Form,
T&& Value)
Declared at: llvm/include/llvm/CodeGen/DIE.h:691
Templates
- T
Parameters
- llvm::BumpPtrAllocator& Alloc
- dwarf::Attribute Attribute
- dwarf::Form Form
- T&& Value
¶void takeValues(llvm::DIEValueList& Other)
void takeValues(llvm::DIEValueList& Other)
Description
Take ownership of the nodes in \p Other, and append them to the back of the list.
Declared at: llvm/include/llvm/CodeGen/DIE.h:698
Parameters
- llvm::DIEValueList& Other
¶llvm::DIEValueList::value_range values()
llvm::DIEValueList::value_range values()
Declared at: llvm/include/llvm/CodeGen/DIE.h:700
¶llvm::DIEValueList::const_value_range values()
const
llvm::DIEValueList::const_value_range values()
const
Declared at: llvm/include/llvm/CodeGen/DIE.h:703