LLVM 19.0.0git
Classes | Namespaces | Macros | Typedefs
ELFTypes.h File Reference
#include "llvm/ADT/ArrayRef.h"
#include "llvm/ADT/StringRef.h"
#include "llvm/BinaryFormat/ELF.h"
#include "llvm/Object/Error.h"
#include "llvm/Support/BlockFrequency.h"
#include "llvm/Support/BranchProbability.h"
#include "llvm/Support/Endian.h"
#include "llvm/Support/Error.h"
#include "llvm/Support/MathExtras.h"
#include <cassert>
#include <cstdint>
#include <cstring>
#include <type_traits>

Go to the source code of this file.

Classes

struct  llvm::object::ELFType< E, Is64 >
 
struct  llvm::object::Elf_Shdr_Base< ELFType< Endianness, false > >
 
struct  llvm::object::Elf_Shdr_Base< ELFType< Endianness, true > >
 
struct  llvm::object::Elf_Shdr_Impl< ELFT >
 
struct  llvm::object::Elf_Sym_Base< ELFType< Endianness, false > >
 
struct  llvm::object::Elf_Sym_Base< ELFType< Endianness, true > >
 
struct  llvm::object::Elf_Sym_Impl< ELFT >
 
struct  llvm::object::Elf_Versym_Impl< ELFT >
 Elf_Versym: This is the structure of entries in the SHT_GNU_versym section (.gnu.version). More...
 
struct  llvm::object::Elf_Verdef_Impl< ELFT >
 Elf_Verdef: This is the structure of entries in the SHT_GNU_verdef section (.gnu.version_d). More...
 
struct  llvm::object::Elf_Verdaux_Impl< ELFT >
 Elf_Verdaux: This is the structure of auxiliary data in the SHT_GNU_verdef section (.gnu.version_d). More...
 
struct  llvm::object::Elf_Verneed_Impl< ELFT >
 Elf_Verneed: This is the structure of entries in the SHT_GNU_verneed section (.gnu.version_r). More...
 
struct  llvm::object::Elf_Vernaux_Impl< ELFT >
 Elf_Vernaux: This is the structure of auxiliary data in SHT_GNU_verneed section (.gnu.version_r). More...
 
struct  llvm::object::Elf_Dyn_Base< ELFType< Endianness, false > >
 
struct  llvm::object::Elf_Dyn_Base< ELFType< Endianness, true > >
 
struct  llvm::object::Elf_Dyn_Impl< ELFT >
 Elf_Dyn_Impl: This inherits from Elf_Dyn_Base, adding getters. More...
 
struct  llvm::object::Elf_Rel_Impl< ELFType< Endianness, false >, false >
 
struct  llvm::object::Elf_Rel_Impl< ELFType< Endianness, false >, true >
 
struct  llvm::object::Elf_Rel_Impl< ELFType< Endianness, true >, false >
 
struct  llvm::object::Elf_Rel_Impl< ELFType< Endianness, true >, true >
 
struct  llvm::object::Elf_Ehdr_Impl< ELFT >
 
struct  llvm::object::Elf_Phdr_Impl< ELFType< Endianness, false > >
 
struct  llvm::object::Elf_Phdr_Impl< ELFType< Endianness, true > >
 
struct  llvm::object::Elf_Hash_Impl< ELFT >
 
struct  llvm::object::Elf_GnuHash_Impl< ELFT >
 
struct  llvm::object::Elf_Chdr_Impl< ELFType< Endianness, false > >
 
struct  llvm::object::Elf_Chdr_Impl< ELFType< Endianness, true > >
 
struct  llvm::object::Elf_Nhdr_Impl< ELFT >
 Note header. More...
 
class  llvm::object::Elf_Note_Impl< ELFT >
 An ELF note. More...
 
class  llvm::object::Elf_Note_Iterator_Impl< ELFT >
 
struct  llvm::object::Elf_CGProfile_Impl< ELFT >
 
struct  llvm::object::Elf_Mips_RegInfo< ELFType< Endianness, false > >
 
struct  llvm::object::Elf_Mips_RegInfo< ELFType< Endianness, true > >
 
struct  llvm::object::Elf_Mips_Options< ELFT >
 
struct  llvm::object::Elf_Mips_ABIFlags< ELFT >
 
struct  llvm::object::BBAddrMap
 
struct  llvm::object::BBAddrMap::Features
 
struct  llvm::object::BBAddrMap::BBEntry
 
struct  llvm::object::BBAddrMap::BBEntry::Metadata
 
struct  llvm::object::BBAddrMap::BBRangeEntry
 
struct  llvm::object::PGOAnalysisMap
 A feature extension of BBAddrMap that holds information relevant to PGO. More...
 
struct  llvm::object::PGOAnalysisMap::PGOBBEntry
 Extra basic block data with fields for block frequency and branch probability. More...
 
struct  llvm::object::PGOAnalysisMap::PGOBBEntry::SuccessorEntry
 Single successor of a given basic block that contains the tag and branch probability associated with it. More...
 

Namespaces

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

Macros

#define LLVM_ELF_IMPORT_TYPES_ELFT(ELFT)
 
#define LLVM_ELF_COMMA   ,
 
#define LLVM_ELF_IMPORT_TYPES(E, W)    LLVM_ELF_IMPORT_TYPES_ELFT(ELFType<E LLVM_ELF_COMMA W>)
 

Typedefs

using llvm::object::ELF32LE = ELFType< llvm::endianness::little, false >
 
using llvm::object::ELF32BE = ELFType< llvm::endianness::big, false >
 
using llvm::object::ELF64LE = ELFType< llvm::endianness::little, true >
 
using llvm::object::ELF64BE = ELFType< llvm::endianness::big, true >
 

Macro Definition Documentation

◆ LLVM_ELF_COMMA

#define LLVM_ELF_COMMA   ,

Definition at line 141 of file ELFTypes.h.

◆ LLVM_ELF_IMPORT_TYPES

#define LLVM_ELF_IMPORT_TYPES (   E,
 
)     LLVM_ELF_IMPORT_TYPES_ELFT(ELFType<E LLVM_ELF_COMMA W>)

Definition at line 142 of file ELFTypes.h.

◆ LLVM_ELF_IMPORT_TYPES_ELFT

#define LLVM_ELF_IMPORT_TYPES_ELFT (   ELFT)

Definition at line 104 of file ELFTypes.h.