LLVM: include/llvm/ObjectYAML/ELFYAML.h Source File (original) (raw)

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15#ifndef LLVM_OBJECTYAML_ELFYAML_H

16#define LLVM_OBJECTYAML_ELFYAML_H

17

24#include

25#include

26#include

27#include

28

29namespace llvm {

31

34

35

36

37

38

39

40

41

42

43

44

51

53

59

65

72

75

76template

81

85 return sizeof(typename ELFT::Sym);

87 return sizeof(typename ELFT::Word);

89 return sizeof(typename ELFT::Rel);

91 return sizeof(typename ELFT::Rela);

93 return sizeof(typename ELFT::Relr);

95 return sizeof(typename ELFT::Dyn);

97 return sizeof(typename ELFT::Word);

99 return sizeof(typename ELFT::Word);

101 return sizeof(typename ELFT::Half);

104 default:

105 if (SecName == ".debug_str")

106 return 1;

107 return 0;

108 }

109}

110

111

112

123

124 std::optionalllvm::yaml::Hex64 EPhOff;

126 std::optionalllvm::yaml::Hex16 EPhNum;

128 std::optionalllvm::yaml::Hex64 EShOff;

129 std::optionalllvm::yaml::Hex16 EShNum;

131};

132

136

141 std::optional<ELF_SHN> Index;

143 std::optionalllvm::yaml::Hex64 Value;

144 std::optionalllvm::yaml::Hex64 Size;

145 std::optional<uint8_t> Other;

146

148};

149

153

156 llvm::yaml::Hex64 Val;

157};

158

166 std::optionalllvm::yaml::Hex64 Hash;

167 };

170

176

178 std::optional<std::vector> BBRanges;

179

182 return 0;

183 return BBRanges->front().BaseAddress;

184 }

185

186

189 return false;

191 if (!BBR.BBEntries)

192 continue;

195 return true;

196 }

197 return false;

198 }

199};

200

210 std::optional<std::vector> Successors;

211 };

214};

215

220

226

256

259 std::optionalllvm::yaml::Hex64 Offset;

260

261

262

264

267};

268

271 std::optional<ELF_SHF> Flags;

272 std::optionalllvm::yaml::Hex64 Address;

273 std::optional Link;

275 std::optionalllvm::yaml::Hex64 EntSize;

276

277 std::optionalyaml::BinaryRef Content;

278 std::optionalllvm::yaml::Hex64 Size;

279

280

282

284

288

289

290

291

292 virtual std::vector<std::pair<StringRef, bool>> getEntries() const {

293 return {};

294 };

295

296

297

298

299

301

302

303

304 std::optionalllvm::yaml::Hex64 ShName;

305

306

307

308 std::optionalllvm::yaml::Hex64 ShOffset;

309

310

311

312 std::optionalllvm::yaml::Hex64 ShSize;

313

314

315 std::optionalllvm::yaml::Hex64 ShFlags;

316

317

318

319

320

322};

323

324

325

326

328 std::optionalyaml::BinaryRef Pattern;

330

332

334};

335

339

343

344 std::optional<std::vector> Sections;

345 std::optional<std::vector> Excluded;

347

355

357

359};

360

362 std::optional<std::vector> Entries;

363 std::optional<std::vector> PGOAnalyses;

364

366

367 std::vector<std::pair<StringRef, bool>> getEntries() const override {

368 return {{"Entries", Entries.has_value()}};

369 };

370

374};

375

377 std::optional<std::vector> Entries;

378

380

381 std::vector<std::pair<StringRef, bool>> getEntries() const override {

382 return {{"Entries", Entries.has_value()}};

383 };

384

388

390 return Name == ".stack_sizes";

391 }

392};

393

395 std::optional<std::vector> Entries;

396

398

399 std::vector<std::pair<StringRef, bool>> getEntries() const override {

400 return {{"Entries", Entries.has_value()}};

401 };

402

404};

405

407 std::optionalllvm::yaml::Hex64 Info;

408

410

414

415

417};

418

424

426 std::optional<std::vectorELFYAML::NoteEntry> Notes;

427

429

430 std::vector<std::pair<StringRef, bool>> getEntries() const override {

431 return {{"Notes", Notes.has_value()}};

432 };

433

435};

436

438 std::optional<std::vector<uint32_t>> Bucket;

439 std::optional<std::vector<uint32_t>> Chain;

440

441 std::vector<std::pair<StringRef, bool>> getEntries() const override {

442 return {{"Bucket", Bucket.has_value()}, {"Chain", Chain.has_value()}};

443 };

444

445

446

447 std::optionalllvm::yaml::Hex64 NBucket;

448 std::optionalllvm::yaml::Hex64 NChain;

449

451

453};

454

456

457

458

459 std::optionalllvm::yaml::Hex32 NBuckets;

460

461

462

464

465

466

467

468

470

471

473};

474

476 std::optional Header;

477 std::optional<std::vectorllvm::yaml::Hex64> BloomFilter;

478 std::optional<std::vectorllvm::yaml::Hex32> HashBuckets;

479 std::optional<std::vectorllvm::yaml::Hex32> HashValues;

480

482

483 std::vector<std::pair<StringRef, bool>> getEntries() const override {

484 return {{"Header", Header.has_value()},

485 {"BloomFilter", BloomFilter.has_value()},

486 {"HashBuckets", HashBuckets.has_value()},

487 {"HashValues", HashValues.has_value()}};

488 };

489

491};

492

499

503 std::vector AuxV;

504};

505

507 std::optional<std::vector> VerneedV;

508 std::optionalllvm::yaml::Hex64 Info;

509

511

512 std::vector<std::pair<StringRef, bool>> getEntries() const override {

513 return {{"Dependencies", VerneedV.has_value()}};

514 };

515

519};

520

522 std::optional<std::vector> Symbols;

523

525

526 std::vector<std::pair<StringRef, bool>> getEntries() const override {

527 return {{"Symbols", Symbols.has_value()}};

528 };

529

531};

532

537

539 std::optional<std::vector> Options;

540

542

543 std::vector<std::pair<StringRef, bool>> getEntries() const override {

544 return {{"Options", Options.has_value()}};

545 };

546

550};

551

553 std::optional<std::vector> Libs;

554

556

557 std::vector<std::pair<StringRef, bool>> getEntries() const override {

558 return {{"Libraries", Libs.has_value()}};

559 };

560

564};

565

566

571

573 std::optional<std::vector> Entries;

574

576

577 std::vector<std::pair<StringRef, bool>> getEntries() const override {

578 return {{"Entries", Entries.has_value()}};

579 };

580

584};

585

587 std::optional<std::vector<uint16_t>> Entries;

588

590

591 std::vector<std::pair<StringRef, bool>> getEntries() const override {

592 return {{"Entries", Entries.has_value()}};

593 };

594

596};

597

606

608 std::optional<std::vector> Entries;

609 std::optionalllvm::yaml::Hex64 Info;

610

612

613 std::vector<std::pair<StringRef, bool>> getEntries() const override {

614 return {{"Entries", Entries.has_value()}};

615 };

616

618};

619

621

622

623 std::optional<std::vector> Members;

624 std::optional Signature;

625

627

628 std::vector<std::pair<StringRef, bool>> getEntries() const override {

629 return {{"Members", Members.has_value()}};

630 };

631

633};

634

641

645

647

648 std::vector<std::pair<StringRef, bool>> getEntries() const override {

649 return {{"Relocations", Relocations.has_value()}};

650 };

651

655};

656

658 std::optional<std::vectorllvm::yaml::Hex64> Entries;

659

661

662 std::vector<std::pair<StringRef, bool>> getEntries() const override {

663 return {{"Entries", Entries.has_value()}};

664 };

665

669};

670

672 std::optional<std::vector<uint32_t>> Entries;

673

675

676 std::vector<std::pair<StringRef, bool>> getEntries() const override {

677 return {{"Entries", Entries.has_value()}};

678 };

679

683};

684

689

691 std::optional<std::vector> Entries;

692

694

695 std::vector<std::pair<StringRef, bool>> getEntries() const override {

696 return {{"Entries", Entries.has_value()}};

697 };

698

702};

703

704

724

730 std::optionalllvm::yaml::Hex64 Align;

731 std::optionalllvm::yaml::Hex64 FileSize;

732 std::optionalllvm::yaml::Hex64 MemSize;

733 std::optionalllvm::yaml::Hex64 Offset;

736

737

739};

740

744

745

746

747 std::vector<std::unique_ptr> Chunks;

748

749

750

751

752

753 std::optional<std::vector> Symbols;

755 std::optionalDWARFYAML::Data DWARF;

756

758 std::vector<Section *> Ret;

759 for (const std::unique_ptr &Sec : Chunks)

761 Ret.push_back(S);

762 return Ret;

763 }

764

766 for (const std::unique_ptr &C : Chunks)

768 return *S;

769 llvm_unreachable("the section header table chunk must always be present");

770 }

771

772 ELF_ELFOSABI getOSAbi() const;

774};

775

777 const NoBitsSection &S);

778

779}

780}

781

789 llvm::ELFYAML::PGOAnalysisMapEntry::PGOBBEntry::SuccessorEntry)

804

805namespace llvm {

806namespace yaml {

807

808template <> struct ScalarTraitsELFYAML::YAMLIntUInt {

809 static void output(const ELFYAML::YAMLIntUInt &Val, void *Ctx,

810 raw_ostream &Out);

811 static StringRef input(StringRef Scalar, void *Ctx,

812 ELFYAML::YAMLIntUInt &Val);

813 static QuotingType mustQuote(StringRef) { return QuotingType::None; }

814};

815

816template <>

817struct ScalarEnumerationTraitsELFYAML::ELF\_ET {

818 static void enumeration(IO &IO, ELFYAML::ELF_ET &Value);

819};

820

821template <> struct ScalarEnumerationTraitsELFYAML::ELF\_PT {

822 static void enumeration(IO &IO, ELFYAML::ELF_PT &Value);

823};

824

825template <> struct ScalarEnumerationTraitsELFYAML::ELF\_NT {

826 static void enumeration(IO &IO, ELFYAML::ELF_NT &Value);

827};

828

829template <>

830struct ScalarEnumerationTraitsELFYAML::ELF\_EM {

831 static void enumeration(IO &IO, ELFYAML::ELF_EM &Value);

832};

833

834template <>

835struct ScalarEnumerationTraitsELFYAML::ELF\_ELFCLASS {

836 static void enumeration(IO &IO, ELFYAML::ELF_ELFCLASS &Value);

837};

838

839template <>

840struct ScalarEnumerationTraitsELFYAML::ELF\_ELFDATA {

841 static void enumeration(IO &IO, ELFYAML::ELF_ELFDATA &Value);

842};

843

844template <>

845struct ScalarEnumerationTraitsELFYAML::ELF\_ELFOSABI {

846 static void enumeration(IO &IO, ELFYAML::ELF_ELFOSABI &Value);

847};

848

849template <>

850struct ScalarBitSetTraitsELFYAML::ELF\_EF {

851 static void bitset(IO &IO, ELFYAML::ELF_EF &Value);

852};

853

854template <> struct ScalarBitSetTraitsELFYAML::ELF\_PF {

855 static void bitset(IO &IO, ELFYAML::ELF_PF &Value);

856};

857

858template <>

859struct ScalarEnumerationTraitsELFYAML::ELF\_SHT {

860 static void enumeration(IO &IO, ELFYAML::ELF_SHT &Value);

861};

862

863template <>

864struct ScalarBitSetTraitsELFYAML::ELF\_SHF {

865 static void bitset(IO &IO, ELFYAML::ELF_SHF &Value);

866};

867

868template <> struct ScalarEnumerationTraitsELFYAML::ELF\_SHN {

869 static void enumeration(IO &IO, ELFYAML::ELF_SHN &Value);

870};

871

872template <> struct ScalarEnumerationTraitsELFYAML::ELF\_STB {

873 static void enumeration(IO &IO, ELFYAML::ELF_STB &Value);

874};

875

876template <>

877struct ScalarEnumerationTraitsELFYAML::ELF\_STT {

878 static void enumeration(IO &IO, ELFYAML::ELF_STT &Value);

879};

880

881template <>

882struct ScalarEnumerationTraitsELFYAML::ELF\_REL {

883 static void enumeration(IO &IO, ELFYAML::ELF_REL &Value);

884};

885

886template <>

887struct ScalarEnumerationTraitsELFYAML::ELF\_DYNTAG {

888 static void enumeration(IO &IO, ELFYAML::ELF_DYNTAG &Value);

889};

890

891template <>

892struct ScalarEnumerationTraitsELFYAML::ELF\_RSS {

893 static void enumeration(IO &IO, ELFYAML::ELF_RSS &Value);

894};

895

896template <>

897struct ScalarEnumerationTraitsELFYAML::MIPS\_AFL\_REG {

898 static void enumeration(IO &IO, ELFYAML::MIPS_AFL_REG &Value);

899};

900

901template <>

902struct ScalarEnumerationTraitsELFYAML::MIPS\_ABI\_FP {

903 static void enumeration(IO &IO, ELFYAML::MIPS_ABI_FP &Value);

904};

905

906template <>

907struct ScalarEnumerationTraitsELFYAML::MIPS\_AFL\_EXT {

908 static void enumeration(IO &IO, ELFYAML::MIPS_AFL_EXT &Value);

909};

910

911template <>

912struct ScalarEnumerationTraitsELFYAML::MIPS\_ISA {

913 static void enumeration(IO &IO, ELFYAML::MIPS_ISA &Value);

914};

915

916template <>

917struct ScalarBitSetTraitsELFYAML::MIPS\_AFL\_ASE {

918 static void bitset(IO &IO, ELFYAML::MIPS_AFL_ASE &Value);

919};

920

921template <>

922struct ScalarBitSetTraitsELFYAML::MIPS\_AFL\_FLAGS1 {

923 static void bitset(IO &IO, ELFYAML::MIPS_AFL_FLAGS1 &Value);

924};

925

926template <>

927struct MappingTraitsELFYAML::FileHeader {

928 static void mapping(IO &IO, ELFYAML::FileHeader &FileHdr);

929};

930

931template <> struct MappingTraitsELFYAML::SectionHeader {

932 static void mapping(IO &IO, ELFYAML::SectionHeader &SHdr);

933};

934

935template <> struct MappingTraitsELFYAML::ProgramHeader {

936 static void mapping(IO &IO, ELFYAML::ProgramHeader &FileHdr);

937 static std::string validate(IO &IO, ELFYAML::ProgramHeader &FileHdr);

938};

939

940template <>

941struct MappingTraitsELFYAML::Symbol {

942 static void mapping(IO &IO, ELFYAML::Symbol &Symbol);

943 static std::string validate(IO &IO, ELFYAML::Symbol &Symbol);

944};

945

946template <> struct MappingTraitsELFYAML::StackSizeEntry {

947 static void mapping(IO &IO, ELFYAML::StackSizeEntry &Rel);

948};

949

950template <> struct MappingTraitsELFYAML::BBAddrMapEntry {

951 static void mapping(IO &IO, ELFYAML::BBAddrMapEntry &E);

952};

953

954template <> struct MappingTraitsELFYAML::BBAddrMapEntry::BBRangeEntry {

955 static void mapping(IO &IO, ELFYAML::BBAddrMapEntry::BBRangeEntry &E);

956};

957

958template <> struct MappingTraitsELFYAML::BBAddrMapEntry::BBEntry {

959 static void mapping(IO &IO, ELFYAML::BBAddrMapEntry::BBEntry &E);

960};

961

962template <> struct MappingTraitsELFYAML::PGOAnalysisMapEntry {

963 static void mapping(IO &IO, ELFYAML::PGOAnalysisMapEntry &Rel);

964};

965

966template <> struct MappingTraitsELFYAML::PGOAnalysisMapEntry::PGOBBEntry {

967 static void mapping(IO &IO, ELFYAML::PGOAnalysisMapEntry::PGOBBEntry &Rel);

968};

969

970template <>

971struct MappingTraitsELFYAML::PGOAnalysisMapEntry::PGOBBEntry::SuccessorEntry {

972 static void

973 mapping(IO &IO,

974 ELFYAML::PGOAnalysisMapEntry::PGOBBEntry::SuccessorEntry &Rel);

975};

976

977template <> struct MappingTraitsELFYAML::GnuHashHeader {

978 static void mapping(IO &IO, ELFYAML::GnuHashHeader &Rel);

979};

980

981template <> struct MappingTraitsELFYAML::DynamicEntry {

982 static void mapping(IO &IO, ELFYAML::DynamicEntry &Rel);

983};

984

985template <> struct MappingTraitsELFYAML::NoteEntry {

986 static void mapping(IO &IO, ELFYAML::NoteEntry &N);

987};

988

989template <> struct MappingTraitsELFYAML::VerdefEntry {

990 static void mapping(IO &IO, ELFYAML::VerdefEntry &E);

991};

992

993template <> struct MappingTraitsELFYAML::VerneedEntry {

994 static void mapping(IO &IO, ELFYAML::VerneedEntry &E);

995};

996

997template <> struct MappingTraitsELFYAML::VernauxEntry {

998 static void mapping(IO &IO, ELFYAML::VernauxEntry &E);

999};

1000

1001template <> struct MappingTraitsELFYAML::LinkerOption {

1002 static void mapping(IO &IO, ELFYAML::LinkerOption &Sym);

1003};

1004

1005template <> struct MappingTraitsELFYAML::CallGraphEntryWeight {

1006 static void mapping(IO &IO, ELFYAML::CallGraphEntryWeight &E);

1007};

1008

1009template <> struct MappingTraitsELFYAML::Relocation {

1010 static void mapping(IO &IO, ELFYAML::Relocation &Rel);

1011};

1012

1013template <> struct MappingTraitsELFYAML::ARMIndexTableEntry {

1014 static void mapping(IO &IO, ELFYAML::ARMIndexTableEntry &E);

1015};

1016

1017template <> struct MappingTraits<std::unique_ptrELFYAML::Chunk> {

1018 static void mapping(IO &IO, std::unique_ptrELFYAML::Chunk &C);

1019 static std::string validate(IO &io, std::unique_ptrELFYAML::Chunk &C);

1020};

1021

1022template <>

1023struct MappingTraitsELFYAML::Object {

1024 static void mapping(IO &IO, ELFYAML::Object &Object);

1025};

1026

1027template <> struct MappingTraitsELFYAML::SectionOrType {

1028 static void mapping(IO &IO, ELFYAML::SectionOrType &sectionOrType);

1029};

1030

1031}

1032}

1033

1034#endif

static GCRegistry::Add< ShadowStackGC > C("shadow-stack", "Very portable GC for uncooperative code generators")

static GCRegistry::Add< CoreCLRGC > E("coreclr", "CoreCLR-compatible GC")

This file declares classes for handling the YAML representation of DWARF Debug Info.

#define LLVM_YAML_IS_SEQUENCE_VECTOR(type)

Utility for declaring that a std::vector of a particular type should be considered a YAML sequence.

#define LLVM_YAML_STRONG_TYPEDEF(_base, _type)

YAML I/O does conversion based on types. But often native data types are just a typedef of built in i...

ArrayRef - Represent a constant reference to an array (0 or more elements consecutively in memory),...

StringRef - Represent a constant reference to a string, i.e.

Twine - A lightweight data structure for efficiently representing the concatenation of temporary valu...

Specialized YAMLIO scalar type for representing a binary blob.

#define llvm_unreachable(msg)

Marks that the current location is not supposed to be reachable.

@ C

The default llvm calling convention, compatible with C.

std::string appendUniqueSuffix(StringRef Name, const Twine &Msg)

unsigned getDefaultShEntSize(unsigned EMachine, ELF_SHT SecType, StringRef SecName)

Definition ELFYAML.h:77

StringRef dropUniqueSuffix(StringRef S)

bool shouldAllocateFileSpace(ArrayRef< ProgramHeader > Phdrs, const NoBitsSection &S)

@ SHT_LLVM_CALL_GRAPH_PROFILE

This is an optimization pass for GlobalISel generic memory operations.

decltype(auto) dyn_cast(const From &Val)

dyn_cast - Return the argument parameter cast to the specified type.

Implement std::hash so that hash_code can be used in STL containers.

llvm::yaml::Hex32 Value

Definition ELFYAML.h:687

llvm::yaml::Hex32 Offset

Definition ELFYAML.h:686

std::vector< std::pair< StringRef, bool > > getEntries() const override

Definition ELFYAML.h:695

ARMIndexTableSection()

Definition ELFYAML.h:693

static bool classof(const Chunk *S)

Definition ELFYAML.h:699

std::optional< std::vector< ARMIndexTableEntry > > Entries

Definition ELFYAML.h:691

std::optional< std::vector< YAMLFlowString > > Symbols

Definition ELFYAML.h:522

std::vector< std::pair< StringRef, bool > > getEntries() const override

Definition ELFYAML.h:526

AddrsigSection()

Definition ELFYAML.h:524

static bool classof(const Chunk *S)

Definition ELFYAML.h:530

std::optional< llvm::yaml::Hex64 > Hash

Definition ELFYAML.h:166

llvm::yaml::Hex64 Metadata

Definition ELFYAML.h:164

std::optional< std::vector< llvm::yaml::Hex64 > > CallsiteEndOffsets

Definition ELFYAML.h:165

uint32_t ID

Definition ELFYAML.h:161

llvm::yaml::Hex64 AddressOffset

Definition ELFYAML.h:162

llvm::yaml::Hex64 Size

Definition ELFYAML.h:163

std::optional< uint64_t > NumBlocks

Definition ELFYAML.h:173

llvm::yaml::Hex64 BaseAddress

Definition ELFYAML.h:172

std::optional< std::vector< BBEntry > > BBEntries

Definition ELFYAML.h:174

uint8_t Version

Definition ELFYAML.h:168

llvm::yaml::Hex64 getFunctionAddress() const

Definition ELFYAML.h:180

std::optional< uint64_t > NumBBRanges

Definition ELFYAML.h:177

llvm::yaml::Hex16 Feature

Definition ELFYAML.h:169

bool hasAnyCallsiteEndOffsets() const

Definition ELFYAML.h:187

std::optional< std::vector< BBRangeEntry > > BBRanges

Definition ELFYAML.h:178

std::vector< std::pair< StringRef, bool > > getEntries() const override

Definition ELFYAML.h:367

static bool classof(const Chunk *S)

Definition ELFYAML.h:371

BBAddrMapSection()

Definition ELFYAML.h:365

std::optional< std::vector< BBAddrMapEntry > > Entries

Definition ELFYAML.h:362

std::optional< std::vector< PGOAnalysisMapEntry > > PGOAnalyses

Definition ELFYAML.h:363

uint64_t Weight

Definition ELFYAML.h:569

std::optional< std::vector< CallGraphEntryWeight > > Entries

Definition ELFYAML.h:573

CallGraphProfileSection()

Definition ELFYAML.h:575

std::vector< std::pair< StringRef, bool > > getEntries() const override

Definition ELFYAML.h:577

static bool classof(const Chunk *S)

Definition ELFYAML.h:581

Chunk(ChunkKind K, bool Implicit)

Definition ELFYAML.h:265

StringRef Name

Definition ELFYAML.h:258

std::optional< llvm::yaml::Hex64 > Offset

Definition ELFYAML.h:259

ChunkKind

Definition ELFYAML.h:228

@ NoBits

Definition ELFYAML.h:234

@ Group

Definition ELFYAML.h:230

@ GnuHash

Definition ELFYAML.h:237

@ Verdef

Definition ELFYAML.h:238

@ Relr

Definition ELFYAML.h:233

@ Addrsig

Definition ELFYAML.h:245

@ Verneed

Definition ELFYAML.h:239

@ Symver

Definition ELFYAML.h:242

@ Note

Definition ELFYAML.h:235

@ ARMIndexTable

Definition ELFYAML.h:243

@ DependentLibraries

Definition ELFYAML.h:247

@ Relocation

Definition ELFYAML.h:232

@ StackSizes

Definition ELFYAML.h:240

@ BBAddrMap

Definition ELFYAML.h:249

@ Dynamic

Definition ELFYAML.h:229

@ LinkerOptions

Definition ELFYAML.h:246

@ SymtabShndxSection

Definition ELFYAML.h:241

@ RawContent

Definition ELFYAML.h:231

@ MipsABIFlags

Definition ELFYAML.h:244

@ Fill

Definition ELFYAML.h:253

@ SpecialChunksStart

Definition ELFYAML.h:252

@ SectionHeaderTable

Definition ELFYAML.h:254

@ CallGraphProfile

Definition ELFYAML.h:248

@ Hash

Definition ELFYAML.h:236

ChunkKind Kind

Definition ELFYAML.h:257

bool IsImplicit

Definition ELFYAML.h:263

std::vector< std::pair< StringRef, bool > > getEntries() const override

Definition ELFYAML.h:557

DependentLibrariesSection()

Definition ELFYAML.h:555

static bool classof(const Chunk *S)

Definition ELFYAML.h:561

std::optional< std::vector< YAMLFlowString > > Libs

Definition ELFYAML.h:553

llvm::yaml::Hex64 Val

Definition ELFYAML.h:156

ELF_DYNTAG Tag

Definition ELFYAML.h:155

std::vector< std::pair< StringRef, bool > > getEntries() const override

Definition ELFYAML.h:399

static bool classof(const Chunk *S)

Definition ELFYAML.h:403

std::optional< std::vector< DynamicEntry > > Entries

Definition ELFYAML.h:395

DynamicSection()

Definition ELFYAML.h:397

llvm::yaml::Hex64 Size

Definition ELFYAML.h:329

std::optional< yaml::BinaryRef > Pattern

Definition ELFYAML.h:328

static bool classof(const Chunk *S)

Definition ELFYAML.h:333

Fill()

Definition ELFYAML.h:331

GnuHashSection()

Definition ELFYAML.h:481

std::optional< std::vector< llvm::yaml::Hex64 > > BloomFilter

Definition ELFYAML.h:477

std::optional< std::vector< llvm::yaml::Hex32 > > HashBuckets

Definition ELFYAML.h:478

std::vector< std::pair< StringRef, bool > > getEntries() const override

Definition ELFYAML.h:483

static bool classof(const Chunk *S)

Definition ELFYAML.h:490

std::optional< GnuHashHeader > Header

Definition ELFYAML.h:476

std::optional< std::vector< llvm::yaml::Hex32 > > HashValues

Definition ELFYAML.h:479

static bool classof(const Chunk *S)

Definition ELFYAML.h:632

std::optional< std::vector< SectionOrType > > Members

Definition ELFYAML.h:623

std::vector< std::pair< StringRef, bool > > getEntries() const override

Definition ELFYAML.h:628

GroupSection()

Definition ELFYAML.h:626

std::optional< StringRef > Signature

Definition ELFYAML.h:624

std::optional< std::vector< uint32_t > > Chain

Definition ELFYAML.h:439

HashSection()

Definition ELFYAML.h:450

std::vector< std::pair< StringRef, bool > > getEntries() const override

Definition ELFYAML.h:441

std::optional< llvm::yaml::Hex64 > NChain

Definition ELFYAML.h:448

static bool classof(const Chunk *S)

Definition ELFYAML.h:452

std::optional< std::vector< uint32_t > > Bucket

Definition ELFYAML.h:438

std::optional< llvm::yaml::Hex64 > NBucket

Definition ELFYAML.h:447

StringRef Key

Definition ELFYAML.h:534

StringRef Value

Definition ELFYAML.h:535

std::optional< std::vector< LinkerOption > > Options

Definition ELFYAML.h:539

static bool classof(const Chunk *S)

Definition ELFYAML.h:547

std::vector< std::pair< StringRef, bool > > getEntries() const override

Definition ELFYAML.h:543

LinkerOptionsSection()

Definition ELFYAML.h:541

MipsABIFlags()

Definition ELFYAML.h:718

llvm::yaml::Hex16 Version

Definition ELFYAML.h:706

static bool classof(const Chunk *S)

Definition ELFYAML.h:720

MIPS_AFL_REG GPRSize

Definition ELFYAML.h:709

MIPS_AFL_FLAGS1 Flags1

Definition ELFYAML.h:715

MIPS_AFL_REG CPR2Size

Definition ELFYAML.h:711

llvm::yaml::Hex8 ISARevision

Definition ELFYAML.h:708

MIPS_ABI_FP FpABI

Definition ELFYAML.h:712

MIPS_AFL_ASE ASEs

Definition ELFYAML.h:714

MIPS_AFL_REG CPR1Size

Definition ELFYAML.h:710

MIPS_ISA ISALevel

Definition ELFYAML.h:707

MIPS_AFL_EXT ISAExtension

Definition ELFYAML.h:713

llvm::yaml::Hex32 Flags2

Definition ELFYAML.h:716

static bool classof(const Chunk *S)

Definition ELFYAML.h:422

NoBitsSection()

Definition ELFYAML.h:420

yaml::BinaryRef Desc

Definition ELFYAML.h:223

ELF_NT Type

Definition ELFYAML.h:224

StringRef Name

Definition ELFYAML.h:222

std::vector< std::pair< StringRef, bool > > getEntries() const override

Definition ELFYAML.h:430

std::optional< std::vector< ELFYAML::NoteEntry > > Notes

Definition ELFYAML.h:426

static bool classof(const Chunk *S)

Definition ELFYAML.h:434

NoteSection()

Definition ELFYAML.h:428

std::optional< std::vector< Symbol > > DynamicSymbols

Definition ELFYAML.h:754

unsigned getMachine() const

std::optional< DWARFYAML::Data > DWARF

Definition ELFYAML.h:755

const SectionHeaderTable & getSectionHeaderTable() const

Definition ELFYAML.h:765

FileHeader Header

Definition ELFYAML.h:742

std::vector< std::unique_ptr< Chunk > > Chunks

Definition ELFYAML.h:747

ELF_ELFOSABI getOSAbi() const

std::vector< ProgramHeader > ProgramHeaders

Definition ELFYAML.h:743

std::optional< std::vector< Symbol > > Symbols

Definition ELFYAML.h:753

std::vector< Section * > getSections()

Definition ELFYAML.h:757

llvm::yaml::Hex32 BrProb

Definition ELFYAML.h:205

uint32_t ID

Definition ELFYAML.h:204

std::optional< uint32_t > PostLinkBrFreq

Definition ELFYAML.h:206

std::optional< std::vector< SuccessorEntry > > Successors

Definition ELFYAML.h:210

std::optional< uint64_t > BBFreq

Definition ELFYAML.h:208

std::optional< uint32_t > PostLinkBBFreq

Definition ELFYAML.h:209

std::optional< std::vector< PGOBBEntry > > PGOBBEntries

Definition ELFYAML.h:213

std::optional< uint64_t > FuncEntryCount

Definition ELFYAML.h:212

static bool classof(const Chunk *S)

Definition ELFYAML.h:411

std::optional< llvm::yaml::Hex64 > Info

Definition ELFYAML.h:407

RawContentSection()

Definition ELFYAML.h:409

std::optional< std::vector< uint8_t > > ContentBuf

Definition ELFYAML.h:416

std::vector< std::pair< StringRef, bool > > getEntries() const override

Definition ELFYAML.h:648

std::optional< std::vector< Relocation > > Relocations

Definition ELFYAML.h:643

StringRef RelocatableSec

Definition ELFYAML.h:644

RelocationSection()

Definition ELFYAML.h:646

static bool classof(const Chunk *S)

Definition ELFYAML.h:652

YAMLIntUInt Addend

Definition ELFYAML.h:637

std::optional< StringRef > Symbol

Definition ELFYAML.h:639

ELF_REL Type

Definition ELFYAML.h:638

llvm::yaml::Hex64 Offset

Definition ELFYAML.h:636

static bool classof(const Chunk *S)

Definition ELFYAML.h:666

std::vector< std::pair< StringRef, bool > > getEntries() const override

Definition ELFYAML.h:662

RelrSection()

Definition ELFYAML.h:660

std::optional< std::vector< llvm::yaml::Hex64 > > Entries

Definition ELFYAML.h:658

StringRef sectionNameOrType

Definition ELFYAML.h:151

std::optional< llvm::yaml::Hex64 > Address

Definition ELFYAML.h:272

std::optional< StringRef > Link

Definition ELFYAML.h:273

Section(ChunkKind Kind, bool IsImplicit=false)

Definition ELFYAML.h:283

std::optional< llvm::yaml::Hex64 > Size

Definition ELFYAML.h:278

static bool classof(const Chunk *S)

Definition ELFYAML.h:285

std::optional< llvm::yaml::Hex64 > ShAddrAlign

Definition ELFYAML.h:300

llvm::yaml::Hex64 AddressAlign

Definition ELFYAML.h:274

unsigned OriginalSecNdx

Definition ELFYAML.h:281

std::optional< ELF_SHF > Flags

Definition ELFYAML.h:271

std::optional< ELF_SHT > ShType

Definition ELFYAML.h:321

std::optional< llvm::yaml::Hex64 > ShOffset

Definition ELFYAML.h:308

virtual std::vector< std::pair< StringRef, bool > > getEntries() const

Definition ELFYAML.h:292

std::optional< llvm::yaml::Hex64 > ShFlags

Definition ELFYAML.h:315

std::optional< llvm::yaml::Hex64 > ShName

Definition ELFYAML.h:304

std::optional< yaml::BinaryRef > Content

Definition ELFYAML.h:277

std::optional< llvm::yaml::Hex64 > EntSize

Definition ELFYAML.h:275

std::optional< llvm::yaml::Hex64 > ShSize

Definition ELFYAML.h:312

ELF_SHT Type

Definition ELFYAML.h:270

llvm::yaml::Hex64 Size

Definition ELFYAML.h:218

llvm::yaml::Hex64 Address

Definition ELFYAML.h:217

static bool classof(const Chunk *S)

Definition ELFYAML.h:385

static bool nameMatches(StringRef Name)

Definition ELFYAML.h:389

std::vector< std::pair< StringRef, bool > > getEntries() const override

Definition ELFYAML.h:381

StackSizesSection()

Definition ELFYAML.h:379

std::optional< std::vector< StackSizeEntry > > Entries

Definition ELFYAML.h:377

ELF_STB Binding

Definition ELFYAML.h:142

std::optional< ELF_SHN > Index

Definition ELFYAML.h:141

std::optional< StringRef > Section

Definition ELFYAML.h:140

ELF_STT Type

Definition ELFYAML.h:139

std::optional< uint8_t > Other

Definition ELFYAML.h:145

std::optional< uint32_t > StName

Definition ELFYAML.h:147

StringRef Name

Definition ELFYAML.h:138

std::optional< llvm::yaml::Hex64 > Value

Definition ELFYAML.h:143

std::optional< llvm::yaml::Hex64 > Size

Definition ELFYAML.h:144

std::vector< std::pair< StringRef, bool > > getEntries() const override

Definition ELFYAML.h:676

static bool classof(const Chunk *S)

Definition ELFYAML.h:680

std::optional< std::vector< uint32_t > > Entries

Definition ELFYAML.h:672

SymtabShndxSection()

Definition ELFYAML.h:674

std::optional< std::vector< uint16_t > > Entries

Definition ELFYAML.h:587

std::vector< std::pair< StringRef, bool > > getEntries() const override

Definition ELFYAML.h:591

static bool classof(const Chunk *S)

Definition ELFYAML.h:595

SymverSection()

Definition ELFYAML.h:589

std::optional< uint16_t > Flags

Definition ELFYAML.h:600

std::optional< uint16_t > VDAux

Definition ELFYAML.h:603

std::vector< StringRef > VerNames

Definition ELFYAML.h:604

std::optional< uint16_t > VersionNdx

Definition ELFYAML.h:601

std::optional< uint16_t > Version

Definition ELFYAML.h:599

std::optional< uint32_t > Hash

Definition ELFYAML.h:602

VerdefSection()

Definition ELFYAML.h:611

static bool classof(const Chunk *S)

Definition ELFYAML.h:617

std::vector< std::pair< StringRef, bool > > getEntries() const override

Definition ELFYAML.h:613

std::optional< llvm::yaml::Hex64 > Info

Definition ELFYAML.h:609

std::optional< std::vector< VerdefEntry > > Entries

Definition ELFYAML.h:608

uint16_t Flags

Definition ELFYAML.h:495

uint32_t Hash

Definition ELFYAML.h:494

uint16_t Other

Definition ELFYAML.h:496

StringRef Name

Definition ELFYAML.h:497

std::vector< VernauxEntry > AuxV

Definition ELFYAML.h:503

StringRef File

Definition ELFYAML.h:502

uint16_t Version

Definition ELFYAML.h:501

std::vector< std::pair< StringRef, bool > > getEntries() const override

Definition ELFYAML.h:512

std::optional< llvm::yaml::Hex64 > Info

Definition ELFYAML.h:508

static bool classof(const Chunk *S)

Definition ELFYAML.h:516

std::optional< std::vector< VerneedEntry > > VerneedV

Definition ELFYAML.h:507

VerneedSection()

Definition ELFYAML.h:510