]> granicus.if.org Git - llvm/commit
Merging r324962: (only the first hunk; see PR36375)
authorHans Wennborg <hans@hanshq.net>
Wed, 14 Feb 2018 10:16:43 +0000 (10:16 +0000)
committerHans Wennborg <hans@hanshq.net>
Wed, 14 Feb 2018 10:16:43 +0000 (10:16 +0000)
commit2192111fb2eae53caa9dbd5b14216badde9e544d
tree25d3dec123747fcbb29c7b27aef7d538fe343b44
parent2955450dc1845f2fc3434a1a567b8041aeb45eab
Merging r324962: (only the first hunk; see PR36375)

------------------------------------------------------------------------
r324962 | kuhar | 2018-02-13 00:37:27 +0100 (Tue, 13 Feb 2018) | 16 lines

[Dominators] Always recalculate postdominators when update yields different roots

Summary:
This patch makes postdominators always recalculate the tree when an update causes to change the tree roots.
As @dmgreen noticed in [[ https://reviews.llvm.org/D41298 | D41298 ]], the previous implementation was not conservative enough and it was possible to end up with a PostDomTree that was different than a freshly computed one.
The patch also compares postdominators with a freshly computed tree at the end of full verification to make sure we don't hit similar issues in the future.

This should (ideally) be also backported to 6.0 before the release, although I don't have any reports of this causing an observable error. It should be safe to do it even if it's late in the release, as the change only makes the current behavior more conservative.

Reviewers: dmgreen, dberlin, davide, brzycki, grosser

Reviewed By: brzycki, grosser

Subscribers: llvm-commits, dmgreen

Differential Revision: https://reviews.llvm.org/D43140
------------------------------------------------------------------------

git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_60@325108 91177308-0d34-0410-b5e6-96231b3b80d8
include/llvm/Support/GenericDomTreeConstruction.h