This is an archive of the discontinued LLVM Phabricator instance.

[Dominators] Add parent and sibling property verification
AbandonedPublic

Authored by kuhar on Jun 20 2017, 9:48 AM.

Details

Reviewers
None
Summary

(This is just to test the old SLT and the new Semi-NCA DomTree construction algorithms. This patch is hacky and is not intended to be commited. It will be rewritten in a more clean way when SNCA/SLT-related info is moved out of DominatorTreeBase.)

This patch adds additional level of verification - it checks parent and sibling properties of a tree. By definition, every tree with these two properties is a dominator tree.

Diff Detail

Event Timeline

kuhar created this revision.Jun 20 2017, 9:48 AM
dberlin added inline comments.Jun 20 2017, 10:28 AM
include/llvm/Support/GenericDomTreeConstruction.h
285

This misses one thing: It¸doesn't verify that a path exists in the first place :)

IE it should verify a path exists, then, when you remove the parent, a path no longer exists.

kuhar updated this revision to Diff 103240.Jun 20 2017, 11:16 AM

Verify reachability.

kuhar marked an inline comment as done.Jun 20 2017, 11:16 AM
kuhar updated this revision to Diff 103415.Jun 21 2017, 9:56 AM

Make the code compile when building clang

kuhar abandoned this revision.Jul 9 2017, 10:18 PM