[llvm] [JumpThreading] Copy metadata when inserting preload into preds (PR #134403)

Yingwei Zheng via llvm-commits llvm-commits at lists.llvm.org
Fri Apr 4 08:54:01 PDT 2025


https://github.com/dtcxzyw created https://github.com/llvm/llvm-project/pull/134403

https://github.com/llvm/llvm-project/issues/134093#issuecomment-2778570205

>From 0ec4063533defe588f7f6fd27a0f47c4fc4ca718 Mon Sep 17 00:00:00 2001
From: Yingwei Zheng <dtcxzyw2333 at gmail.com>
Date: Fri, 4 Apr 2025 23:51:46 +0800
Subject: [PATCH] [JumpThreading] Copy metadata when inserting preload into
 preds

---
 llvm/lib/Transforms/Scalar/JumpThreading.cpp | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/llvm/lib/Transforms/Scalar/JumpThreading.cpp b/llvm/lib/Transforms/Scalar/JumpThreading.cpp
index 18d5f201413c8..70d9292d171b1 100644
--- a/llvm/lib/Transforms/Scalar/JumpThreading.cpp
+++ b/llvm/lib/Transforms/Scalar/JumpThreading.cpp
@@ -1409,6 +1409,13 @@ bool JumpThreadingPass::simplifyPartiallyRedundantLoad(LoadInst *LoadI) {
     if (AATags)
       NewVal->setAAMetadata(AATags);
 
+    if (auto *MD = LoadI->getMetadata(LLVMContext::MD_invariant_load))
+      NewVal->setMetadata(LLVMContext::MD_invariant_load, MD);
+    if (auto *InvGroupMD = LoadI->getMetadata(LLVMContext::MD_invariant_group))
+      NewVal->setMetadata(LLVMContext::MD_invariant_group, InvGroupMD);
+    if (auto *RangeMD = LoadI->getMetadata(LLVMContext::MD_range))
+      NewVal->setMetadata(LLVMContext::MD_range, RangeMD);
+
     AvailablePreds.emplace_back(UnavailablePred, NewVal);
   }
 



More information about the llvm-commits mailing list