LLVM 22.0.0git
ELFEmitter.cpp File Reference

The ELF component of yaml2obj. More...

Go to the source code of this file.

Namespaces

namespace  llvm
 This is an optimization pass for GlobalISel generic memory operations.
namespace  llvm::yaml

Functions

template<class T>
static size_t arrayDataSize (ArrayRef< T > A)
template<class T>
static void writeArrayData (raw_ostream &OS, ArrayRef< T > A)
template<class T>
static void zero (T &Obj)
template<class ELFT>
static void overrideFields (ELFYAML::Section *From, typename ELFT::Shdr &To)
static uint64_t writeContent (ContiguousBlobAccumulator &CBA, const std::optional< yaml::BinaryRef > &Content, const std::optional< llvm::yaml::Hex64 > &Size)
static StringRef getDefaultLinkSec (unsigned SecType)
static size_t findFirstNonGlobal (ArrayRef< ELFYAML::Symbol > Symbols)
static bool shouldEmitDWARF (DWARFYAML::Data &DWARF, StringRef Name)
template<class ELFT>
Expected< uint64_temitDWARF (typename ELFT::Shdr &SHeader, StringRef Name, const DWARFYAML::Data &DWARF, ContiguousBlobAccumulator &CBA)
static bool isMips64EL (const ELFYAML::Object &Obj)
LLVM_ABI bool llvm::yaml::yaml2elf (ELFYAML::Object &Doc, raw_ostream &Out, ErrorHandler EH, uint64_t MaxSize)

Variables

constexpr char SuffixStart = '('
constexpr char SuffixEnd = ')'

Detailed Description

The ELF component of yaml2obj.

Definition in file ELFEmitter.cpp.

Function Documentation

◆ arrayDataSize()

template<class T>
size_t arrayDataSize ( ArrayRef< T > A)
static

Definition at line 336 of file ELFEmitter.cpp.

References A(), and T.

Referenced by writeArrayData().

◆ emitDWARF()

template<class ELFT>
Expected< uint64_t > emitDWARF ( typename ELFT::Shdr & SHeader,
StringRef Name,
const DWARFYAML::Data & DWARF,
ContiguousBlobAccumulator & CBA )

Definition at line 1087 of file ELFEmitter.cpp.

References llvm::DWARFYAML::getDWARFEmitterByName().

◆ findFirstNonGlobal()

size_t findFirstNonGlobal ( ArrayRef< ELFYAML::Symbol > Symbols)
static

Definition at line 942 of file ELFEmitter.cpp.

References Binding, I, and llvm::ELF::STB_LOCAL.

◆ getDefaultLinkSec()

◆ isMips64EL()

◆ overrideFields()

◆ shouldEmitDWARF()

bool shouldEmitDWARF ( DWARFYAML::Data & DWARF,
StringRef Name )
static

◆ writeArrayData()

template<class T>
void writeArrayData ( raw_ostream & OS,
ArrayRef< T > A )
static

Definition at line 340 of file ELFEmitter.cpp.

References A(), arrayDataSize(), and llvm::raw_ostream::write().

◆ writeContent()

uint64_t writeContent ( ContiguousBlobAccumulator & CBA,
const std::optional< yaml::BinaryRef > & Content,
const std::optional< llvm::yaml::Hex64 > & Size )
static

Definition at line 726 of file ELFEmitter.cpp.

References Size.

◆ zero()

template<class T>
void zero ( T & Obj)
static

Definition at line 344 of file ELFEmitter.cpp.

References T.

Variable Documentation

◆ SuffixEnd

char SuffixEnd = ')'
constexpr

◆ SuffixStart

char SuffixStart = '('
constexpr