[llvm] d852cc5 - llvm-reduce: Fix losing call metadata in operands-to-args (#133422)

via llvm-commits llvm-commits at lists.llvm.org
Sat Mar 29 02:20:52 PDT 2025


Author: Matt Arsenault
Date: 2025-03-29T16:20:49+07:00
New Revision: d852cc5311e22d845b3d626c80a310570628fa2c

URL: https://github.com/llvm/llvm-project/commit/d852cc5311e22d845b3d626c80a310570628fa2c
DIFF: https://github.com/llvm/llvm-project/commit/d852cc5311e22d845b3d626c80a310570628fa2c.diff

LOG: llvm-reduce: Fix losing call metadata in operands-to-args (#133422)

Added: 
    

Modified: 
    llvm/test/tools/llvm-reduce/operands-to-args-preserve-fmf.ll
    llvm/tools/llvm-reduce/deltas/ReduceOperandsToArgs.cpp

Removed: 
    


################################################################################
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