diff options
author | Bardia Mahjour <bmahjour@ca.ibm.com> | 2019-11-25 16:17:41 -0500 |
---|---|---|
committer | Bardia Mahjour <bmahjour@ca.ibm.com> | 2019-11-25 16:17:41 -0500 |
commit | 67f0685b4d108946007230b4c358cd43ad1664e9 (patch) | |
tree | 4d1ecf93e787fb2c4b6585c417d9cfa613dd6d79 /llvm/lib/Analysis/DDG.cpp | |
parent | 9e676d9c7e6423961c5f6a31cfa2256259848dbc (diff) | |
download | bcm5719-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.cpp | 21 |
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; |