[PATCH] D141268: [LLD] Emit Verbose Asm when using `lto-emit-asm`

Pierre van Houtryve via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Jan 9 02:34:36 PST 2023


Pierre-vh created this revision.
Pierre-vh added a reviewer: MaskRay.
Herald added subscribers: kosarev, ormris, steven_wu, hiraditya, arichardson, inglorion, tpr, emaste.
Herald added a project: All.
Pierre-vh requested review of this revision.
Herald added a project: LLVM.
Herald added a subscriber: llvm-commits.

D138560 <https://reviews.llvm.org/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.


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D141268

Files:
  lld/ELF/LTO.cpp
  lld/test/ELF/lto/emit-asm.ll


Index: lld/test/ELF/lto/emit-asm.ll
===================================================================
--- lld/test/ELF/lto/emit-asm.ll
+++ lld/test/ELF/lto/emit-asm.ll
@@ -11,12 +11,16 @@
 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()
 define void @f1() {
   ret void
 }
 
+; CHECK-DAG: # -- Begin function f2
 ; CHECK-DAG: f2:
 ; OPT-DAG: define void @f2()
 define void @f2() {
Index: lld/ELF/LTO.cpp
===================================================================
--- lld/ELF/LTO.cpp
+++ lld/ELF/LTO.cpp
@@ -176,8 +176,10 @@
     };
   }
 
-  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() + ".",


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D141268.487348.patch
Type: text/x-patch
Size: 1035 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20230109/019f05bd/attachment.bin>


More information about the llvm-commits mailing list