[llvm] [MLIR] Fix triple mismatch warning for embedded libdevice (PR #120669)
via llvm-commits
llvm-commits at lists.llvm.org
Thu Dec 19 18:13:34 PST 2024
https://github.com/arthurqiu created https://github.com/llvm/llvm-project/pull/120669
IRLinker emits warning when linking two modules of different target triples. The warning is disabled if the source module is libdevice. When using libdevice embedded in LLVM library via `MLIR_NVVM_EMBED_LIBDEVICE`, IRLinker can no longer tell whether the source module is libdevice via module identifier. This patch uses source filename for that purpose instead.
Note that `source_filename` is recorded as below in libdevice.10.bc:
```
; ModuleID = 'libdevice.10.bc'
source_filename = "libdevice.10.bc"
target datalayout = "e-i64:64-v16:16-v32:32-n16:32:64"
target triple = "nvptx64-nvidia-gpulibs"
```
>From 8f799d8282631a59b1c64c2778580209186686c2 Mon Sep 17 00:00:00 2001
From: Arthurq Qiu <arthurq at nvidia.com>
Date: Thu, 19 Dec 2024 17:53:28 -0800
Subject: [PATCH] Fix triple mismatch warning when linking embedded libdevice
---
llvm/lib/Linker/IRMover.cpp | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/llvm/lib/Linker/IRMover.cpp b/llvm/lib/Linker/IRMover.cpp
index a0c3f2c5b0baf6..23f889eff17020 100644
--- a/llvm/lib/Linker/IRMover.cpp
+++ b/llvm/lib/Linker/IRMover.cpp
@@ -1562,8 +1562,7 @@ Error IRLinker::run() {
bool EnableDLWarning = true;
bool EnableTripleWarning = true;
if (SrcTriple.isNVPTX() && DstTriple.isNVPTX()) {
- std::string ModuleId = SrcM->getModuleIdentifier();
- StringRef FileName = llvm::sys::path::filename(ModuleId);
+ StringRef FileName = SrcM->getSourceFileName();
bool SrcIsLibDevice =
FileName.starts_with("libdevice") && FileName.ends_with(".10.bc");
bool SrcHasLibDeviceDL =
More information about the llvm-commits
mailing list