From b6e8fe3dacb49dfe4c67dbc3cc40d59cd902f519 Mon Sep 17 00:00:00 2001 From: Philip Reames Date: Tue, 17 Nov 2015 00:15:09 +0000 Subject: [PRE] Preserve !invariant.load metadata Spoted via inspection. Test case included. llvm-svn: 253275 --- llvm/lib/Transforms/Scalar/GVN.cpp | 2 ++ 1 file changed, 2 insertions(+) (limited to 'llvm/lib') diff --git a/llvm/lib/Transforms/Scalar/GVN.cpp b/llvm/lib/Transforms/Scalar/GVN.cpp index e2822e320a8..06faa2d76b6 100644 --- a/llvm/lib/Transforms/Scalar/GVN.cpp +++ b/llvm/lib/Transforms/Scalar/GVN.cpp @@ -1669,6 +1669,8 @@ bool GVN::PerformLoadPRE(LoadInst *LI, AvailValInBlkVect &ValuesPerBlock, if (Tags) NewLoad->setAAMetadata(Tags); + if (auto *MD = LI->getMetadata(LLVMContext::MD_invariant_load)) + NewLoad->setMetadata(LLVMContext::MD_invariant_load, MD); if (auto *InvGroupMD = LI->getMetadata(LLVMContext::MD_invariant_group)) NewLoad->setMetadata(LLVMContext::MD_invariant_group, InvGroupMD); -- cgit v1.2.3