[llvm] [SHT_LLVM_BB_ADDR_MAP] Deprecate SHT_LLVM_BB_ADDR_MAP versions 0 and 1. (PR #74107)
Rahman Lavaee via llvm-commits
llvm-commits at lists.llvm.org
Fri Dec 1 09:06:03 PST 2023
https://github.com/rlavaee created https://github.com/llvm/llvm-project/pull/74107
Old versions are stale (more than 9 months old) and can be deprecated from tools and codegen.
>From 92c248f757f2d56bcc41a221a338a56d6721aa50 Mon Sep 17 00:00:00 2001
From: Rahman Lavaee <rahmanl at google.com>
Date: Fri, 1 Dec 2023 09:27:35 +0000
Subject: [PATCH] [SHT_LLVM_BB_ADDR_MAP] Deprecate SHT_LLVM_BB_ADDR_MAP
versions 0 and 1.
---
llvm/include/llvm/BinaryFormat/ELF.h | 3 -
llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp | 16 ++-
llvm/lib/MC/MCSectionELF.cpp | 2 -
llvm/lib/Object/ELF.cpp | 11 +-
llvm/lib/Object/ELFObjectFile.cpp | 3 +-
llvm/lib/ObjectYAML/ELFEmitter.cpp | 2 +-
llvm/lib/ObjectYAML/ELFYAML.cpp | 2 -
...ddrmap-disassemble-symbolize-operands.yaml | 59 -----------
.../tools/llvm-readobj/ELF/bb-addr-map.test | 100 ------------------
llvm/test/tools/obj2yaml/ELF/bb-addr-map.yaml | 81 --------------
llvm/tools/llvm-readobj/ELFDumper.cpp | 3 +-
llvm/tools/obj2yaml/elf2yaml.cpp | 3 +-
llvm/unittests/Object/ELFObjectFileTest.cpp | 14 +--
13 files changed, 21 insertions(+), 278 deletions(-)
diff --git a/llvm/include/llvm/BinaryFormat/ELF.h b/llvm/include/llvm/BinaryFormat/ELF.h
index d1ce8e20b4be73a..d55bbd57cadc447 100644
--- a/llvm/include/llvm/BinaryFormat/ELF.h
+++ b/llvm/include/llvm/BinaryFormat/ELF.h
@@ -1034,9 +1034,6 @@ enum : unsigned {
SHT_LLVM_SYMPART = 0x6fff4c05, // Symbol partition specification.
SHT_LLVM_PART_EHDR = 0x6fff4c06, // ELF header for loadable partition.
SHT_LLVM_PART_PHDR = 0x6fff4c07, // Phdrs for loadable partition.
- SHT_LLVM_BB_ADDR_MAP_V0 =
- 0x6fff4c08, // LLVM Basic Block Address Map (old version kept for
- // backward-compatibility).
SHT_LLVM_CALL_GRAPH_PROFILE = 0x6fff4c09, // LLVM Call Graph Profile.
SHT_LLVM_BB_ADDR_MAP = 0x6fff4c0a, // LLVM Basic Block Address Map.
SHT_LLVM_OFFLOADING = 0x6fff4c0b, // LLVM device offloading data.
diff --git a/llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp b/llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp
index 15ff39883680369..3ae3c5d7063db1f 100644
--- a/llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp
+++ b/llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp
@@ -1376,16 +1376,12 @@ void AsmPrinter::emitBBAddrMapSection(const MachineFunction &MF) {
for (const MachineBasicBlock &MBB : MF) {
const MCSymbol *MBBSymbol =
MBB.isEntryBlock() ? FunctionSymbol : MBB.getSymbol();
- // TODO: Remove this check when version 1 is deprecated.
- if (BBAddrMapVersion > 1) {
- OutStreamer->AddComment("BB id");
- // Emit the BB ID for this basic block.
- // We only emit BaseID since CloneID is unset for
- // basic-block-sections=labels.
- // TODO: Emit the full BBID when labels and sections can be mixed
- // together.
- OutStreamer->emitULEB128IntValue(MBB.getBBID()->BaseID);
- }
+ OutStreamer->AddComment("BB id");
+ // Emit the BB ID for this basic block.
+ // We only emit BaseID since CloneID is unset for
+ // basic-block-sections=labels.
+ // TODO: Emit the full BBID when labels and sections can be mixed together.
+ OutStreamer->emitULEB128IntValue(MBB.getBBID()->BaseID);
// Emit the basic block offset relative to the end of the previous block.
// This is zero unless the block is padded due to alignment.
emitLabelDifferenceAsULEB128(MBBSymbol, PrevMBBEndSymbol);
diff --git a/llvm/lib/MC/MCSectionELF.cpp b/llvm/lib/MC/MCSectionELF.cpp
index 95fdf33522076e4..24b36aed6289843 100644
--- a/llvm/lib/MC/MCSectionELF.cpp
+++ b/llvm/lib/MC/MCSectionELF.cpp
@@ -168,8 +168,6 @@ void MCSectionELF::printSwitchToSection(const MCAsmInfo &MAI, const Triple &T,
OS << "llvm_sympart";
else if (Type == ELF::SHT_LLVM_BB_ADDR_MAP)
OS << "llvm_bb_addr_map";
- else if (Type == ELF::SHT_LLVM_BB_ADDR_MAP_V0)
- OS << "llvm_bb_addr_map_v0";
else if (Type == ELF::SHT_LLVM_OFFLOADING)
OS << "llvm_offloading";
else if (Type == ELF::SHT_LLVM_LTO)
diff --git a/llvm/lib/Object/ELF.cpp b/llvm/lib/Object/ELF.cpp
index 1d73a6ffa73f5f9..c76383011028e9a 100644
--- a/llvm/lib/Object/ELF.cpp
+++ b/llvm/lib/Object/ELF.cpp
@@ -310,7 +310,6 @@ StringRef llvm::object::getELFSectionTypeName(uint32_t Machine, unsigned Type) {
STRINGIFY_ENUM_CASE(ELF, SHT_LLVM_SYMPART);
STRINGIFY_ENUM_CASE(ELF, SHT_LLVM_PART_EHDR);
STRINGIFY_ENUM_CASE(ELF, SHT_LLVM_PART_PHDR);
- STRINGIFY_ENUM_CASE(ELF, SHT_LLVM_BB_ADDR_MAP_V0);
STRINGIFY_ENUM_CASE(ELF, SHT_LLVM_BB_ADDR_MAP);
STRINGIFY_ENUM_CASE(ELF, SHT_LLVM_OFFLOADING);
STRINGIFY_ENUM_CASE(ELF, SHT_LLVM_LTO);
@@ -728,15 +727,13 @@ ELFFile<ELFT>::decodeBBAddrMap(const Elf_Shdr &Sec,
for (uint32_t BlockIndex = 0;
!MetadataDecodeErr && !ULEBSizeErr && Cur && (BlockIndex < NumBlocks);
++BlockIndex) {
- uint32_t ID = Version >= 2 ? ReadULEB128AsUInt32() : BlockIndex;
+ uint32_t ID = ReadULEB128AsUInt32();
uint32_t Offset = ReadULEB128AsUInt32();
uint32_t Size = ReadULEB128AsUInt32();
uint32_t MD = ReadULEB128AsUInt32();
- if (Version >= 1) {
- // Offset is calculated relative to the end of the previous BB.
- Offset += PrevBBEndOffset;
- PrevBBEndOffset = Offset + Size;
- }
+ // Offset is calculated relative to the end of the previous BB.
+ Offset += PrevBBEndOffset;
+ PrevBBEndOffset = Offset + Size;
Expected<BBAddrMap::BBEntry::Metadata> MetadataOrErr =
BBAddrMap::BBEntry::Metadata::decode(MD);
if (!MetadataOrErr) {
diff --git a/llvm/lib/Object/ELFObjectFile.cpp b/llvm/lib/Object/ELFObjectFile.cpp
index 25dbcbd68431f58..4791a3b7cc4aad6 100644
--- a/llvm/lib/Object/ELFObjectFile.cpp
+++ b/llvm/lib/Object/ELFObjectFile.cpp
@@ -723,8 +723,7 @@ Expected<std::vector<BBAddrMap>> static readBBAddrMapImpl(
const auto &Sections = cantFail(EF.sections());
auto IsMatch = [&](const Elf_Shdr &Sec) -> Expected<bool> {
- if (Sec.sh_type != ELF::SHT_LLVM_BB_ADDR_MAP &&
- Sec.sh_type != ELF::SHT_LLVM_BB_ADDR_MAP_V0)
+ if (Sec.sh_type != ELF::SHT_LLVM_BB_ADDR_MAP)
return false;
if (!TextSectionIndex)
return true;
diff --git a/llvm/lib/ObjectYAML/ELFEmitter.cpp b/llvm/lib/ObjectYAML/ELFEmitter.cpp
index 40f81f867efa423..969260e49c6ca58 100644
--- a/llvm/lib/ObjectYAML/ELFEmitter.cpp
+++ b/llvm/lib/ObjectYAML/ELFEmitter.cpp
@@ -1415,7 +1415,7 @@ void ELFState<ELFT>::writeSectionContent(
if (!E.BBEntries)
continue;
for (const ELFYAML::BBAddrMapEntry::BBEntry &BBE : *E.BBEntries) {
- if (Section.Type == llvm::ELF::SHT_LLVM_BB_ADDR_MAP && E.Version > 1)
+ if (Section.Type == llvm::ELF::SHT_LLVM_BB_ADDR_MAP)
SHeader.sh_size += CBA.writeULEB128(BBE.ID);
SHeader.sh_size += CBA.writeULEB128(BBE.AddressOffset) +
CBA.writeULEB128(BBE.Size) +
diff --git a/llvm/lib/ObjectYAML/ELFYAML.cpp b/llvm/lib/ObjectYAML/ELFYAML.cpp
index 1da4ea4e3edc919..1b99ed2ceb1317d 100644
--- a/llvm/lib/ObjectYAML/ELFYAML.cpp
+++ b/llvm/lib/ObjectYAML/ELFYAML.cpp
@@ -683,7 +683,6 @@ void ScalarEnumerationTraits<ELFYAML::ELF_SHT>::enumeration(
ECase(SHT_LLVM_SYMPART);
ECase(SHT_LLVM_PART_EHDR);
ECase(SHT_LLVM_PART_PHDR);
- ECase(SHT_LLVM_BB_ADDR_MAP_V0);
ECase(SHT_LLVM_BB_ADDR_MAP);
ECase(SHT_LLVM_OFFLOADING);
ECase(SHT_LLVM_LTO);
@@ -1678,7 +1677,6 @@ void MappingTraits<std::unique_ptr<ELFYAML::Chunk>>::mapping(
Section.reset(new ELFYAML::CallGraphProfileSection());
sectionMapping(IO, *cast<ELFYAML::CallGraphProfileSection>(Section.get()));
break;
- case ELF::SHT_LLVM_BB_ADDR_MAP_V0:
case ELF::SHT_LLVM_BB_ADDR_MAP:
if (!IO.outputting())
Section.reset(new ELFYAML::BBAddrMapSection());
diff --git a/llvm/test/tools/llvm-objdump/X86/elf-bbaddrmap-disassemble-symbolize-operands.yaml b/llvm/test/tools/llvm-objdump/X86/elf-bbaddrmap-disassemble-symbolize-operands.yaml
index 2e9eb9af35615aa..7e0ce088e8410ac 100644
--- a/llvm/test/tools/llvm-objdump/X86/elf-bbaddrmap-disassemble-symbolize-operands.yaml
+++ b/llvm/test/tools/llvm-objdump/X86/elf-bbaddrmap-disassemble-symbolize-operands.yaml
@@ -30,16 +30,6 @@
# ATT-NEXT: jmp <BB1>
# ATT-NEXT: <BB5>:
# ATT-NEXT: retq
-# ATT: <bar>:
-# ATT-NEXT: <BB0>:
-# ATT-NEXT: pushq %rax
-# ATT-NEXT: movl %edx, %eax
-# ATT-NEXT: je <BB2>
-# ATT-NEXT: <BB1>:
-# ATT-NEXT: xorl %esi, %esi
-# ATT-NEXT: <BB2>:
-# ATT-NEXT: callq <bar>
-# ATT-NEXT: retq
# INTEL: <foo>:
# INTEL-NEXT: <BB3>:
@@ -52,16 +42,6 @@
# INTEL-NEXT: jmp <BB1>
# INTEL-NEXT: <BB5>:
# INTEL-NEXT: ret
-# INTEL: <bar>:
-# INTEL-NEXT: <BB0>:
-# INTEL-NEXT: push rax
-# INTEL-NEXT: mov eax, edx
-# INTEL-NEXT: je <BB2>
-# INTEL-NEXT: <BB1>:
-# INTEL-NEXT: xor esi, esi
-# INTEL-NEXT: <BB2>:
-# INTEL-NEXT: call <bar>
-# INTEL-NEXT: ret
## This object file contains a separate text section and SHT_LLVM_BB_ADDR_MAP
## section for each of the two functions foo and bar.
@@ -111,30 +91,11 @@ Sections:
AddressOffset: 0x0
Size: 0x1
Metadata: 0x2
- - Name: .llvm_bb_addr_map.bar
- Type: SHT_LLVM_BB_ADDR_MAP
- Link: .text.bar
- Entries:
- - Version: 1
- Address: [[BAR_ADDR]]
- BBEntries:
- - AddressOffset: 0x0
- Size: 0x1
- Metadata: 0x1
- - AddressOffset: 0x4
- Size: 0x2
- Metadata: 0x0
- - AddressOffset: 0x0
- Size: 0x6
- Metadata: 0x0
Symbols:
- Name: foo
Section: .text.foo
Value: [[FOO_ADDR]]
- - Name: bar
- Section: .text.bar
- Value: [[BAR_ADDR]]
- Name: symbol
Section: .data
Value: 0x600c
@@ -153,11 +114,6 @@ Sections:
Address: 0x4000
Flags: [SHF_ALLOC, SHF_EXECINSTR]
Content: '503b0505200000907d02ebf5c3'
- - Name: .text.bar
- Type: SHT_PROGBITS
- Address: 0x5000
- Flags: [SHF_ALLOC, SHF_EXECINSTR]
- Content: '5089d0740231f6e8f4ffffffc3'
- Name: .data
Type: SHT_PROGBITS
Flags: [SHF_ALLOC, SHF_WRITE]
@@ -185,26 +141,11 @@ Sections:
AddressOffset: 0x0
Size: 0x1
Metadata: 0x2
- - Version: 1
- Address: 0x5000
- BBEntries:
- - AddressOffset: 0x0
- Size: 0x1
- Metadata: 0x1
- - AddressOffset: 0x4
- Size: 0x2
- Metadata: 0x0
- - AddressOffset: 0x0
- Size: 0x6
- Metadata: 0x0
Symbols:
- Name: foo
Section: .text.foo
Value: 0x4000
- - Name: bar
- Section: .text.bar
- Value: 0x5000
- Name: symbol
Section: .data
Value: 0x600c
diff --git a/llvm/test/tools/llvm-readobj/ELF/bb-addr-map.test b/llvm/test/tools/llvm-readobj/ELF/bb-addr-map.test
index 92805701751078f..f2ba84bca92daf6 100644
--- a/llvm/test/tools/llvm-readobj/ELF/bb-addr-map.test
+++ b/llvm/test/tools/llvm-readobj/ELF/bb-addr-map.test
@@ -171,103 +171,3 @@ Symbols:
Section: .text.bar
Type: STT_FUNC
Value: 0x33333
-
-## Check that using the SHT_LLVM_BB_ADDR_MAP_V0 section type generates the same
-## result as using the SHT_LLVM_BB_ADDR_MAP section type with Version=0.
-## The Version field is required even for SHT_LLVM_BB_ADDR_MAP_V0 but it
-## should not impact the result. This unideal behavior will be gone once
-## SHT_LLVM_BB_ADDR_MAP_V0 is deprecated.
-
-# RUN: yaml2obj --docnum=2 %s -DVERSION=255 -DSECTION_TYPE=SHT_LLVM_BB_ADDR_MAP_V0 -o %t2.type0
-# RUN: llvm-readobj %t2.type0 --bb-addr-map 2>&1 | FileCheck %s --check-prefix=V0
-
-# RUN: yaml2obj --docnum=2 %s -DVERSION=0 -DSECTION_TYPE=SHT_LLVM_BB_ADDR_MAP -o %t2.version0
-# RUN: llvm-readobj %t2.version0 --bb-addr-map 2>&1 | FileCheck %s --check-prefix=V0
-
-# V0: BBAddrMap [
-# V0-NEXT: Function {
-# V0-NEXT: At: 0x11111
-# V0-NEXT: Name: foo
-# V0-NEXT: BB entries [
-# V0-NEXT: {
-# V0-NEXT: ID: 0
-# V0-NEXT: Offset: 0x1
-# V0-NEXT: Size: 0x2
-# V0-NEXT: HasReturn:
-# V0-NEXT: HasTailCall:
-# V0-NEXT: IsEHPad:
-# V0-NEXT: CanFallThrough:
-# V0-NEXT: HasIndirectBranch:
-# V0-NEXT: }
-# V0-NEXT: {
-# V0-NEXT: ID: 1
-# V0-NEXT: Offset: 0x4
-# V0-NEXT: Size: 0x5
-# V0-NEXT: HasReturn:
-# V0-NEXT: HasTailCall:
-# V0-NEXT: IsEHPad:
-# V0-NEXT: CanFallThrough:
-# V0-NEXT: HasIndirectBranch:
-# V0-NEXT: }
-# V0-NEXT: ]
-# V0-NEXT: }
-
-## Check version 1 (without BB IDs).
-# RUN: yaml2obj --docnum=2 %s -DVERSION=1 -DSECTION_TYPE=SHT_LLVM_BB_ADDR_MAP -o %t3
-# RUN: llvm-readobj %t3 --bb-addr-map 2>&1 | FileCheck %s --check-prefix=V1
-
-# V1: BBAddrMap [
-# V1-NEXT: Function {
-# V1-NEXT: At: 0x11111
-# V1-NEXT: Name: foo
-# V1-NEXT: BB entries [
-# V1-NEXT: {
-# V1-NEXT: ID: 0
-# V1-NEXT: Offset: 0x1
-# V1-NEXT: Size: 0x2
-# V1-NEXT: HasReturn:
-# V1-NEXT: HasTailCall:
-# V1-NEXT: IsEHPad:
-# V1-NEXT: CanFallThrough:
-# V1-NEXT: HasIndirectBranch:
-# V1-NEXT: }
-# V1-NEXT: {
-# V1-NEXT: ID: 1
-# V1-NEXT: Offset: 0x7
-# V1-NEXT: Size: 0x5
-# V1-NEXT: HasReturn:
-# V1-NEXT: HasTailCall:
-# V1-NEXT: IsEHPad:
-# V1-NEXT: CanFallThrough:
-# V1-NEXT: HasIndirectBranch:
-# V1-NEXT: }
-# V1-NEXT: ]
-# V1-NEXT: }
-
---- !ELF
-FileHeader:
- Class: ELFCLASS64
- Data: ELFDATA2LSB
- Type: ET_EXEC
-Sections:
- - Name: .text.foo
- Type: SHT_PROGBITS
- Flags: [SHF_ALLOC]
- - Name: .llvm_bb_addr_map
- Type: [[SECTION_TYPE]]
- Link: .text.foo
- Entries:
- - Version: [[VERSION]]
- Address: 0x11111
- BBEntries:
- - AddressOffset: 0x1
- Size: 0x2
- Metadata: 0x3
- - AddressOffset: 0x4
- Size: 0x5
- Metadata: 0x6
-Symbols:
- - Name: foo
- Section: .text.foo
- Type: STT_FUNC
- Value: 0x11111
diff --git a/llvm/test/tools/obj2yaml/ELF/bb-addr-map.yaml b/llvm/test/tools/obj2yaml/ELF/bb-addr-map.yaml
index eceb42f6598f0fd..2c7d1eb79ef0a8b 100644
--- a/llvm/test/tools/obj2yaml/ELF/bb-addr-map.yaml
+++ b/llvm/test/tools/obj2yaml/ELF/bb-addr-map.yaml
@@ -175,84 +175,3 @@ Sections:
# INVALID-NEXT: Type: SHT_LLVM_BB_ADDR_MAP
# BADNUMBLOCKS-NEXT: Content: {{([[:xdigit:]]+)}}{{$}}
# TRUNCATED-NEXT: Content: {{([[:xdigit:]]{16})}}{{$}}
-
-## Check obj2yaml for SHT_LLVM_BB_ADDR_MAP_V0.
-# RUN: yaml2obj --docnum=4 %s -o %t6
-# RUN: obj2yaml %t6 | FileCheck %s --check-prefix=V0
-
-# V0: --- !ELF
-# V0-NEXT: FileHeader:
-# V0-NEXT: Class: ELFCLASS64
-# V0-NEXT: Data: ELFDATA2LSB
-# V0-NEXT: Type: ET_EXEC
-# V0-NEXT: Sections:
-# V0-NEXT: - Name: .llvm_bb_addr_map
-# V0-NEXT: Type: SHT_LLVM_BB_ADDR_MAP_V0
-# V0-NEXT: Entries:
-# V0-NEXT: - Version: 0
-# V0-NEXT: Address: 0x1111
-# V0-NEXT: BBEntries:
-# V0-NEXT: - ID: 0
-# V0-NEXT: AddressOffset: 0x1
-# V0-NEXT: Size: 0x2
-# V0-NEXT: Metadata: 0x3
-
---- !ELF
-FileHeader:
- Class: ELFCLASS64
- Data: ELFDATA2LSB
- Type: ET_EXEC
-Sections:
- - Name: .llvm_bb_addr_map
- Type: SHT_LLVM_BB_ADDR_MAP_V0
- Entries:
- - Version: 0
- Address: 0x1111
- BBEntries:
- - AddressOffset: 0x1
- Size: 0x2
- Metadata: 0x3
-
-## Check obj2yaml for version 1.
-# RUN: yaml2obj --docnum=5 %s -o %t7
-# RUN: obj2yaml %t7 | FileCheck %s --check-prefix=V1
-
-# V1: --- !ELF
-# V1-NEXT: FileHeader:
-# V1-NEXT: Class: ELFCLASS64
-# V1-NEXT: Data: ELFDATA2LSB
-# V1-NEXT: Type: ET_EXEC
-# V1-NEXT: Sections:
-# V1-NEXT: - Name: .llvm_bb_addr_map
-# V1-NEXT: Type: SHT_LLVM_BB_ADDR_MAP
-# V1-NEXT: Entries:
-# V1-NEXT: - Version: 1
-# V1-NEXT: Address: 0x1111
-# V1-NEXT: BBEntries:
-# V1-NEXT: - ID: 0
-# V1-NEXT: AddressOffset: 0x1
-# V1-NEXT: Size: 0x2
-# V1-NEXT: Metadata: 0x3
-# V1-NEXT: - ID: 1
-# V1-NEXT: AddressOffset: 0x4
-# V1-NEXT: Size: 0x5
-# V1-NEXT: Metadata: 0x6
-
---- !ELF
-FileHeader:
- Class: ELFCLASS64
- Data: ELFDATA2LSB
- Type: ET_EXEC
-Sections:
- - Name: .llvm_bb_addr_map
- Type: SHT_LLVM_BB_ADDR_MAP
- Entries:
- - Version: 1
- Address: 0x1111
- BBEntries:
- - AddressOffset: 0x1
- Size: 0x2
- Metadata: 0x3
- - AddressOffset: 0x4
- Size: 0x5
- Metadata: 0x6
diff --git a/llvm/tools/llvm-readobj/ELFDumper.cpp b/llvm/tools/llvm-readobj/ELFDumper.cpp
index ab26f1369407bf2..67b4cea59b21c16 100644
--- a/llvm/tools/llvm-readobj/ELFDumper.cpp
+++ b/llvm/tools/llvm-readobj/ELFDumper.cpp
@@ -7425,8 +7425,7 @@ template <class ELFT> void LLVMELFDumper<ELFT>::printBBAddrMaps() {
bool IsRelocatable = this->Obj.getHeader().e_type == ELF::ET_REL;
using Elf_Shdr = typename ELFT::Shdr;
auto IsMatch = [](const Elf_Shdr &Sec) -> bool {
- return Sec.sh_type == ELF::SHT_LLVM_BB_ADDR_MAP ||
- Sec.sh_type == ELF::SHT_LLVM_BB_ADDR_MAP_V0;
+ return Sec.sh_type == ELF::SHT_LLVM_BB_ADDR_MAP;
};
Expected<MapVector<const Elf_Shdr *, const Elf_Shdr *>> SecRelocMapOrErr =
this->Obj.getSectionAndRelocations(IsMatch);
diff --git a/llvm/tools/obj2yaml/elf2yaml.cpp b/llvm/tools/obj2yaml/elf2yaml.cpp
index bec4a10a5d35f2a..fc7d168f6871c8c 100644
--- a/llvm/tools/obj2yaml/elf2yaml.cpp
+++ b/llvm/tools/obj2yaml/elf2yaml.cpp
@@ -626,7 +626,6 @@ ELFDumper<ELFT>::dumpSections() {
case ELF::SHT_LLVM_CALL_GRAPH_PROFILE:
return
[this](const Elf_Shdr *S) { return dumpCallGraphProfileSection(S); };
- case ELF::SHT_LLVM_BB_ADDR_MAP_V0:
case ELF::SHT_LLVM_BB_ADDR_MAP:
return [this](const Elf_Shdr *S) { return dumpBBAddrMapSection(S); };
case ELF::SHT_STRTAB:
@@ -908,7 +907,7 @@ ELFDumper<ELFT>::dumpBBAddrMapSection(const Elf_Shdr *Shdr) {
std::vector<ELFYAML::BBAddrMapEntry::BBEntry> BBEntries;
// Read the specified number of BB entries, or until decoding fails.
for (uint64_t BlockIndex = 0; Cur && BlockIndex < NumBlocks; ++BlockIndex) {
- uint32_t ID = Version >= 2 ? Data.getULEB128(Cur) : BlockIndex;
+ uint32_t ID = Data.getULEB128(Cur);
uint64_t Offset = Data.getULEB128(Cur);
uint64_t Size = Data.getULEB128(Cur);
uint64_t Metadata = Data.getULEB128(Cur);
diff --git a/llvm/unittests/Object/ELFObjectFileTest.cpp b/llvm/unittests/Object/ELFObjectFileTest.cpp
index 17402f39a5df834..be53c02962e4a9e 100644
--- a/llvm/unittests/Object/ELFObjectFileTest.cpp
+++ b/llvm/unittests/Object/ELFObjectFileTest.cpp
@@ -641,7 +641,7 @@ TEST(ELFObjectFileTest, ReadBBAddrMap) {
Type: SHT_LLVM_BB_ADDR_MAP
Link: 2
Entries:
- - Version: 1
+ - Version: 2
Address: 0x33333
BBEntries:
- ID: 0
@@ -649,10 +649,10 @@ TEST(ELFObjectFileTest, ReadBBAddrMap) {
Size: 0x3
Metadata: 0x6
- Name: .llvm_bb_addr_map_4
- Type: SHT_LLVM_BB_ADDR_MAP_V0
+ Type: SHT_LLVM_BB_ADDR_MAP
# Link: 0 (by default, can be overriden)
Entries:
- - Version: 0
+ - Version: 2
Address: 0x44444
BBEntries:
- ID: 0
@@ -721,7 +721,7 @@ TEST(ELFObjectFileTest, ReadBBAddrMap) {
DoCheckFails(InvalidLinkedYamlString, /*TextSectionIndex=*/4,
"unable to get the linked-to section for "
- "SHT_LLVM_BB_ADDR_MAP_V0 section with index 4: invalid section "
+ "SHT_LLVM_BB_ADDR_MAP section with index 4: invalid section "
"index: 10");
// Linked sections are not checked when we don't target a specific text
// section.
@@ -731,12 +731,12 @@ TEST(ELFObjectFileTest, ReadBBAddrMap) {
// Check that we can detect when bb-address-map decoding fails.
SmallString<128> TruncatedYamlString(CommonYamlString);
TruncatedYamlString += R"(
- ShSize: 0x8
+ ShSize: 0xa
)";
DoCheckFails(TruncatedYamlString, /*TextSectionIndex=*/std::nullopt,
- "unable to read SHT_LLVM_BB_ADDR_MAP_V0 section with index 4: "
- "unable to decode LEB128 at offset 0x00000008: malformed "
+ "unable to read SHT_LLVM_BB_ADDR_MAP section with index 4: "
+ "unable to decode LEB128 at offset 0x0000000a: malformed "
"uleb128, extends past end");
// Check that we can read the other section's bb-address-maps which are
// valid.
More information about the llvm-commits
mailing list