[DSE] Preserve basic block ordering using OrderedBasicBlock.
authorFlorian Hahn <flo@fhahn.com>
Thu, 28 Mar 2019 20:02:33 +0000 (20:02 +0000)
committerFlorian Hahn <flo@fhahn.com>
Thu, 28 Mar 2019 20:02:33 +0000 (20:02 +0000)
commitc0bfd37d385c93711ef3a349599dba20e6b101ef
tree253d53ae2851ef55b79938117500a429408f22fc
parent43aaafc0e1fdd879e8939c60c7b24d9f77f6b5f8
[DSE] Preserve basic block ordering using OrderedBasicBlock.

By extending OrderedBB to allow removing and replacing cached
instructions, we can preserve OrderedBBs in DSE easily. This eliminates
one source of quadratic compile time in DSE.

Fixes PR38829.

Reviewers: rnk, efriedma, hfinkel

Reviewed By: efriedma

Differential Revision: https://reviews.llvm.org/D59789

llvm-svn: 357208
llvm/include/llvm/Analysis/OrderedBasicBlock.h
llvm/lib/Analysis/OrderedBasicBlock.cpp
llvm/lib/Transforms/Scalar/DeadStoreElimination.cpp