diff options
Diffstat (limited to 'llvm/lib/Transforms/IPO/GlobalOpt.cpp')
-rw-r--r-- | llvm/lib/Transforms/IPO/GlobalOpt.cpp | 18 |
1 files changed, 0 insertions, 18 deletions
diff --git a/llvm/lib/Transforms/IPO/GlobalOpt.cpp b/llvm/lib/Transforms/IPO/GlobalOpt.cpp index 93eab680ca6..3d57acf06e7 100644 --- a/llvm/lib/Transforms/IPO/GlobalOpt.cpp +++ b/llvm/lib/Transforms/IPO/GlobalOpt.cpp @@ -2026,24 +2026,6 @@ OptimizeFunctions(Module &M, TargetLibraryInfo *TLI, continue; } - // LLVM's definition of dominance allows instructions that are cyclic - // in unreachable blocks, e.g.: - // %pat = select i1 %condition, @global, i16* %pat - // because any instruction dominates an instruction in a block that's - // not reachable from entry. - // 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()) { - if (removeUnreachableBlocks(*F)) { - auto &DT = LookupDomTree(*F); - DT.recalculate(*F); - Changed = true; - } - } - Changed |= processGlobal(*F, TLI, LookupDomTree); if (!F->hasLocalLinkage()) |