[llvm] [AMDGPU] Preserve call info when lowering SI_CALL_ISEL (PR #192200)

via llvm-commits llvm-commits at lists.llvm.org
Wed Apr 15 00:17:35 PDT 2026


llvmbot wrote:


<!--LLVM PR SUMMARY COMMENT-->

@llvm/pr-subscribers-backend-amdgpu

Author: StevenYangCC

<details>
<summary>Changes</summary>

Keep additional call metadata attached when the custom inserter rewrites SI_CALL_ISEL into SI_CALL so later analyses still see the original direct-call information.

---
Full diff: https://github.com/llvm/llvm-project/pull/192200.diff


2 Files Affected:

- (modified) llvm/lib/Target/AMDGPU/SIISelLowering.cpp (+2) 
- (added) llvm/test/CodeGen/AMDGPU/si-call-isel-callsite-info.ll (+15) 


``````````diff
diff --git a/llvm/lib/Target/AMDGPU/SIISelLowering.cpp b/llvm/lib/Target/AMDGPU/SIISelLowering.cpp
index 6750dfcbaac62..b37950e32ffb3 100644
--- a/llvm/lib/Target/AMDGPU/SIISelLowering.cpp
+++ b/llvm/lib/Target/AMDGPU/SIISelLowering.cpp
@@ -6847,6 +6847,8 @@ SITargetLowering::EmitInstrWithCustomInserter(MachineInstr &MI,
       MIB.add(MO);
 
     MIB.cloneMemRefs(MI);
+    if (MI.shouldUpdateAdditionalCallInfo())
+      MF->moveAdditionalCallInfo(&MI, MIB.getInstr());
     MI.eraseFromParent();
     return BB;
   }
diff --git a/llvm/test/CodeGen/AMDGPU/si-call-isel-callsite-info.ll b/llvm/test/CodeGen/AMDGPU/si-call-isel-callsite-info.ll
new file mode 100644
index 0000000000000..a392b28ad6084
--- /dev/null
+++ b/llvm/test/CodeGen/AMDGPU/si-call-isel-callsite-info.ll
@@ -0,0 +1,15 @@
+; RUN: llc -emit-call-site-info -stop-after=dead-mi-elimination -mtriple=amdgcn-- -mcpu=gfx900 -o - %s | FileCheck %s
+
+; CHECK-LABEL: name:            basic_call
+; CHECK: $sgpr30_sgpr31 = SI_CALL {{.*}}, @foo, csr_amdgpu
+
+define i32 @basic_call(i32 %src) #0 {
+  %token = call token @llvm.experimental.convergence.entry()
+  %result = call i32 @foo(i32 %src) [ "convergencectrl"(token %token) ]
+  ret i32 %result
+}
+
+declare i32 @foo(i32) #0
+declare token @llvm.experimental.convergence.entry()
+
+attributes #0 = { convergent nounwind readnone }

``````````

</details>


https://github.com/llvm/llvm-project/pull/192200


More information about the llvm-commits mailing list