diff options
| author | Florian Hahn <flo@fhahn.com> | 2019-07-30 17:04:58 +0000 | 
|---|---|---|
| committer | Florian Hahn <flo@fhahn.com> | 2019-07-30 17:04:58 +0000 | 
| commit | d0b6f42936bfb6d56d325c732ae79400c9c6016a (patch) | |
| tree | 9cbb1fe52e73404ff08480c1722a1c4e3e6b6fd4 /llvm/lib/Transforms | |
| parent | d9402ee03f90b2085d689b0472dc24b29bade7cf (diff) | |
| download | bcm5719-llvm-d0b6f42936bfb6d56d325c732ae79400c9c6016a.tar.gz bcm5719-llvm-d0b6f42936bfb6d56d325c732ae79400c9c6016a.zip | |
Revert [GVN] Preserve loop related analysis/canonical forms.
This reverts r367332 (git commit 2d7227ec3ac91f36fc32b1c21e72e2f1f5d030ad)
llvm-svn: 367335
Diffstat (limited to 'llvm/lib/Transforms')
| -rw-r--r-- | llvm/lib/Transforms/Scalar/GVN.cpp | 25 | 
1 files changed, 5 insertions, 20 deletions
| diff --git a/llvm/lib/Transforms/Scalar/GVN.cpp b/llvm/lib/Transforms/Scalar/GVN.cpp index 29911a4ed28..1a02e9d33f4 100644 --- a/llvm/lib/Transforms/Scalar/GVN.cpp +++ b/llvm/lib/Transforms/Scalar/GVN.cpp @@ -70,7 +70,6 @@  #include "llvm/Support/Compiler.h"  #include "llvm/Support/Debug.h"  #include "llvm/Support/raw_ostream.h" -#include "llvm/Transforms/Utils.h"  #include "llvm/Transforms/Utils/BasicBlockUtils.h"  #include "llvm/Transforms/Utils/Local.h"  #include "llvm/Transforms/Utils/SSAUpdater.h" @@ -627,8 +626,6 @@ PreservedAnalyses GVN::run(Function &F, FunctionAnalysisManager &AM) {    PA.preserve<DominatorTreeAnalysis>();    PA.preserve<GlobalsAA>();    PA.preserve<TargetLibraryAnalysis>(); -  if (LI) -    PA.preserve<LoopAnalysis>();    return PA;  } @@ -1979,7 +1976,6 @@ bool GVN::runImpl(Function &F, AssumptionCache &RunAC, DominatorTree &RunDT,    MD = RunMD;    ImplicitControlFlowTracking ImplicitCFT(DT);    ICF = &ImplicitCFT; -  this->LI = LI;    VN.setMemDep(MD);    ORE = RunORE;    InvalidBlockRPONumbers = true; @@ -2339,7 +2335,7 @@ bool GVN::performPRE(Function &F) {  /// the block inserted to the critical edge.  BasicBlock *GVN::splitCriticalEdges(BasicBlock *Pred, BasicBlock *Succ) {    BasicBlock *BB = -      SplitCriticalEdge(Pred, Succ, CriticalEdgeSplittingOptions(DT, LI)); +      SplitCriticalEdge(Pred, Succ, CriticalEdgeSplittingOptions(DT));    if (MD)      MD->invalidateCachedPredecessors();    InvalidBlockRPONumbers = true; @@ -2354,7 +2350,7 @@ bool GVN::splitCriticalEdges() {    do {      std::pair<Instruction *, unsigned> Edge = toSplit.pop_back_val();      SplitCriticalEdge(Edge.first, Edge.second, -                      CriticalEdgeSplittingOptions(DT, LI)); +                      CriticalEdgeSplittingOptions(DT));    } while (!toSplit.empty());    if (MD) MD->invalidateCachedPredecessors();    InvalidBlockRPONumbers = true; @@ -2460,26 +2456,18 @@ void GVN::addDeadBlock(BasicBlock *BB) {      if (DeadBlocks.count(B))        continue; -    // First, split the critical edges. This might also create additional blocks -    // to preserve LoopSimplify form and adjust edges accordingly.      SmallVector<BasicBlock *, 4> Preds(pred_begin(B), pred_end(B));      for (BasicBlock *P : Preds) {        if (!DeadBlocks.count(P))          continue; -      if (llvm::any_of(successors(P), -                       [B](BasicBlock *Succ) { return Succ == B; }) && -          isCriticalEdge(P->getTerminator(), B)) { +      if (isCriticalEdge(P->getTerminator(), GetSuccessorNumber(P, B))) {          if (BasicBlock *S = splitCriticalEdges(P, B))            DeadBlocks.insert(P = S);        } -    } -    // Now undef the incoming values from the dead predecessors. -    for (BasicBlock *P : predecessors(B)) { -      if (!DeadBlocks.count(P)) -        continue; -      for (PHINode &Phi : B->phis()) { +      for (BasicBlock::iterator II = B->begin(); isa<PHINode>(II); ++II) { +        PHINode &Phi = cast<PHINode>(*II);          Phi.setIncomingValueForBlock(P, UndefValue::get(Phi.getType()));          if (MD)            MD->invalidateCachedPointerInfo(&Phi); @@ -2568,7 +2556,6 @@ public:      AU.addRequired<AssumptionCacheTracker>();      AU.addRequired<DominatorTreeWrapperPass>();      AU.addRequired<TargetLibraryInfoWrapperPass>(); -    AU.addRequired<LoopInfoWrapperPass>();      if (!NoMemDepAnalysis)        AU.addRequired<MemoryDependenceWrapperPass>();      AU.addRequired<AAResultsWrapperPass>(); @@ -2576,8 +2563,6 @@ public:      AU.addPreserved<DominatorTreeWrapperPass>();      AU.addPreserved<GlobalsAAWrapperPass>();      AU.addPreserved<TargetLibraryInfoWrapperPass>(); -    AU.addPreserved<LoopInfoWrapperPass>(); -    AU.addPreservedID(LoopSimplifyID);      AU.addRequired<OptimizationRemarkEmitterWrapperPass>();    } | 

