class DIEValue

Declaration

class DIEValue { /* full declaration omitted */ };

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

Member Variables

private llvm::DIEValue::Type Ty = isNone
Type of data stored in the value.
private dwarf::Attribute Attribute = (llvm::dwarf::Attribute)0
private dwarf::Form Form = (llvm::dwarf::Form)0
private llvm::DIEValue::ValTy Val
Underlying stored value.

Method Overview

  • public DIEValue()
  • public DIEValue(const llvm::DIEValue & X)
  • private template <class T>void construct(T V)
  • private void copyVal(const llvm::DIEValue & X)
  • private void destroyVal()
  • private template <class T>void destruct()
  • public void dump() const
  • public void emitValue(const llvm::AsmPrinter * AP) const
  • private template <class T>T * get()
  • private template <class T>const T * get() const
  • public dwarf::Attribute getAttribute() const
  • public dwarf::Form getForm() const
  • public llvm::DIEValue::Type getType() const
  • public bool operator bool() const
  • public void print(llvm::raw_ostream & O) const
  • public unsigned int sizeOf(const dwarf::FormParams & FormParams) const
  • public ~DIEValue()

Methods

DIEValue()

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

DIEValue(const llvm::DIEValue& X)

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

Parameters

const llvm::DIEValue& X

template <class T>
void construct(T V)

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

Templates

T

Parameters

T V

void copyVal(const llvm::DIEValue& X)

Description

Copy the underlying value. This should get optimized down to a simple copy. We need to actually construct the value, rather than calling memcpy, to satisfy strict aliasing rules.

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

Parameters

const llvm::DIEValue& X

void destroyVal()

Description

Destroy the underlying value. This should get optimized down to a no-op. We could skip it if we could add a static assert on \a std::is_trivially_copyable(), but we currently support versions of GCC that don't understand that.

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

template <class T>
void destruct()

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

Templates

T

void dump() const

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

void emitValue(const llvm::AsmPrinter* AP) const

Description

Emit value via the Dwarf writer.

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

Parameters

const llvm::AsmPrinter* AP

template <class T>
T* get()

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

Templates

T

template <class T>
const T* get() const

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

Templates

T

dwarf::Attribute getAttribute() const

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

dwarf::Form getForm() const

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

llvm::DIEValue::Type getType() const

Description

Accessors. @ {

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

bool operator bool() const

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

void print(llvm::raw_ostream& O) const

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

Parameters

llvm::raw_ostream& O

unsigned int sizeOf(
    const dwarf::FormParams& FormParams) const

Description

Return the size of a value in bytes.

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

Parameters

const dwarf::FormParams& FormParams

~DIEValue()

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