This is an archive of the discontinued LLVM Phabricator instance.

[WIP!][DomTreeUpdater/Auto[1]] Preserve the DomTree in the SimplifyCFG pass
AbandonedPublic

Authored by NutshellySima on Aug 5 2018, 4:03 AM.

Details

Reviewers
kuhar
Summary

Note: This is a work-in-progress patch and I don't intend to commit it. Please ignore it if you are automatically subscribed.

This patch relies on D50302 which provides a utility for complex passes to test whether it is profitable to preserve the DominatorTree.

This patch converts the SimplifyCFG pass into preserving the DominatorTree. Combined with D50303, you can compare the performance difference by looking at the total time used by the whole DominatorTree.

From my experiment, it is not profit to preserve the DomTree in the SimplifyCFG pass, and we can further look into this issue. (Detect whether it is slow because SimplifyCFG loves to rewire a bunch of edges and make DominatorTree spend to much effort on it).

Diff Detail

Event Timeline

NutshellySima created this revision.Aug 5 2018, 4:03 AM

This patch only converts a limited number of tests to demonstrate the implementation of preserving the DT is correct.

NutshellySima retitled this revision from [WIP!][SimplifyCFG] Preserve the DomTree in the SimplifyCFG pass to [WIP!][DomTreeUpdater/Auto[1]] Preserve the DomTree in the SimplifyCFG pass.Aug 5 2018, 8:31 AM
NutshellySima abandoned this revision.Feb 22 2019, 12:16 PM

Close along with D50302.

Herald added a project: Restricted Project. · View Herald TranscriptFeb 22 2019, 12:16 PM
Herald added a subscriber: jdoerfert. · View Herald Transcript