summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Transforms/IPO/GlobalOpt.cpp
diff options
context:
space:
mode:
authorFlorian Hahn <flo@fhahn.com>2019-10-02 08:32:25 +0000
committerFlorian Hahn <flo@fhahn.com>2019-10-02 08:32:25 +0000
commit47dbcbd8ec6bf6c0b9cbe5811e81a37cc55e73ef (patch)
treebe9eee47b34e2eb2530ba0722c2918c62c0f2edd /llvm/lib/Transforms/IPO/GlobalOpt.cpp
parentcbefc36fcc275454abfd0bc449edd0146dfd65cf (diff)
downloadbcm5719-llvm-47dbcbd8ec6bf6c0b9cbe5811e81a37cc55e73ef.tar.gz
bcm5719-llvm-47dbcbd8ec6bf6c0b9cbe5811e81a37cc55e73ef.zip
Revert [GlobalOpt] Pass DTU to removeUnreachableBlocks instead of recomputing.
This breaks http://lab.llvm.org:8011/builders/sanitizer-windows/builds/52310 This reverts r373430 (git commit 70f70035484ba199a329f9f8d9bd67e37bc2b408) llvm-svn: 373432
Diffstat (limited to 'llvm/lib/Transforms/IPO/GlobalOpt.cpp')
-rw-r--r--llvm/lib/Transforms/IPO/GlobalOpt.cpp10
1 files changed, 7 insertions, 3 deletions
diff --git a/llvm/lib/Transforms/IPO/GlobalOpt.cpp b/llvm/lib/Transforms/IPO/GlobalOpt.cpp
index dfbb3e78e34..9c7fd5e1a81 100644
--- a/llvm/lib/Transforms/IPO/GlobalOpt.cpp
+++ b/llvm/lib/Transforms/IPO/GlobalOpt.cpp
@@ -2285,10 +2285,14 @@ OptimizeFunctions(Module &M,
// So, remove unreachable blocks from the function, because a) there's
// no point in analyzing them and b) GlobalOpt should otherwise grow
// some more complicated logic to break these cycles.
+ // Removing unreachable blocks might invalidate the dominator so we
+ // recalculate it.
if (!F->isDeclaration()) {
- auto &DT = LookupDomTree(*F);
- DomTreeUpdater DTU(DT, DomTreeUpdater::UpdateStrategy::Lazy);
- Changed |= removeUnreachableBlocks(*F, nullptr, &DTU);
+ if (removeUnreachableBlocks(*F)) {
+ auto &DT = LookupDomTree(*F);
+ DT.recalculate(*F);
+ Changed = true;
+ }
}
Changed |= processGlobal(*F, GetTLI, LookupDomTree);
OpenPOWER on IntegriCloud