Skip to content

Commit b081568

Browse files
author
Salinas, David
authored
[llvm-objdump] Fix the option for offloading from --offload-fatbin to… (llvm#478)
… --offloading SWDEV-512655 Change-Id: I63e9e323ac8e7f0fb345f433e450fc641abea05b
1 parent 9cf17a0 commit b081568

File tree

5 files changed

+10
-14
lines changed

5 files changed

+10
-14
lines changed

llvm/docs/CommandGuide/llvm-objdump.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -218,6 +218,7 @@ OPTIONS
218218
.. option:: --offloading
219219

220220
Display the content of the LLVM offloading section.
221+
Extract Clang offload binaries into code objects.
221222

222223
.. option:: --prefix=<prefix>
223224

llvm/test/tools/llvm-objdump/Offloading/fatbin.test

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
1-
## Test that --offload-fatbin works correctly
1+
## Test that --offloading works correctly
22

33
# REQUIRES: target={{.*-linux.*}}
44
# RUN: yaml2obj %s -o %t.elf
5-
# RUN: llvm-objdump --offload-fatbin %t.elf
5+
# RUN: llvm-objdump --offloading %t.elf
66
# RUN: llvm-objdump -d %t.elf:0.hipv4-amdgcn-amd-amdhsa--gfx908 | FileCheck %s
77

88

llvm/tools/llvm-objdump/OffloadDump.cpp

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ static void printBinary(const OffloadBinary &OB, uint64_t Index) {
5151
}
5252

5353
/// Print the embedded offloading contents of an ObjectFile \p O.
54-
void llvm::dumpOffloadBinary(const ObjectFile &O) {
54+
void llvm::dumpOffloadBinary(const ObjectFile &O, std::string ArchName) {
5555
if (!O.isELF() && !O.isCOFF()) {
5656
reportWarning(
5757
"--offloading is currently only supported for COFF and ELF targets",
@@ -67,14 +67,15 @@ void llvm::dumpOffloadBinary(const ObjectFile &O) {
6767
// Print out all the binaries that are contained in this buffer.
6868
for (uint64_t I = 0, E = Binaries.size(); I != E; ++I)
6969
printBinary(*Binaries[I].getBinary(), I);
70+
71+
dumpOffloadBundleFatBinary(O, ArchName);
7072
}
7173

7274
// Given an Object file, collect all Bundles of FatBin Binaries
7375
// and dump them into Code Object files
7476
// if -d is specified, disassemble the Code Object Files
7577
// if -arch=-name is specified, only dump the Entries that match the target arch
76-
void llvm::dumpOffloadBundleFatBinary(const ObjectFile &O, std::string ArchName,
77-
bool Disassemble) {
78+
void llvm::dumpOffloadBundleFatBinary(const ObjectFile &O, std::string ArchName) {
7879
assert((O.isELF() || O.isCOFF()) && "Invalid file type");
7980
// Collect all Bundles and their Entries ....
8081
SmallVector<llvm::object::OffloadBundleFatBin> FoundBundles;

llvm/tools/llvm-objdump/OffloadDump.h

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,11 +15,10 @@
1515
namespace llvm {
1616

1717
void dumpOffloadSections(const object::OffloadBinary &OB);
18-
void dumpOffloadBinary(const object::ObjectFile &O);
18+
void dumpOffloadBinary(const object::ObjectFile &O, std::string ArchName);
1919

2020
/// Dump fat binary in binary clang-offload-bundler format
21-
void dumpOffloadBundleFatBinary(const object::ObjectFile &O,
22-
std::string ArchName, bool Disassemble);
21+
void dumpOffloadBundleFatBinary(const object::ObjectFile &O, std::string ArchName);
2322
} // namespace llvm
2423

2524
#endif

llvm/tools/llvm-objdump/llvm-objdump.cpp

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -325,7 +325,6 @@ std::vector<std::string> objdump::MAttrs;
325325
bool objdump::ShowRawInsn;
326326
bool objdump::LeadingAddr;
327327
static bool Offloading;
328-
static bool OffloadFatBin;
329328
static bool RawClangAST;
330329
bool objdump::Relocations;
331330
bool objdump::PrintImmHex;
@@ -3317,8 +3316,6 @@ static void dumpObject(ObjectFile *O, const Archive *A = nullptr,
33173316
D.printDynamicRelocations();
33183317
if (SectionContents)
33193318
printSectionContents(O);
3320-
if (OffloadFatBin)
3321-
dumpOffloadBundleFatBinary(*O, ArchName, Disassemble);
33223319
if (Disassemble)
33233320
disassembleObject(O, Relocations);
33243321
if (UnwindInfo)
@@ -3342,7 +3339,7 @@ static void dumpObject(ObjectFile *O, const Archive *A = nullptr,
33423339
if (FaultMapSection)
33433340
printFaultMaps(O);
33443341
if (Offloading)
3345-
dumpOffloadBinary(*O);
3342+
dumpOffloadBinary(*O, ArchName);
33463343
}
33473344

33483345
static void dumpObject(const COFFImportFile *I, const Archive *A,
@@ -3525,7 +3522,6 @@ static void parseObjdumpOptions(const llvm::opt::InputArgList &InputArgs) {
35253522
DynamicRelocations = InputArgs.hasArg(OBJDUMP_dynamic_reloc);
35263523
FaultMapSection = InputArgs.hasArg(OBJDUMP_fault_map_section);
35273524
Offloading = InputArgs.hasArg(OBJDUMP_offloading);
3528-
OffloadFatBin = InputArgs.hasArg(OBJDUMP_offload_fatbin);
35293525
FileHeaders = InputArgs.hasArg(OBJDUMP_file_headers);
35303526
SectionContents = InputArgs.hasArg(OBJDUMP_full_contents);
35313527
PrintLines = InputArgs.hasArg(OBJDUMP_line_numbers);
@@ -3737,7 +3733,6 @@ int llvm_objdump_main(int argc, char **argv, const llvm::ToolContext &) {
37373733
!DynamicRelocations && !FileHeaders && !PrivateHeaders && !RawClangAST &&
37383734
!Relocations && !SectionHeaders && !SectionContents && !SymbolTable &&
37393735
!DynamicSymbolTable && !UnwindInfo && !FaultMapSection && !Offloading &&
3740-
!OffloadFatBin &&
37413736
!(MachOOpt &&
37423737
(Bind || DataInCode || ChainedFixups || DyldInfo || DylibId ||
37433738
DylibsUsed || ExportsTrie || FirstPrivateHeader ||

0 commit comments

Comments
 (0)