[llvm] llvm-reduce: Fix losing call metadata in operands-to-args (PR #133422)
Matt Arsenault via llvm-commits
llvm-commits at lists.llvm.org
Sat Mar 29 02:18:03 PDT 2025
https://github.com/arsenm updated https://github.com/llvm/llvm-project/pull/133422
>From d6d67eb8fd4f5b749af60dcf13cb0344fa98c965 Mon Sep 17 00:00:00 2001
From: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: Fri, 28 Mar 2025 18:01:39 +0700
Subject: [PATCH] llvm-reduce: Fix using call metadata in operands-to-args
---
.../tools/llvm-reduce/operands-to-args-preserve-fmf.ll | 7 +++++--
llvm/tools/llvm-reduce/deltas/ReduceOperandsToArgs.cpp | 2 ++
2 files changed, 7 insertions(+), 2 deletions(-)
diff --git a/llvm/test/tools/llvm-reduce/operands-to-args-preserve-fmf.ll b/llvm/test/tools/llvm-reduce/operands-to-args-preserve-fmf.ll
index b4b19ca28dbb5..fc31a08353b8f 100644
--- a/llvm/test/tools/llvm-reduce/operands-to-args-preserve-fmf.ll
+++ b/llvm/test/tools/llvm-reduce/operands-to-args-preserve-fmf.ll
@@ -12,9 +12,12 @@ define float @callee(float %a) {
; INTERESTING: load float
; REDUCED-LABEL: define float @caller(ptr %ptr, float %val, float %callee.ret1) {
-; REDUCED: %callee.ret12 = call nnan nsz float @callee(float %val, float 0.000000e+00)
+; REDUCED: %callee.ret12 = call nnan nsz float @callee(float %val, float 0.000000e+00), !fpmath !0
define float @caller(ptr %ptr) {
%val = load float, ptr %ptr
- %callee.ret = call nnan nsz float @callee(float %val)
+ %callee.ret = call nnan nsz float @callee(float %val), !fpmath !0
ret float %callee.ret
}
+
+; REDUCED: !0 = !{float 2.000000e+00}
+!0 = !{float 2.0}
diff --git a/llvm/tools/llvm-reduce/deltas/ReduceOperandsToArgs.cpp b/llvm/tools/llvm-reduce/deltas/ReduceOperandsToArgs.cpp
index e1c1c9c7372f9..6b1958e24c932 100644
--- a/llvm/tools/llvm-reduce/deltas/ReduceOperandsToArgs.cpp
+++ b/llvm/tools/llvm-reduce/deltas/ReduceOperandsToArgs.cpp
@@ -111,6 +111,8 @@ static void replaceFunctionCalls(Function *OldF, Function *NewF) {
if (auto *FPOp = dyn_cast<FPMathOperator>(NewCI))
NewCI->setFastMathFlags(CI->getFastMathFlags());
+ NewCI->copyMetadata(*CI);
+
// Do the replacement for this use.
if (!CI->use_empty())
CI->replaceAllUsesWith(NewCI);
More information about the llvm-commits
mailing list