This is an archive of the discontinued LLVM Phabricator instance.

[Dominators] Implement incremental deletions
ClosedPublic

Authored by kuhar on Jul 12 2017, 6:37 PM.

Details

Summary

This patch implements incremental edge deletions.

It also makes DominatorTreeBase store a pointer to the parent function. The parent function is needed to perform full rebuilts during some deletions, but it is also used to verify that inserted and deleted edges come from the same function.

Diff Detail

Repository
rL LLVM

Event Timeline

dberlin accepted this revision.Jul 13 2017, 10:33 AM

This looks right, but can you give an explicit paper reference in the comments of deleteedge?

This revision is now accepted and ready to land.Jul 13 2017, 10:33 AM
kuhar updated this revision to Diff 106577.Jul 13 2017, 6:50 PM

I tried to improve comments. Please let me know if they are descriptive enough now.

kuhar added inline comments.Jul 13 2017, 6:51 PM
include/llvm/Support/GenericDomTree.h
480 ↗(On Diff #106577)

Actually, I think that we can assert here that To is not a successor of From here, as it is the deletion precondition.

dberlin accepted this revision.Jul 14 2017, 2:08 PM

Thank you!

This revision was automatically updated to reflect the committed changes.