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)

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)

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)

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()

Declared at: llvm/include/llvm/CodeGen/DIE.h:700

llvm::DIEValueList::const_value_range values()
    const

Declared at: llvm/include/llvm/CodeGen/DIE.h:703