[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