Skip to content

Commit 763c584

Browse files
committed
[JumpThreading][GVN] Use copyMetadataForLoad
1 parent 447ccd2 commit 763c584

File tree

3 files changed

+3
-29
lines changed

3 files changed

+3
-29
lines changed

llvm/lib/Transforms/Scalar/GVN.cpp

+1-20
Original file line numberDiff line numberDiff line change
@@ -1516,26 +1516,7 @@ void GVNPass::eliminatePartiallyRedundantLoad(
15161516
MSSAU->insertUse(cast<MemoryUse>(NewAccess), /*RenameUses=*/true);
15171517
}
15181518

1519-
// Transfer the old load's AA tags to the new load.
1520-
AAMDNodes Tags = Load->getAAMetadata();
1521-
if (Tags)
1522-
NewLoad->setAAMetadata(Tags);
1523-
1524-
if (auto *MD = Load->getMetadata(LLVMContext::MD_invariant_load))
1525-
NewLoad->setMetadata(LLVMContext::MD_invariant_load, MD);
1526-
if (auto *InvGroupMD = Load->getMetadata(LLVMContext::MD_invariant_group))
1527-
NewLoad->setMetadata(LLVMContext::MD_invariant_group, InvGroupMD);
1528-
if (auto *RangeMD = Load->getMetadata(LLVMContext::MD_range))
1529-
NewLoad->setMetadata(LLVMContext::MD_range, RangeMD);
1530-
if (auto *AccessMD = Load->getMetadata(LLVMContext::MD_access_group))
1531-
if (LI->getLoopFor(Load->getParent()) == LI->getLoopFor(UnavailableBlock))
1532-
NewLoad->setMetadata(LLVMContext::MD_access_group, AccessMD);
1533-
1534-
// We do not propagate the old load's debug location, because the new
1535-
// load now lives in a different BB, and we want to avoid a jumpy line
1536-
// table.
1537-
// FIXME: How do we retain source locations without causing poor debugging
1538-
// behavior?
1519+
copyMetadataForLoad(*NewLoad, *Load);
15391520

15401521
// Add the newly created load.
15411522
ValuesPerBlock.push_back(

llvm/lib/Transforms/Scalar/JumpThreading.cpp

+1-9
Original file line numberDiff line numberDiff line change
@@ -1407,15 +1407,7 @@ bool JumpThreadingPass::simplifyPartiallyRedundantLoad(LoadInst *LoadI) {
14071407
LoadI->getOrdering(), LoadI->getSyncScopeID(),
14081408
UnavailablePred->getTerminator()->getIterator());
14091409
NewVal->setDebugLoc(LoadI->getDebugLoc());
1410-
if (AATags)
1411-
NewVal->setAAMetadata(AATags);
1412-
1413-
if (auto *MD = LoadI->getMetadata(LLVMContext::MD_invariant_load))
1414-
NewVal->setMetadata(LLVMContext::MD_invariant_load, MD);
1415-
if (auto *InvGroupMD = LoadI->getMetadata(LLVMContext::MD_invariant_group))
1416-
NewVal->setMetadata(LLVMContext::MD_invariant_group, InvGroupMD);
1417-
if (auto *RangeMD = LoadI->getMetadata(LLVMContext::MD_range))
1418-
NewVal->setMetadata(LLVMContext::MD_range, RangeMD);
1410+
copyMetadataForLoad(*NewVal, *LoadI);
14191411

14201412
AvailablePreds.emplace_back(UnavailablePred, NewVal);
14211413
}

llvm/lib/Transforms/Utils/Local.cpp

+1
Original file line numberDiff line numberDiff line change
@@ -3468,6 +3468,7 @@ void llvm::copyMetadataForLoad(LoadInst &Dest, const LoadInst &Source) {
34683468
case LLVMContext::MD_fpmath:
34693469
case LLVMContext::MD_tbaa_struct:
34703470
case LLVMContext::MD_invariant_load:
3471+
case LLVMContext::MD_invariant_group:
34713472
case LLVMContext::MD_alias_scope:
34723473
case LLVMContext::MD_noalias:
34733474
case LLVMContext::MD_nontemporal:

0 commit comments

Comments
 (0)