diff options
Diffstat (limited to 'llvm/lib')
| -rw-r--r-- | llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp | 6 | ||||
| -rw-r--r-- | llvm/lib/Target/AMDGPU/SIAnnotateControlFlow.cpp | 3 | ||||
| -rw-r--r-- | llvm/lib/Transforms/Scalar/GVN.cpp | 10 | ||||
| -rw-r--r-- | llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp | 3 | ||||
| -rw-r--r-- | llvm/lib/Transforms/Scalar/LoopUnswitch.cpp | 3 | ||||
| -rw-r--r-- | llvm/lib/Transforms/Scalar/RewriteStatepointsForGC.cpp | 2 | ||||
| -rw-r--r-- | llvm/lib/Transforms/Utils/BasicBlockUtils.cpp | 27 | ||||
| -rw-r--r-- | llvm/lib/Transforms/Utils/BreakCriticalEdges.cpp | 3 | ||||
| -rw-r--r-- | llvm/lib/Transforms/Utils/LoopSimplify.cpp | 47 | ||||
| -rw-r--r-- | llvm/lib/Transforms/Utils/LoopUnroll.cpp | 2 | ||||
| -rw-r--r-- | llvm/lib/Transforms/Utils/LoopUnrollRuntime.cpp | 10 | 
11 files changed, 51 insertions, 65 deletions
diff --git a/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp b/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp index 12111f50fe5..c3dab9cc293 100644 --- a/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp +++ b/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp @@ -381,7 +381,7 @@ void SelectionDAGISel::getAnalysisUsage(AnalysisUsage &AU) const {  ///  /// This is required for correctness, so it must be done at -O0.  /// -static void SplitCriticalSideEffectEdges(Function &Fn, AliasAnalysis *AA) { +static void SplitCriticalSideEffectEdges(Function &Fn) {    // Loop for blocks with phi nodes.    for (Function::iterator BB = Fn.begin(), E = Fn.end(); BB != E; ++BB) {      PHINode *PN = dyn_cast<PHINode>(BB->begin()); @@ -407,7 +407,7 @@ static void SplitCriticalSideEffectEdges(Function &Fn, AliasAnalysis *AA) {          // Okay, we have to split this edge.          SplitCriticalEdge(              Pred->getTerminator(), GetSuccessorNumber(Pred, BB), -            CriticalEdgeSplittingOptions(AA).setMergeIdenticalEdges()); +            CriticalEdgeSplittingOptions().setMergeIdenticalEdges());          goto ReprocessBlock;        }    } @@ -444,7 +444,7 @@ bool SelectionDAGISel::runOnMachineFunction(MachineFunction &mf) {    DEBUG(dbgs() << "\n\n\n=== " << Fn.getName() << "\n"); -  SplitCriticalSideEffectEdges(const_cast<Function&>(Fn), AA); +  SplitCriticalSideEffectEdges(const_cast<Function &>(Fn));    CurDAG->init(*MF);    FuncInfo->set(Fn, *MF, CurDAG); diff --git a/llvm/lib/Target/AMDGPU/SIAnnotateControlFlow.cpp b/llvm/lib/Target/AMDGPU/SIAnnotateControlFlow.cpp index ccfbf1bf19e..ec7d65d5743 100644 --- a/llvm/lib/Target/AMDGPU/SIAnnotateControlFlow.cpp +++ b/llvm/lib/Target/AMDGPU/SIAnnotateControlFlow.cpp @@ -312,8 +312,7 @@ void SIAnnotateControlFlow::closeControlFlow(BasicBlock *BB) {        if (std::find(Latches.begin(), Latches.end(), *PI) == Latches.end())          Preds.push_back(*PI);      } -    BB = llvm::SplitBlockPredecessors(BB, Preds, "endcf.split", nullptr, DT, -                                      LI, false); +    BB = llvm::SplitBlockPredecessors(BB, Preds, "endcf.split", DT, LI, false);    }    CallInst::Create(EndCf, popSaved(), "", BB->getFirstInsertionPt()); diff --git a/llvm/lib/Transforms/Scalar/GVN.cpp b/llvm/lib/Transforms/Scalar/GVN.cpp index 04e08759892..7f1517710b3 100644 --- a/llvm/lib/Transforms/Scalar/GVN.cpp +++ b/llvm/lib/Transforms/Scalar/GVN.cpp @@ -2325,8 +2325,8 @@ bool GVN::runOnFunction(Function& F) {    for (Function::iterator FI = F.begin(), FE = F.end(); FI != FE; ) {      BasicBlock *BB = FI++; -    bool removedBlock = MergeBlockIntoPredecessor( -        BB, DT, /* LoopInfo */ nullptr, VN.getAliasAnalysis(), MD); +    bool removedBlock = +        MergeBlockIntoPredecessor(BB, DT, /* LoopInfo */ nullptr, MD);      if (removedBlock) ++NumGVNBlocks;      Changed |= removedBlock; @@ -2609,8 +2609,8 @@ bool GVN::performPRE(Function &F) {  /// Split the critical edge connecting the given two blocks, and return  /// the block inserted to the critical edge.  BasicBlock *GVN::splitCriticalEdges(BasicBlock *Pred, BasicBlock *Succ) { -  BasicBlock *BB = SplitCriticalEdge( -      Pred, Succ, CriticalEdgeSplittingOptions(getAliasAnalysis(), DT)); +  BasicBlock *BB = +      SplitCriticalEdge(Pred, Succ, CriticalEdgeSplittingOptions(DT));    if (MD)      MD->invalidateCachedPredecessors();    return BB; @@ -2624,7 +2624,7 @@ bool GVN::splitCriticalEdges() {    do {      std::pair<TerminatorInst*, unsigned> Edge = toSplit.pop_back_val();      SplitCriticalEdge(Edge.first, Edge.second, -                      CriticalEdgeSplittingOptions(getAliasAnalysis(), DT)); +                      CriticalEdgeSplittingOptions(DT));    } while (!toSplit.empty());    if (MD) MD->invalidateCachedPredecessors();    return true; diff --git a/llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp b/llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp index 4b59f3d2f6c..773777ac804 100644 --- a/llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp +++ b/llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp @@ -4658,8 +4658,7 @@ void LSRInstance::RewriteForPHI(PHINode *PN,                                            .setDontDeleteUselessPHIs());            } else {              SmallVector<BasicBlock*, 2> NewBBs; -            SplitLandingPadPredecessors(Parent, BB, "", "", NewBBs, -                                        /*AliasAnalysis*/ nullptr, &DT, &LI); +            SplitLandingPadPredecessors(Parent, BB, "", "", NewBBs, &DT, &LI);              NewBB = NewBBs[0];            }            // If NewBB==NULL, then SplitCriticalEdge refused to split because all diff --git a/llvm/lib/Transforms/Scalar/LoopUnswitch.cpp b/llvm/lib/Transforms/Scalar/LoopUnswitch.cpp index 0b62462f11c..ad03cded227 100644 --- a/llvm/lib/Transforms/Scalar/LoopUnswitch.cpp +++ b/llvm/lib/Transforms/Scalar/LoopUnswitch.cpp @@ -858,8 +858,7 @@ void LoopUnswitch::SplitExitEdges(Loop *L,      // Although SplitBlockPredecessors doesn't preserve loop-simplify in      // general, if we call it on all predecessors of all exits then it does. -    SplitBlockPredecessors(ExitBlock, Preds, ".us-lcssa", -                           /*AliasAnalysis*/ nullptr, DT, LI, +    SplitBlockPredecessors(ExitBlock, Preds, ".us-lcssa", DT, LI,                             /*PreserveLCSSA*/ true);    }  } diff --git a/llvm/lib/Transforms/Scalar/RewriteStatepointsForGC.cpp b/llvm/lib/Transforms/Scalar/RewriteStatepointsForGC.cpp index 352beffa4a0..47021c02d2f 100644 --- a/llvm/lib/Transforms/Scalar/RewriteStatepointsForGC.cpp +++ b/llvm/lib/Transforms/Scalar/RewriteStatepointsForGC.cpp @@ -1097,7 +1097,7 @@ normalizeForInvokeSafepoint(BasicBlock *BB, BasicBlock *InvokeParent,                              DominatorTree &DT) {    BasicBlock *Ret = BB;    if (!BB->getUniquePredecessor()) { -    Ret = SplitBlockPredecessors(BB, InvokeParent, "", nullptr, &DT); +    Ret = SplitBlockPredecessors(BB, InvokeParent, "", &DT);    }    // Now that 'ret' has unique predecessor we can safely remove all phi nodes diff --git a/llvm/lib/Transforms/Utils/BasicBlockUtils.cpp b/llvm/lib/Transforms/Utils/BasicBlockUtils.cpp index c0aaf28890b..74ca0a1aa18 100644 --- a/llvm/lib/Transforms/Utils/BasicBlockUtils.cpp +++ b/llvm/lib/Transforms/Utils/BasicBlockUtils.cpp @@ -65,7 +65,7 @@ void llvm::DeleteDeadBlock(BasicBlock *BB) {  /// any single-entry PHI nodes in it, fold them away.  This handles the case  /// when all entries to the PHI nodes in a block are guaranteed equal, such as  /// when the block has exactly one predecessor. -void llvm::FoldSingleEntryPHINodes(BasicBlock *BB, AliasAnalysis *AA, +void llvm::FoldSingleEntryPHINodes(BasicBlock *BB,                                     MemoryDependenceAnalysis *MemDep) {    if (!isa<PHINode>(BB->begin())) return; @@ -106,7 +106,7 @@ bool llvm::DeleteDeadPHIs(BasicBlock *BB, const TargetLibraryInfo *TLI) {  /// MergeBlockIntoPredecessor - Attempts to merge a block into its predecessor,  /// if possible.  The return value indicates success or failure.  bool llvm::MergeBlockIntoPredecessor(BasicBlock *BB, DominatorTree *DT, -                                     LoopInfo *LI, AliasAnalysis *AA, +                                     LoopInfo *LI,                                       MemoryDependenceAnalysis *MemDep) {    // Don't merge away blocks who have their address taken.    if (BB->hasAddressTaken()) return false; @@ -143,7 +143,7 @@ bool llvm::MergeBlockIntoPredecessor(BasicBlock *BB, DominatorTree *DT,    // Begin by getting rid of unneeded PHIs.    if (isa<PHINode>(BB->front())) -    FoldSingleEntryPHINodes(BB, AA, MemDep); +    FoldSingleEntryPHINodes(BB, MemDep);    // Delete the unconditional branch from the predecessor...    PredBB->getInstList().pop_back(); @@ -391,7 +391,7 @@ static void UpdateAnalysisInformation(BasicBlock *OldBB, BasicBlock *NewBB,  /// from NewBB. This also updates AliasAnalysis, if available.  static void UpdatePHINodes(BasicBlock *OrigBB, BasicBlock *NewBB,                             ArrayRef<BasicBlock *> Preds, BranchInst *BI, -                           AliasAnalysis *AA, bool HasLoopExit) { +                           bool HasLoopExit) {    // Otherwise, create a new PHI node in NewBB for each PHI node in OrigBB.    SmallPtrSet<BasicBlock *, 16> PredSet(Preds.begin(), Preds.end());    for (BasicBlock::iterator I = OrigBB->begin(); isa<PHINode>(I); ) { @@ -472,17 +472,16 @@ static void UpdatePHINodes(BasicBlock *OrigBB, BasicBlock *NewBB,  ///  BasicBlock *llvm::SplitBlockPredecessors(BasicBlock *BB,                                           ArrayRef<BasicBlock *> Preds, -                                         const char *Suffix, AliasAnalysis *AA, -                                         DominatorTree *DT, LoopInfo *LI, -                                         bool PreserveLCSSA) { +                                         const char *Suffix, DominatorTree *DT, +                                         LoopInfo *LI, bool PreserveLCSSA) {    // For the landingpads we need to act a bit differently.    // Delegate this work to the SplitLandingPadPredecessors.    if (BB->isLandingPad()) {      SmallVector<BasicBlock*, 2> NewBBs;      std::string NewName = std::string(Suffix) + ".split-lp"; -    SplitLandingPadPredecessors(BB, Preds, Suffix, NewName.c_str(), -                                NewBBs, AA, DT, LI, PreserveLCSSA); +    SplitLandingPadPredecessors(BB, Preds, Suffix, NewName.c_str(), NewBBs, DT, +                                LI, PreserveLCSSA);      return NewBBs[0];    } @@ -521,7 +520,7 @@ BasicBlock *llvm::SplitBlockPredecessors(BasicBlock *BB,                              HasLoopExit);    // Update the PHI nodes in BB with the values coming from NewBB. -  UpdatePHINodes(BB, NewBB, Preds, BI, AA, HasLoopExit); +  UpdatePHINodes(BB, NewBB, Preds, BI, HasLoopExit);    return NewBB;  } @@ -542,8 +541,8 @@ void llvm::SplitLandingPadPredecessors(BasicBlock *OrigBB,                                         ArrayRef<BasicBlock *> Preds,                                         const char *Suffix1, const char *Suffix2,                                         SmallVectorImpl<BasicBlock *> &NewBBs, -                                       AliasAnalysis *AA, DominatorTree *DT, -                                       LoopInfo *LI, bool PreserveLCSSA) { +                                       DominatorTree *DT, LoopInfo *LI, +                                       bool PreserveLCSSA) {    assert(OrigBB->isLandingPad() && "Trying to split a non-landing pad!");    // Create a new basic block for OrigBB's predecessors listed in Preds. Insert @@ -572,7 +571,7 @@ void llvm::SplitLandingPadPredecessors(BasicBlock *OrigBB,                              HasLoopExit);    // Update the PHI nodes in OrigBB with the values coming from NewBB1. -  UpdatePHINodes(OrigBB, NewBB1, Preds, BI1, AA, HasLoopExit); +  UpdatePHINodes(OrigBB, NewBB1, Preds, BI1, HasLoopExit);    // Move the remaining edges from OrigBB to point to NewBB2.    SmallVector<BasicBlock*, 8> NewBB2Preds; @@ -609,7 +608,7 @@ void llvm::SplitLandingPadPredecessors(BasicBlock *OrigBB,                                PreserveLCSSA, HasLoopExit);      // Update the PHI nodes in OrigBB with the values coming from NewBB2. -    UpdatePHINodes(OrigBB, NewBB2, NewBB2Preds, BI2, AA, HasLoopExit); +    UpdatePHINodes(OrigBB, NewBB2, NewBB2Preds, BI2, HasLoopExit);    }    LandingPadInst *LPad = OrigBB->getLandingPadInst(); diff --git a/llvm/lib/Transforms/Utils/BreakCriticalEdges.cpp b/llvm/lib/Transforms/Utils/BreakCriticalEdges.cpp index 7e83c9eeceb..565374c2e2f 100644 --- a/llvm/lib/Transforms/Utils/BreakCriticalEdges.cpp +++ b/llvm/lib/Transforms/Utils/BreakCriticalEdges.cpp @@ -197,7 +197,6 @@ BasicBlock *llvm::SplitCriticalEdge(TerminatorInst *TI, unsigned SuccNum,    }    // If we have nothing to update, just return. -  auto *AA = Options.AA;    auto *DT = Options.DT;    auto *LI = Options.LI;    if (!DT && !LI) @@ -322,7 +321,7 @@ BasicBlock *llvm::SplitCriticalEdge(TerminatorInst *TI, unsigned SuccNum,            assert(!DestBB->isLandingPad() &&                   "We don't split edges to landing pads!");            BasicBlock *NewExitBB = SplitBlockPredecessors( -              DestBB, LoopPreds, "split", AA, DT, LI, Options.PreserveLCSSA); +              DestBB, LoopPreds, "split", DT, LI, Options.PreserveLCSSA);            if (Options.PreserveLCSSA)              createPHIsForSplitLoopExit(LoopPreds, NewExitBB, DestBB);          } diff --git a/llvm/lib/Transforms/Utils/LoopSimplify.cpp b/llvm/lib/Transforms/Utils/LoopSimplify.cpp index e63f2560d79..11d7a21d3ce 100644 --- a/llvm/lib/Transforms/Utils/LoopSimplify.cpp +++ b/llvm/lib/Transforms/Utils/LoopSimplify.cpp @@ -116,7 +116,6 @@ BasicBlock *llvm::InsertPreheaderForLoop(Loop *L, Pass *PP) {    BasicBlock *Header = L->getHeader();    // Get analyses that we try to update. -  auto *AA = PP->getAnalysisIfAvailable<AliasAnalysis>();    auto *DTWP = PP->getAnalysisIfAvailable<DominatorTreeWrapperPass>();    auto *DT = DTWP ? &DTWP->getDomTree() : nullptr;    auto *LIWP = PP->getAnalysisIfAvailable<LoopInfoWrapperPass>(); @@ -141,8 +140,8 @@ BasicBlock *llvm::InsertPreheaderForLoop(Loop *L, Pass *PP) {    // Split out the loop pre-header.    BasicBlock *PreheaderBB; -  PreheaderBB = SplitBlockPredecessors(Header, OutsideBlocks, ".preheader", -                                       AA, DT, LI, PreserveLCSSA); +  PreheaderBB = SplitBlockPredecessors(Header, OutsideBlocks, ".preheader", DT, +                                       LI, PreserveLCSSA);    DEBUG(dbgs() << "LoopSimplify: Creating pre-header "                 << PreheaderBB->getName() << "\n"); @@ -159,8 +158,8 @@ BasicBlock *llvm::InsertPreheaderForLoop(Loop *L, Pass *PP) {  /// This method is used to split exit blocks that have predecessors outside of  /// the loop.  static BasicBlock *rewriteLoopExitBlock(Loop *L, BasicBlock *Exit, -                                        AliasAnalysis *AA, DominatorTree *DT, -                                        LoopInfo *LI, Pass *PP) { +                                        DominatorTree *DT, LoopInfo *LI, +                                        Pass *PP) {    SmallVector<BasicBlock*, 8> LoopBlocks;    for (pred_iterator I = pred_begin(Exit), E = pred_end(Exit); I != E; ++I) {      BasicBlock *P = *I; @@ -177,8 +176,8 @@ static BasicBlock *rewriteLoopExitBlock(Loop *L, BasicBlock *Exit,    bool PreserveLCSSA = PP->mustPreserveAnalysisID(LCSSAID); -  NewExitBB = SplitBlockPredecessors(Exit, LoopBlocks, ".loopexit", AA, DT, -                                     LI, PreserveLCSSA); +  NewExitBB = SplitBlockPredecessors(Exit, LoopBlocks, ".loopexit", DT, LI, +                                     PreserveLCSSA);    DEBUG(dbgs() << "LoopSimplify: Creating dedicated exit block "                 << NewExitBB->getName() << "\n"); @@ -206,8 +205,7 @@ static void addBlockAndPredsToSet(BasicBlock *InputBB, BasicBlock *StopBlock,  /// \brief The first part of loop-nestification is to find a PHI node that tells  /// us how to partition the loops. -static PHINode *findPHIToPartitionLoops(Loop *L, AliasAnalysis *AA, -                                        DominatorTree *DT, +static PHINode *findPHIToPartitionLoops(Loop *L, DominatorTree *DT,                                          AssumptionCache *AC) {    const DataLayout &DL = L->getHeader()->getModule()->getDataLayout();    for (BasicBlock::iterator I = L->getHeader()->begin(); isa<PHINode>(I); ) { @@ -250,8 +248,8 @@ static PHINode *findPHIToPartitionLoops(Loop *L, AliasAnalysis *AA,  /// created.  ///  static Loop *separateNestedLoop(Loop *L, BasicBlock *Preheader, -                                AliasAnalysis *AA, DominatorTree *DT, -                                LoopInfo *LI, ScalarEvolution *SE, Pass *PP, +                                DominatorTree *DT, LoopInfo *LI, +                                ScalarEvolution *SE, Pass *PP,                                  AssumptionCache *AC) {    // Don't try to separate loops without a preheader.    if (!Preheader) @@ -261,7 +259,7 @@ static Loop *separateNestedLoop(Loop *L, BasicBlock *Preheader,    assert(!L->getHeader()->isLandingPad() &&           "Can't insert backedge to landing pad"); -  PHINode *PN = findPHIToPartitionLoops(L, AA, DT, AC); +  PHINode *PN = findPHIToPartitionLoops(L, DT, AC);    if (!PN) return nullptr;  // No known way to partition.    // Pull out all predecessors that have varying values in the loop.  This @@ -289,7 +287,7 @@ static Loop *separateNestedLoop(Loop *L, BasicBlock *Preheader,    BasicBlock *Header = L->getHeader();    BasicBlock *NewBB = SplitBlockPredecessors(Header, OuterLoopPreds, ".outer", -                                             AA, DT, LI, PreserveLCSSA); +                                             DT, LI, PreserveLCSSA);    // Make sure that NewBB is put someplace intelligent, which doesn't mess up    // code layout too horribly. @@ -356,7 +354,6 @@ static Loop *separateNestedLoop(Loop *L, BasicBlock *Preheader,  /// and have that block branch to the loop header.  This ensures that loops  /// have exactly one backedge.  static BasicBlock *insertUniqueBackedgeBlock(Loop *L, BasicBlock *Preheader, -                                             AliasAnalysis *AA,                                               DominatorTree *DT, LoopInfo *LI) {    assert(L->getNumBackEdges() > 1 && "Must have > 1 backedge!"); @@ -474,7 +471,7 @@ static BasicBlock *insertUniqueBackedgeBlock(Loop *L, BasicBlock *Preheader,  /// specific analyses. Rather than a pass it would be much cleaner and more  /// explicit if they accepted the analysis directly and then updated it.  static bool simplifyOneLoop(Loop *L, SmallVectorImpl<Loop *> &Worklist, -                            AliasAnalysis *AA, DominatorTree *DT, LoopInfo *LI, +                            DominatorTree *DT, LoopInfo *LI,                              ScalarEvolution *SE, Pass *PP,                              AssumptionCache *AC) {    bool Changed = false; @@ -566,7 +563,7 @@ ReprocessLoop:        // Must be exactly this loop: no subloops, parent loops, or non-loop preds        // allowed.        if (!L->contains(*PI)) { -        if (rewriteLoopExitBlock(L, ExitBlock, AA, DT, LI, PP)) { +        if (rewriteLoopExitBlock(L, ExitBlock, DT, LI, PP)) {            ++NumInserted;            Changed = true;          } @@ -582,8 +579,7 @@ ReprocessLoop:      // this for loops with a giant number of backedges, just factor them into a      // common backedge instead.      if (L->getNumBackEdges() < 8) { -      if (Loop *OuterL = -              separateNestedLoop(L, Preheader, AA, DT, LI, SE, PP, AC)) { +      if (Loop *OuterL = separateNestedLoop(L, Preheader, DT, LI, SE, PP, AC)) {          ++NumNested;          // Enqueue the outer loop as it should be processed next in our          // depth-first nest walk. @@ -600,7 +596,7 @@ ReprocessLoop:      // If we either couldn't, or didn't want to, identify nesting of the loops,      // insert a new block that all backedges target, then make it jump to the      // loop header. -    LoopLatch = insertUniqueBackedgeBlock(L, Preheader, AA, DT, LI); +    LoopLatch = insertUniqueBackedgeBlock(L, Preheader, DT, LI);      if (LoopLatch) {        ++NumInserted;        Changed = true; @@ -714,8 +710,7 @@ ReprocessLoop:  }  bool llvm::simplifyLoop(Loop *L, DominatorTree *DT, LoopInfo *LI, Pass *PP, -                        AliasAnalysis *AA, ScalarEvolution *SE, -                        AssumptionCache *AC) { +                        ScalarEvolution *SE, AssumptionCache *AC) {    bool Changed = false;    // Worklist maintains our depth-first queue of loops in this nest to process. @@ -731,8 +726,8 @@ bool llvm::simplifyLoop(Loop *L, DominatorTree *DT, LoopInfo *LI, Pass *PP,    }    while (!Worklist.empty()) -    Changed |= simplifyOneLoop(Worklist.pop_back_val(), Worklist, AA, DT, LI, -                               SE, PP, AC); +    Changed |= +        simplifyOneLoop(Worklist.pop_back_val(), Worklist, DT, LI, SE, PP, AC);    return Changed;  } @@ -744,9 +739,6 @@ namespace {        initializeLoopSimplifyPass(*PassRegistry::getPassRegistry());      } -    // AA - If we have an alias analysis object to update, this is it, otherwise -    // this is null. -    AliasAnalysis *AA;      DominatorTree *DT;      LoopInfo *LI;      ScalarEvolution *SE; @@ -793,7 +785,6 @@ Pass *llvm::createLoopSimplifyPass() { return new LoopSimplify(); }  ///  bool LoopSimplify::runOnFunction(Function &F) {    bool Changed = false; -  AA = getAnalysisIfAvailable<AliasAnalysis>();    LI = &getAnalysis<LoopInfoWrapperPass>().getLoopInfo();    DT = &getAnalysis<DominatorTreeWrapperPass>().getDomTree();    SE = getAnalysisIfAvailable<ScalarEvolution>(); @@ -801,7 +792,7 @@ bool LoopSimplify::runOnFunction(Function &F) {    // Simplify each loop nest in the function.    for (LoopInfo::iterator I = LI->begin(), E = LI->end(); I != E; ++I) -    Changed |= simplifyLoop(*I, DT, LI, this, AA, SE, AC); +    Changed |= simplifyLoop(*I, DT, LI, this, SE, AC);    return Changed;  } diff --git a/llvm/lib/Transforms/Utils/LoopUnroll.cpp b/llvm/lib/Transforms/Utils/LoopUnroll.cpp index 1dbce474683..6e7a571da51 100644 --- a/llvm/lib/Transforms/Utils/LoopUnroll.cpp +++ b/llvm/lib/Transforms/Utils/LoopUnroll.cpp @@ -541,7 +541,7 @@ bool llvm::UnrollLoop(Loop *L, unsigned Count, unsigned TripCount,      if (!OuterL && !CompletelyUnroll)        OuterL = L;      if (OuterL) { -      simplifyLoop(OuterL, DT, LI, PP, /*AliasAnalysis*/ nullptr, SE, AC); +      simplifyLoop(OuterL, DT, LI, PP, SE, AC);        // LCSSA must be performed on the outermost affected loop. The unrolled        // loop's last loop latch is guaranteed to be in the outermost loop after diff --git a/llvm/lib/Transforms/Utils/LoopUnrollRuntime.cpp b/llvm/lib/Transforms/Utils/LoopUnrollRuntime.cpp index add5432aa27..5658e9201c3 100644 --- a/llvm/lib/Transforms/Utils/LoopUnrollRuntime.cpp +++ b/llvm/lib/Transforms/Utils/LoopUnrollRuntime.cpp @@ -62,8 +62,8 @@ STATISTIC(NumRuntimeUnrolled,  static void ConnectProlog(Loop *L, Value *BECount, unsigned Count,                            BasicBlock *LastPrologBB, BasicBlock *PrologEnd,                            BasicBlock *OrigPH, BasicBlock *NewPH, -                          ValueToValueMapTy &VMap, AliasAnalysis *AA, -                          DominatorTree *DT, LoopInfo *LI, Pass *P) { +                          ValueToValueMapTy &VMap, DominatorTree *DT, +                          LoopInfo *LI, Pass *P) {    BasicBlock *Latch = L->getLoopLatch();    assert(Latch && "Loop must have a latch"); @@ -127,7 +127,7 @@ static void ConnectProlog(Loop *L, Value *BECount, unsigned Count,    assert(Exit && "Loop must have a single exit block only");    // Split the exit to maintain loop canonicalization guarantees    SmallVector<BasicBlock*, 4> Preds(pred_begin(Exit), pred_end(Exit)); -  SplitBlockPredecessors(Exit, Preds, ".unr-lcssa", AA, DT, LI, +  SplitBlockPredecessors(Exit, Preds, ".unr-lcssa", DT, LI,                           P->mustPreserveAnalysisID(LCSSAID));    // Add the branch to the exit block (around the unrolled loop)    B.CreateCondBr(BrLoopExit, Exit, NewPH); @@ -414,8 +414,8 @@ bool llvm::UnrollRuntimeLoopProlog(Loop *L, unsigned Count,    // Connect the prolog code to the original loop and update the    // PHI functions.    BasicBlock *LastLoopBB = cast<BasicBlock>(VMap[Latch]); -  ConnectProlog(L, BECount, Count, LastLoopBB, PEnd, PH, NewPH, VMap, -                /*AliasAnalysis*/ nullptr, DT, LI, LPM->getAsPass()); +  ConnectProlog(L, BECount, Count, LastLoopBB, PEnd, PH, NewPH, VMap, DT, LI, +                LPM->getAsPass());    NumRuntimeUnrolled++;    return true;  }  | 

