LLVM: lib/Object/ELF.cpp File Reference (original) (raw)
#include "[llvm/Object/ELF.h](Object%5F2ELF%5F8h%5Fsource.html)"#include "[llvm/ADT/StringExtras.h](StringExtras%5F8h%5Fsource.html)"#include "[llvm/BinaryFormat/ELF.h](BinaryFormat%5F2ELF%5F8h%5Fsource.html)"#include "[llvm/Object/Decompressor.h](Decompressor%5F8h%5Fsource.html)"#include "[llvm/Support/Compiler.h](Compiler%5F8h%5Fsource.html)"#include "[llvm/Support/DataExtractor.h](DataExtractor%5F8h%5Fsource.html)"#include "llvm/BinaryFormat/ELFRelocs/M68k.def"#include "llvm/BinaryFormat/ELFRelocs/x86_64.def"#include "llvm/BinaryFormat/ELFRelocs/i386.def"#include "llvm/BinaryFormat/ELFRelocs/Mips.def"#include "llvm/BinaryFormat/ELFRelocs/AArch64.def"#include "llvm/BinaryFormat/ELFRelocs/ARM.def"#include "llvm/BinaryFormat/ELFRelocs/ARC.def"#include "llvm/BinaryFormat/ELFRelocs/AVR.def"#include "llvm/BinaryFormat/ELFRelocs/Hexagon.def"#include "llvm/BinaryFormat/ELFRelocs/Lanai.def"#include "llvm/BinaryFormat/ELFRelocs/PowerPC.def"#include "llvm/BinaryFormat/ELFRelocs/PowerPC64.def"#include "llvm/BinaryFormat/ELFRelocs/RISCV.def"#include "llvm/BinaryFormat/ELFRelocs/SystemZ.def"#include "llvm/BinaryFormat/ELFRelocs/Sparc.def"#include "llvm/BinaryFormat/ELFRelocs/AMDGPU.def"#include "llvm/BinaryFormat/ELFRelocs/BPF.def"#include "llvm/BinaryFormat/ELFRelocs/MSP430.def"#include "llvm/BinaryFormat/ELFRelocs/VE.def"#include "llvm/BinaryFormat/ELFRelocs/CSKY.def"#include "llvm/BinaryFormat/ELFRelocs/LoongArch.def"#include "llvm/BinaryFormat/ELFRelocs/Xtensa.def"#include "llvm/BinaryFormat/ELFRelocs/RISCV_nonstandard.def"#include "llvm/BinaryFormat/DynamicTags.def"
Go to the source code of this file.
| Macros | |
|---|---|
| #define | STRINGIFY_ENUM_CASE(ns, name) |
| #define | ELF_RELOC(name, value) |
| #define | ELF_RISCV_NONSTANDARD_RELOC(vendor, name, number) |
| #define | DYNAMIC_STRINGIFY_ENUM(tag, value) |
| #define | DYNAMIC_TAG(n, v) |
| #define | AARCH64_DYNAMIC_TAG(name, value) |
| #define | HEXAGON_DYNAMIC_TAG(name, value) |
| #define | MIPS_DYNAMIC_TAG(name, value) |
| #define | PPC_DYNAMIC_TAG(name, value) |
| #define | PPC64_DYNAMIC_TAG(name, value) |
| #define | RISCV_DYNAMIC_TAG(name, value) |
| #define | AARCH64_DYNAMIC_TAG(name, value) |
| #define | MIPS_DYNAMIC_TAG(name, value) |
| #define | HEXAGON_DYNAMIC_TAG(name, value) |
| #define | PPC_DYNAMIC_TAG(name, value) |
| #define | PPC64_DYNAMIC_TAG(name, value) |
| #define | RISCV_DYNAMIC_TAG(name, value) |
| #define | DYNAMIC_TAG_MARKER(name, value) |
| #define | DYNAMIC_TAG(name, value) |
◆ AARCH64_DYNAMIC_TAG [1/2]
| #define AARCH64_DYNAMIC_TAG | ( | name, |
|---|---|---|
| value ) |
Value:
#define DYNAMIC_STRINGIFY_ENUM(tag, value)
◆ AARCH64_DYNAMIC_TAG [2/2]
| #define AARCH64_DYNAMIC_TAG | ( | name, |
|---|---|---|
| value ) |
◆ DYNAMIC_STRINGIFY_ENUM
| #define DYNAMIC_STRINGIFY_ENUM | ( | tag, |
|---|---|---|
| value ) |
Value:
case value: \
return #tag;
◆ DYNAMIC_TAG [1/2]
| #define DYNAMIC_TAG | ( | n, |
|---|---|---|
| v ) |
◆ DYNAMIC_TAG [2/2]
| #define DYNAMIC_TAG | ( | name, |
|---|---|---|
| value ) |
Value:
case value: return #name;
◆ DYNAMIC_TAG_MARKER
| #define DYNAMIC_TAG_MARKER | ( | name, |
|---|---|---|
| value ) |
◆ ELF_RELOC
| #define ELF_RELOC | ( | name, |
|---|---|---|
| value ) |
Value:
#define STRINGIFY_ENUM_CASE(ns, name)
Definition at line 23 of file ELF.cpp.
◆ ELF_RISCV_NONSTANDARD_RELOC
| #define ELF_RISCV_NONSTANDARD_RELOC | ( | vendor, |
|---|---|---|
| name, | ||
| number ) |
Value:
if (Vendor == #vendor && Type == number) \
static constexpr std::size_t number(BlockVerifier::State S)
The instances of the Type class are immutable: once they are created, they are never changed.
◆ HEXAGON_DYNAMIC_TAG [1/2]
| #define HEXAGON_DYNAMIC_TAG | ( | name, |
|---|---|---|
| value ) |
◆ HEXAGON_DYNAMIC_TAG [2/2]
| #define HEXAGON_DYNAMIC_TAG | ( | name, |
|---|---|---|
| value ) |
◆ MIPS_DYNAMIC_TAG [1/2]
| #define MIPS_DYNAMIC_TAG | ( | name, |
|---|---|---|
| value ) |
◆ MIPS_DYNAMIC_TAG [2/2]
| #define MIPS_DYNAMIC_TAG | ( | name, |
|---|---|---|
| value ) |
◆ PPC64_DYNAMIC_TAG [1/2]
| #define PPC64_DYNAMIC_TAG | ( | name, |
|---|---|---|
| value ) |
◆ PPC64_DYNAMIC_TAG [2/2]
| #define PPC64_DYNAMIC_TAG | ( | name, |
|---|---|---|
| value ) |
◆ PPC_DYNAMIC_TAG [1/2]
| #define PPC_DYNAMIC_TAG | ( | name, |
|---|---|---|
| value ) |
◆ PPC_DYNAMIC_TAG [2/2]
| #define PPC_DYNAMIC_TAG | ( | name, |
|---|---|---|
| value ) |
◆ RISCV_DYNAMIC_TAG [1/2]
| #define RISCV_DYNAMIC_TAG | ( | name, |
|---|---|---|
| value ) |
◆ RISCV_DYNAMIC_TAG [2/2]
| #define RISCV_DYNAMIC_TAG | ( | name, |
|---|---|---|
| value ) |
◆ STRINGIFY_ENUM_CASE
| #define STRINGIFY_ENUM_CASE | ( | ns, |
|---|---|---|
| name ) |
Value:
Definition at line 19 of file ELF.cpp.
◆ decodeBBAddrMapImpl()
Definition at line 752 of file ELF.cpp.
References assert(), llvm::object::BBAddrMap::Features::BBFreq, llvm::object::BBAddrMap::Features::BBHash, llvm::object::BBAddrMap::Features::BrProb, BrProb, llvm::object::BBAddrMap::Features::CallsiteEndOffsets, llvm::CallsiteIndex, llvm::object::Decompressor::create(), llvm::object::createError(), llvm::object::ELFFile< ELFT >::crels(), llvm::Data, llvm::object::BBAddrMap::BBEntry::Metadata::decode(), llvm::object::BBAddrMap::Features::decode(), llvm::object::describe(), llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::end(), llvm::ELF::ET_REL, llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::find(), llvm::object::BBAddrMap::Features::FuncEntryCount, FuncEntryCount, llvm::object::ELFFile< ELFT >::getHeader(), llvm::BranchProbability::getRaw(), llvm::object::ELFFile< ELFT >::getSectionContents(), llvm::object::ELFFile< ELFT >::getSectionName(), llvm::object::BBAddrMap::Features::hasPGOAnalysis(), llvm::object::BBAddrMap::Features::hasPGOAnalysisBBData(), I, llvm::object::ELFFile< ELFT >::isLE(), llvm::joinErrors(), llvm::object::BBAddrMap::Features::MultiBBRange, llvm::Offset, llvm::object::BBAddrMap::Features::OmitBBEntries, llvm::object::BBAddrMap::Features::PostLinkCfg, llvm::SmallVectorTemplateBase< T, bool >::push_back(), readULEB128As(), llvm::object::ELFFile< ELFT >::relas(), llvm::SmallVectorImpl< T >::reserve(), llvm::ELF::SHF_COMPRESSED, llvm::ELF::SHT_CREL, Size, llvm::ArrayRef< T >::size(), llvm::Error::success(), llvm::DataExtractor::Cursor::takeError(), llvm::Expected< T >::takeError(), llvm::DataExtractor::Cursor::tell(), llvm::toString(), llvm::toStringRef(), llvm::Twine::utohexstr(), and llvm::Version.
Referenced by llvm::object::ELFFile< ELFT >::decodeBBAddrMap().
◆ readULEB128As()
template<typename IntTy, std::enable_if_t< std::is_unsigned_v< IntTy >, int > = 0>