[Dominators] Delete UpdateLevelsAfterInsertion in edge insertion of depth-based searc...
authorFangrui Song <maskray@google.com>
Wed, 20 Feb 2019 02:35:24 +0000 (02:35 +0000)
committerFangrui Song <maskray@google.com>
Wed, 20 Feb 2019 02:35:24 +0000 (02:35 +0000)
commit476e1b9937552b2dde191d0c3a6d3396ef9fa7e7
treedfa276361f71f614b7ae39c5c92dc072ccb4d616
parent7cca803d4cbee6e5900165e43dc670ab23cf3614
[Dominators] Delete UpdateLevelsAfterInsertion in edge insertion of depth-based search for release builds

Summary:
After insertion of (From, To), v is affected iff
depth(NCD)+1 < depth(v) && path P from To to v exists where every w on P s.t. depth(v) <= depth(w)

All affected vertices change their idom to NCD.

If a vertex u has changed its depth, it must be a descendant of an
affected vertex v. Its depth must have been updated by UpdateLevel()
called by setIDom() of the first affected ancestor.

So UpdateLevelsAfterInsertion and its bookkeeping variable VisitedNotAffectedQueue are redundant.
Run them only in debug builds as a sanity check.

Reviewers: kuhar

Reviewed By: kuhar

Subscribers: kristina, llvm-commits

Tags: #llvm

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

llvm-svn: 354429
llvm/include/llvm/Support/GenericDomTreeConstruction.h