[PATCH] D51980: [GVNHoist] computeInsertionPoints() miscalculates the Iterated Dominance Frontiers
Phabricator via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Wed Sep 12 07:29:48 PDT 2018
This revision was automatically updated to reflect the committed changes.
Closed by commit rL342055: [GVNHoist] computeInsertionPoints() miscalculates IDF (authored by alelab01, committed by ).
Changed prior to commit:
https://reviews.llvm.org/D51980?vs=165071&id=165087#toc
Repository:
rL LLVM
https://reviews.llvm.org/D51980
Files:
llvm/trunk/lib/Transforms/Scalar/GVNHoist.cpp
Index: llvm/trunk/lib/Transforms/Scalar/GVNHoist.cpp
===================================================================
--- llvm/trunk/lib/Transforms/Scalar/GVNHoist.cpp
+++ llvm/trunk/lib/Transforms/Scalar/GVNHoist.cpp
@@ -155,7 +155,6 @@
using CHIIt = SmallVectorImpl<CHIArg>::iterator;
using CHIArgs = iterator_range<CHIIt>;
-using CHICache = DenseMap<BasicBlock *, SmallPtrSet<Instruction *, 4>>;
using OutValuesType = DenseMap<BasicBlock *, SmallVector<CHIArg, 2>>;
using InValuesType =
DenseMap<BasicBlock *, SmallVector<std::pair<VNType, Instruction *>, 2>>;
@@ -767,7 +766,6 @@
ReverseIDFCalculator IDFs(*PDT);
OutValuesType OutValue;
InValuesType InValue;
- CHICache CachedCHIs;
for (const auto &R : Ranks) {
const SmallVecInsn &V = Map.lookup(R);
if (V.size() < 2)
@@ -786,6 +784,7 @@
// which currently have dead terminators that are control
// dependence sources of a block which is in NewLiveBlocks.
IDFs.setDefiningBlocks(VNBlocks);
+ IDFBlocks.clear();
IDFs.calculate(IDFBlocks);
// Make a map of BB vs instructions to be hoisted.
@@ -798,8 +797,7 @@
for (unsigned i = 0; i < V.size(); ++i) {
CHIArg C = {VN, nullptr, nullptr};
// Ignore spurious PDFs.
- if (DT->properlyDominates(IDFB, V[i]->getParent()) &&
- CachedCHIs[IDFB].insert(V[i]).second) {
+ if (DT->properlyDominates(IDFB, V[i]->getParent())) {
OutValue[IDFB].push_back(C);
LLVM_DEBUG(dbgs() << "\nInsertion a CHI for BB: " << IDFB->getName()
<< ", for Insn: " << *V[i]);
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D51980.165087.patch
Type: text/x-patch
Size: 1660 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20180912/fff62bb3/attachment.bin>
More information about the llvm-commits
mailing list