LLVM 19.0.0git
Public Member Functions | Static Public Member Functions | Public Attributes | Protected Member Functions | List of all members
llvm::dwarf_linker::parallel::TypeEntryBody Class Reference

Keeps cloned data for the type DIE. More...

#include "DWARFLinker/Parallel/TypePool.h"

Public Member Functions

DIEgetFinalDie () const
 Returns copy of type DIE which should be emitted into resulting file.
 
bool hasOnlyDeclaration () const
 Returns true if type die entry has only declaration die.
 

Static Public Member Functions

static TypeEntryBodycreate (llvm::parallel::PerThreadBumpPtrAllocator &Allocator)
 Creates type DIE for the specified name.
 

Public Attributes

std::atomic< DIE * > Die = {nullptr}
 TypeEntryBody keeps partially cloned DIEs corresponding to this type.
 
std::atomic< DIE * > DeclarationDie = {nullptr}
 
std::atomic< boolParentIsDeclaration = {true}
 
ArrayList< TypeEntry *, 5 > Children
 Children for current type.
 

Protected Member Functions

 TypeEntryBody ()=delete
 
 TypeEntryBody (const TypeEntryBody &RHS)=delete
 
 TypeEntryBody (TypeEntryBody &&RHS)=delete
 
TypeEntryBodyoperator= (const TypeEntryBody &RHS)=delete
 
TypeEntryBodyoperator= (const TypeEntryBody &&RHS)=delete
 
 TypeEntryBody (llvm::parallel::PerThreadBumpPtrAllocator &Allocator)
 

Detailed Description

Keeps cloned data for the type DIE.

Definition at line 30 of file TypePool.h.

Constructor & Destructor Documentation

◆ TypeEntryBody() [1/4]

llvm::dwarf_linker::parallel::TypeEntryBody::TypeEntryBody ( )
protecteddelete

Referenced by create().

◆ TypeEntryBody() [2/4]

llvm::dwarf_linker::parallel::TypeEntryBody::TypeEntryBody ( const TypeEntryBody RHS)
protecteddelete

◆ TypeEntryBody() [3/4]

llvm::dwarf_linker::parallel::TypeEntryBody::TypeEntryBody ( TypeEntryBody &&  RHS)
protecteddelete

◆ TypeEntryBody() [4/4]

llvm::dwarf_linker::parallel::TypeEntryBody::TypeEntryBody ( llvm::parallel::PerThreadBumpPtrAllocator Allocator)
inlineprotected

Definition at line 77 of file TypePool.h.

Member Function Documentation

◆ create()

static TypeEntryBody * llvm::dwarf_linker::parallel::TypeEntryBody::create ( llvm::parallel::PerThreadBumpPtrAllocator Allocator)
inlinestatic

Creates type DIE for the specified name.

Definition at line 46 of file TypePool.h.

References Allocator, and TypeEntryBody().

Referenced by llvm::dwarf_linker::parallel::TypePool::getOrCreateTypeEntryBody(), and llvm::dwarf_linker::parallel::TypePool::TypePool().

◆ getFinalDie()

DIE & llvm::dwarf_linker::parallel::TypeEntryBody::getFinalDie ( ) const
inline

Returns copy of type DIE which should be emitted into resulting file.

Definition at line 33 of file TypePool.h.

References assert(), DeclarationDie, and Die.

Referenced by llvm::dwarf_linker::parallel::OutputSections::applyPatches().

◆ hasOnlyDeclaration()

bool llvm::dwarf_linker::parallel::TypeEntryBody::hasOnlyDeclaration ( ) const
inline

Returns true if type die entry has only declaration die.

Definition at line 42 of file TypePool.h.

References Die.

◆ operator=() [1/2]

TypeEntryBody & llvm::dwarf_linker::parallel::TypeEntryBody::operator= ( const TypeEntryBody &&  RHS)
protecteddelete

◆ operator=() [2/2]

TypeEntryBody & llvm::dwarf_linker::parallel::TypeEntryBody::operator= ( const TypeEntryBody RHS)
protecteddelete

Member Data Documentation

◆ Children

ArrayList<TypeEntry *, 5> llvm::dwarf_linker::parallel::TypeEntryBody::Children

Children for current type.

Definition at line 68 of file TypePool.h.

◆ DeclarationDie

std::atomic<DIE *> llvm::dwarf_linker::parallel::TypeEntryBody::DeclarationDie = {nullptr}

Definition at line 62 of file TypePool.h.

Referenced by getFinalDie().

◆ Die

std::atomic<DIE *> llvm::dwarf_linker::parallel::TypeEntryBody::Die = {nullptr}

TypeEntryBody keeps partially cloned DIEs corresponding to this type.

The two kinds of DIE can be kept: declaration and definition. If definition DIE was met while parsing input DWARF then this DIE would be used as a final DIE for this type. If definition DIE is not met then declaration DIE would be used as a final DIE.

Definition at line 59 of file TypePool.h.

Referenced by getFinalDie(), and hasOnlyDeclaration().

◆ ParentIsDeclaration

std::atomic<bool> llvm::dwarf_linker::parallel::TypeEntryBody::ParentIsDeclaration = {true}

Definition at line 65 of file TypePool.h.


The documentation for this class was generated from the following file: