LLVM 20.0.0git
|
The ELF component of yaml2obj. More...
#include "llvm/ADT/ArrayRef.h"
#include "llvm/ADT/DenseMap.h"
#include "llvm/ADT/SetVector.h"
#include "llvm/ADT/StringSet.h"
#include "llvm/BinaryFormat/ELF.h"
#include "llvm/MC/StringTableBuilder.h"
#include "llvm/Object/ELFTypes.h"
#include "llvm/ObjectYAML/DWARFEmitter.h"
#include "llvm/ObjectYAML/DWARFYAML.h"
#include "llvm/ObjectYAML/ELFYAML.h"
#include "llvm/ObjectYAML/yaml2obj.h"
#include "llvm/Support/EndianStream.h"
#include "llvm/Support/Errc.h"
#include "llvm/Support/Error.h"
#include "llvm/Support/LEB128.h"
#include "llvm/Support/WithColor.h"
#include "llvm/Support/YAMLTraits.h"
#include "llvm/Support/raw_ostream.h"
#include <optional>
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_t > | emitDWARF (typename ELFT::Shdr &SHeader, StringRef Name, const DWARFYAML::Data &DWARF, ContiguousBlobAccumulator &CBA) |
static bool | isMips64EL (const ELFYAML::Object &Obj) |
bool | llvm::yaml::yaml2elf (ELFYAML::Object &Doc, raw_ostream &Out, ErrorHandler EH, uint64_t MaxSize) |
Variables | |
constexpr char | SuffixStart = '(' |
constexpr char | SuffixEnd = ')' |
The ELF component of yaml2obj.
Definition in file ELFEmitter.cpp.
Expected< uint64_t > emitDWARF | ( | typename ELFT::Shdr & | SHeader, |
StringRef | Name, | ||
const DWARFYAML::Data & | DWARF, | ||
ContiguousBlobAccumulator & | CBA | ||
) |
Definition at line 1078 of file ELFEmitter.cpp.
References llvm::DWARFYAML::getDWARFEmitterByName(), Name, and OS.
|
static |
Definition at line 933 of file ELFEmitter.cpp.
References I, and llvm::ELF::STB_LOCAL.
Definition at line 738 of file ELFEmitter.cpp.
References llvm::ELF::SHT_DYNSYM, llvm::ELF::SHT_GNU_HASH, llvm::ELF::SHT_GNU_verdef, llvm::ELF::SHT_GNU_verneed, llvm::ELF::SHT_GNU_versym, llvm::ELF::SHT_GROUP, llvm::ELF::SHT_HASH, llvm::ELF::SHT_LLVM_ADDRSIG, llvm::ELF::SHT_LLVM_CALL_GRAPH_PROFILE, llvm::ELF::SHT_REL, llvm::ELF::SHT_RELA, and llvm::ELF::SHT_SYMTAB.
|
static |
Definition at line 1264 of file ELFEmitter.cpp.
References llvm::ELFYAML::FileHeader::Class, llvm::ELFYAML::FileHeader::Data, llvm::ELF::ELFCLASS64, llvm::ELF::ELFDATA2LSB, llvm::ELF::EM_MIPS, llvm::ELFYAML::Object::getMachine(), and llvm::ELFYAML::Object::Header.
Referenced by llvm::object::ELFFile< ELFT >::getRelocationSymbol(), llvm::object::Elf_Rel_Impl< ELFType< Endianness, false >, false >::getRInfo(), llvm::object::Elf_Rel_Impl< ELFType< Endianness, true >, false >::getRInfo(), llvm::object::Elf_Rel_Impl< ELFType< Endianness, false >, false >::getSymbol(), llvm::object::Elf_Rel_Impl< ELFType< Endianness, true >, false >::getSymbol(), llvm::object::Elf_Rel_Impl< ELFType< Endianness, false >, false >::getType(), and llvm::object::Elf_Rel_Impl< ELFType< Endianness, true >, false >::getType().
|
static |
Definition at line 638 of file ELFEmitter.cpp.
References From.
|
static |
Definition at line 1072 of file ELFEmitter.cpp.
References llvm::SetVector< T, Vector, Set, N >::count(), llvm::DWARFYAML::Data::getNonEmptySectionNames(), and Name.
|
static |
Definition at line 336 of file ELFEmitter.cpp.
References A, arrayDataSize(), OS, and llvm::raw_ostream::write().
|
static |
Definition at line 722 of file ELFEmitter.cpp.
Definition at line 340 of file ELFEmitter.cpp.
|
constexpr |
Definition at line 690 of file ELFEmitter.cpp.
Referenced by llvm::ELFYAML::appendUniqueSuffix(), llvm::ELFYAML::dropUniqueSuffix(), and parseRD().
|
constexpr |
Definition at line 689 of file ELFEmitter.cpp.
Referenced by llvm::ELFYAML::appendUniqueSuffix(), and llvm::ELFYAML::dropUniqueSuffix().