summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Analysis/DDG.cpp
diff options
context:
space:
mode:
authorBardia Mahjour <bmahjour@ca.ibm.com>2019-11-25 16:17:41 -0500
committerBardia Mahjour <bmahjour@ca.ibm.com>2019-11-25 16:17:41 -0500
commit67f0685b4d108946007230b4c358cd43ad1664e9 (patch)
tree4d1ecf93e787fb2c4b6585c417d9cfa613dd6d79 /llvm/lib/Analysis/DDG.cpp
parent9e676d9c7e6423961c5f6a31cfa2256259848dbc (diff)
downloadbcm5719-llvm-67f0685b4d108946007230b4c358cd43ad1664e9.tar.gz
bcm5719-llvm-67f0685b4d108946007230b4c358cd43ad1664e9.zip
Revert "[DDG] Data Dependence Graph - Topological Sort"
Revert for now to look into the failures on x86 This reverts commit bec37c3fc766a7b97f8c52c181c325fd47b75259.
Diffstat (limited to 'llvm/lib/Analysis/DDG.cpp')
-rw-r--r--llvm/lib/Analysis/DDG.cpp21
1 files changed, 5 insertions, 16 deletions
diff --git a/llvm/lib/Analysis/DDG.cpp b/llvm/lib/Analysis/DDG.cpp
index 90ce13e6f65..82ccea06f28 100644
--- a/llvm/lib/Analysis/DDG.cpp
+++ b/llvm/lib/Analysis/DDG.cpp
@@ -9,9 +9,7 @@
// The implementation for the data dependence graph.
//===----------------------------------------------------------------------===//
#include "llvm/Analysis/DDG.h"
-#include "llvm/ADT/SCCIterator.h"
#include "llvm/Analysis/LoopInfo.h"
-#include "llvm/Analysis/LoopIterator.h"
#include "llvm/Support/CommandLine.h"
using namespace llvm;
@@ -181,28 +179,19 @@ using BasicBlockListType = SmallVector<BasicBlock *, 8>;
DataDependenceGraph::DataDependenceGraph(Function &F, DependenceInfo &D)
: DependenceGraphInfo(F.getName().str(), D) {
- // Put the basic blocks in program order for correct dependence
- // directions.
BasicBlockListType BBList;
- for (auto &SCC : make_range(scc_begin(&F), scc_end(&F)))
- for (BasicBlock * BB : SCC)
- BBList.push_back(BB);
- std::reverse(BBList.begin(), BBList.end());
+ for (auto &BB : F.getBasicBlockList())
+ BBList.push_back(&BB);
DDGBuilder(*this, D, BBList).populate();
}
-DataDependenceGraph::DataDependenceGraph(Loop &L, LoopInfo &LI,
- DependenceInfo &D)
+DataDependenceGraph::DataDependenceGraph(const Loop &L, DependenceInfo &D)
: DependenceGraphInfo(Twine(L.getHeader()->getParent()->getName() + "." +
L.getHeader()->getName())
.str(),
D) {
- // Put the basic blocks in program order for correct dependence
- // directions.
- LoopBlocksDFS DFS(&L);
- DFS.perform(&LI);
BasicBlockListType BBList;
- for (BasicBlock *BB : make_range(DFS.beginRPO(), DFS.endRPO()))
+ for (BasicBlock *BB : L.blocks())
BBList.push_back(BB);
DDGBuilder(*this, D, BBList).populate();
}
@@ -270,7 +259,7 @@ DDGAnalysis::Result DDGAnalysis::run(Loop &L, LoopAnalysisManager &AM,
LoopStandardAnalysisResults &AR) {
Function *F = L.getHeader()->getParent();
DependenceInfo DI(F, &AR.AA, &AR.SE, &AR.LI);
- return std::make_unique<DataDependenceGraph>(L, AR.LI, DI);
+ return std::make_unique<DataDependenceGraph>(L, DI);
}
AnalysisKey DDGAnalysis::Key;
OpenPOWER on IntegriCloud