[lld] 6aff41e - [ELF] Emit Verbose Asm when using --lto-emit-asm
Pierre van Houtryve via llvm-commits
llvm-commits at lists.llvm.org
Wed Jan 11 23:58:00 PST 2023
Author: Pierre van Houtryve
Date: 2023-01-12T02:57:55-05:00
New Revision: 6aff41ef37a48461b85c4b5bb143fceec6130a55
URL: https://github.com/llvm/llvm-project/commit/6aff41ef37a48461b85c4b5bb143fceec6130a55
DIFF: https://github.com/llvm/llvm-project/commit/6aff41ef37a48461b85c4b5bb143fceec6130a55.diff
LOG: [ELF] Emit Verbose Asm when using --lto-emit-asm
D138560 was abandonned as the use case can already be covered by `-Xoffload-linker --lto-emit-asm`.
However the output from `--lto-emit-asm` doesn't have
comments like the Clang `-S` output.
This patch adds verbose assembly output to LLD ELF LTO
so that the resulting assembly file more closely matches Clang's.
Having comments is especially important on targets such as AMDGPU because
they contain additional information about the kernel(s) being compiled.
Reviewed By: MaskRay
Differential Revision: https://reviews.llvm.org/D141268
Added:
Modified:
lld/ELF/LTO.cpp
lld/test/ELF/lto/emit-asm.ll
Removed:
################################################################################
diff --git a/lld/ELF/LTO.cpp b/lld/ELF/LTO.cpp
index 787329388a2c6..b80f1f48f768a 100644
--- a/lld/ELF/LTO.cpp
+++ b/lld/ELF/LTO.cpp
@@ -176,8 +176,10 @@ static lto::Config createConfig() {
};
}
- if (config->ltoEmitAsm)
+ if (config->ltoEmitAsm) {
c.CGFileType = CGFT_AssemblyFile;
+ c.Options.MCOptions.AsmVerbose = true;
+ }
if (!config->saveTempsArgs.empty())
checkError(c.addSaveTemps(config->outputFile.str() + ".",
diff --git a/lld/test/ELF/lto/emit-asm.ll b/lld/test/ELF/lto/emit-asm.ll
index d0719411a5bad..3f635b8dbe7f7 100644
--- a/lld/test/ELF/lto/emit-asm.ll
+++ b/lld/test/ELF/lto/emit-asm.ll
@@ -11,14 +11,18 @@
target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"
+;; Note: we also check for the presence of comments; --lto-emit-asm output should be verbose.
+
+; CHECK-DAG: # -- Begin function f1
; CHECK-DAG: f1:
-; OPT-DAG: define void @f1()
+; OPT: define void @f1()
define void @f1() {
ret void
}
+; CHECK-DAG: # -- Begin function f2
; CHECK-DAG: f2:
-; OPT-DAG: define void @f2()
+; OPT: define void @f2()
define void @f2() {
ret void
}
More information about the llvm-commits
mailing list