LLVM: llvm::DIEValueList Class Reference (original) (raw)
#include "[llvm/CodeGen/DIE.h](DIE%5F8h%5Fsource.html)"
| Public Member Functions | |
|---|---|
| value_iterator | addValue (BumpPtrAllocator &Alloc, const DIEValue &V) |
| template<class T> | |
| value_iterator | addValue (BumpPtrAllocator &Alloc, dwarf::Attribute Attribute, dwarf::Form Form, T &&Value) |
| template<class T> | |
| bool | replaceValue (BumpPtrAllocator &Alloc, dwarf::Attribute Attribute, dwarf::Attribute NewAttribute, dwarf::Form Form, T &&NewValue) |
| template<class T> | |
| bool | replaceValue (BumpPtrAllocator &Alloc, dwarf::Attribute Attribute, dwarf::Form Form, T &&NewValue) |
| bool | replaceValue (BumpPtrAllocator &Alloc, dwarf::Attribute Attribute, dwarf::Form Form, DIEValue &NewValue) |
| bool | deleteValue (dwarf::Attribute Attribute) |
| void | takeValues (DIEValueList &Other) |
| Take ownership of the nodes in Other, and append them to the back of the list. | |
| value_range | values () |
| const_value_range | values () const |
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.
- For teardown efficiency, we want DIEs to be BumpPtrAllocated. Using a linked list here makes this way easier to accomplish.
- Carrying an extra pointer per 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.
Definition at line 698 of file DIE.h.
◆ const_value_range
◆ value_range
◆ addValue() [1/2]
◆ addValue() [2/2]
◆ deleteValue()
◆ replaceValue() [1/3]
◆ replaceValue() [2/3]
◆ replaceValue() [3/3]
◆ takeValues()
| void llvm::DIEValueList::takeValues ( DIEValueList & Other) | inline |
|---|
Take ownership of the nodes in Other, and append them to the back of the list.
Definition at line 814 of file DIE.h.
References llvm::Other.
◆ values() [1/2]
| value_range llvm::DIEValueList::values ( ) | inline |
|---|
Definition at line 816 of file DIE.h.
References llvm::make_range().
Referenced by llvm::DIE::computeOffsetsAndAbbrevs(), llvm::DIEBlock::computeSize(), llvm::DIELoc::computeSize(), llvm::AsmPrinter::emitDwarfDIE(), llvm::DwarfFile::emitUnit(), llvm::DIEBlock::emitValue(), llvm::DIELoc::emitValue(), llvm::DIE::findAttribute(), llvm::DIE::generateAbbrev(), getDIEStringAttr(), llvm::patchAddrBase(), llvm::patchStmtList(), llvm::DIE::print(), printValues(), replaceValue(), replaceValue(), and replaceValue().
◆ values() [2/2]
| const_value_range llvm::DIEValueList::values ( ) const | inline |
|---|
The documentation for this class was generated from the following file:
- include/llvm/CodeGen/DIE.h