diff options
Diffstat (limited to 'contrib/llvm-project/llvm/lib/Transforms/Scalar/MergedLoadStoreMotion.cpp')
| -rw-r--r-- | contrib/llvm-project/llvm/lib/Transforms/Scalar/MergedLoadStoreMotion.cpp | 53 | 
1 files changed, 3 insertions, 50 deletions
diff --git a/contrib/llvm-project/llvm/lib/Transforms/Scalar/MergedLoadStoreMotion.cpp b/contrib/llvm-project/llvm/lib/Transforms/Scalar/MergedLoadStoreMotion.cpp index 6c5453831ade..d65054a6ff9d 100644 --- a/contrib/llvm-project/llvm/lib/Transforms/Scalar/MergedLoadStoreMotion.cpp +++ b/contrib/llvm-project/llvm/lib/Transforms/Scalar/MergedLoadStoreMotion.cpp @@ -80,7 +80,6 @@  #include "llvm/Analysis/GlobalsModRef.h"  #include "llvm/IR/IRBuilder.h"  #include "llvm/IR/Instructions.h" -#include "llvm/InitializePasses.h"  #include "llvm/Support/Debug.h"  #include "llvm/Support/raw_ostream.h"  #include "llvm/Transforms/Scalar.h" @@ -217,8 +216,8 @@ PHINode *MergedLoadStoreMotion::getPHIOperand(BasicBlock *BB, StoreInst *S0,    if (Opd1 == Opd2)      return nullptr; -  auto *NewPN = PHINode::Create(Opd1->getType(), 2, Opd2->getName() + ".sink", -                                &BB->front()); +  auto *NewPN = PHINode::Create(Opd1->getType(), 2, Opd2->getName() + ".sink"); +  NewPN->insertBefore(BB->begin());    NewPN->applyMergedLocation(S0->getDebugLoc(), S1->getDebugLoc());    NewPN->addIncoming(Opd1, S0->getParent());    NewPN->addIncoming(Opd2, S1->getParent()); @@ -269,7 +268,7 @@ void MergedLoadStoreMotion::sinkStoresAndGEPs(BasicBlock *BB, StoreInst *S0,    // Create the new store to be inserted at the join point.    StoreInst *SNew = cast<StoreInst>(S0->clone()); -  SNew->insertBefore(&*InsertPt); +  SNew->insertBefore(InsertPt);    // New PHI operand? Use it.    if (PHINode *NewPN = getPHIOperand(BB, S0, S1))      SNew->setOperand(0, NewPN); @@ -378,52 +377,6 @@ bool MergedLoadStoreMotion::run(Function &F, AliasAnalysis &AA) {    return Changed;  } -namespace { -class MergedLoadStoreMotionLegacyPass : public FunctionPass { -  const bool SplitFooterBB; -public: -  static char ID; // Pass identification, replacement for typeid -  MergedLoadStoreMotionLegacyPass(bool SplitFooterBB = false) -      : FunctionPass(ID), SplitFooterBB(SplitFooterBB) { -    initializeMergedLoadStoreMotionLegacyPassPass( -        *PassRegistry::getPassRegistry()); -  } - -  /// -  /// Run the transformation for each function -  /// -  bool runOnFunction(Function &F) override { -    if (skipFunction(F)) -      return false; -    MergedLoadStoreMotion Impl(SplitFooterBB); -    return Impl.run(F, getAnalysis<AAResultsWrapperPass>().getAAResults()); -  } - -private: -  void getAnalysisUsage(AnalysisUsage &AU) const override { -    if (!SplitFooterBB) -      AU.setPreservesCFG(); -    AU.addRequired<AAResultsWrapperPass>(); -    AU.addPreserved<GlobalsAAWrapperPass>(); -  } -}; - -char MergedLoadStoreMotionLegacyPass::ID = 0; -} // anonymous namespace - -/// -/// createMergedLoadStoreMotionPass - The public interface to this file. -/// -FunctionPass *llvm::createMergedLoadStoreMotionPass(bool SplitFooterBB) { -  return new MergedLoadStoreMotionLegacyPass(SplitFooterBB); -} - -INITIALIZE_PASS_BEGIN(MergedLoadStoreMotionLegacyPass, "mldst-motion", -                      "MergedLoadStoreMotion", false, false) -INITIALIZE_PASS_DEPENDENCY(AAResultsWrapperPass) -INITIALIZE_PASS_END(MergedLoadStoreMotionLegacyPass, "mldst-motion", -                    "MergedLoadStoreMotion", false, false) -  PreservedAnalyses  MergedLoadStoreMotionPass::run(Function &F, FunctionAnalysisManager &AM) {    MergedLoadStoreMotion Impl(Options.SplitFooterBB);  | 
