From f4eafba2064d52f992e6f32c957f3d51d8627975 Mon Sep 17 00:00:00 2001 From: khei4 Date: Sat, 3 Jun 2023 18:06:43 +0900 Subject: [PATCH] [MemCpyOpt] Remove unnecessary bitcast and reuse some variables for ByValOptimization (NFC) Differential Revision: https://reviews.llvm.org/D152056 --- llvm/lib/Transforms/Scalar/MemCpyOptimizer.cpp | 13 ++----------- 1 file changed, 2 insertions(+), 11 deletions(-) diff --git a/llvm/lib/Transforms/Scalar/MemCpyOptimizer.cpp b/llvm/lib/Transforms/Scalar/MemCpyOptimizer.cpp index b9582fc..2f04cf3 100644 --- a/llvm/lib/Transforms/Scalar/MemCpyOptimizer.cpp +++ b/llvm/lib/Transforms/Scalar/MemCpyOptimizer.cpp @@ -1591,24 +1591,15 @@ bool MemCpyOptPass::processByValArgument(CallBase &CB, unsigned ArgNo) { // foo(*a) // It would be invalid to transform the second memcpy into foo(*b). if (writtenBetween(MSSA, BAA, MemoryLocation::getForSource(MDep), - MSSA->getMemoryAccess(MDep), MSSA->getMemoryAccess(&CB))) + MSSA->getMemoryAccess(MDep), CallAccess)) return false; - Value *TmpCast = MDep->getSource(); - if (MDep->getSource()->getType() != ByValArg->getType()) { - BitCastInst *TmpBitCast = new BitCastInst(MDep->getSource(), ByValArg->getType(), - "tmpcast", &CB); - // Set the tmpcast's DebugLoc to MDep's - TmpBitCast->setDebugLoc(MDep->getDebugLoc()); - TmpCast = TmpBitCast; - } - LLVM_DEBUG(dbgs() << "MemCpyOptPass: Forwarding memcpy to byval:\n" << " " << *MDep << "\n" << " " << CB << "\n"); // Otherwise we're good! Update the byval argument. - CB.setArgOperand(ArgNo, TmpCast); + CB.setArgOperand(ArgNo, MDep->getSource()); ++NumMemCpyInstr; return true; } -- 2.7.4