[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