This is an archive of the discontinued LLVM Phabricator instance.

Add dominator tree node downward splitting support
Needs RevisionPublic

Authored by hliao on Nov 16 2015, 12:47 PM.

Details

Summary

Tell downward splitting from the previous upward splitting.

  • By upward splitting, a new basic block (NewBB) is split and inherits part or all predecessors of the original basic block (OrigBB) and has OrigBB as its only successor.
  • By downward splitting, NewBB is split and inherits part of all successors of OrigBB and has OrigBB as its only predecessor.

So far, we only support upward splitting for (forward) dominator tree. For post-dominator tree, a upward splitting in the forward graph is in fact a downward splitting in the backward graph. This renders the current splitting support invalid if we want to incrementally update post-dominator tree.

Minor name change on the interface checking whether a dominator tree node is reachable from entry to use it for both dominator and post-dominator trees.

Diff Detail

Event Timeline

hliao updated this revision to Diff 40321.Nov 16 2015, 12:47 PM
hliao retitled this revision from to Add dominator tree node downward splitting support.
hliao updated this object.
hliao added reviewers: nadav, chandlerc.
hliao set the repository for this revision to rL LLVM.
hliao updated this revision to Diff 40371.Nov 16 2015, 8:56 PM
hliao removed rL LLVM as the repository for this revision.

Add one check when update dominator tree for node splitting downward. Need to check whether the code is reachable from entry(s) or dominated by the root.

hliao added a subscriber: llvm-commits.
hliao set the repository for this revision to rL LLVM.Nov 18 2015, 9:03 AM

kindly ping

jmolloy resigned from this revision.Dec 12 2015, 5:28 AM
jmolloy removed a reviewer: jmolloy.

I don't think I'm an appropriate reviewer for this; resigning.

gottesmm resigned from this revision.Jan 12 2016, 8:56 PM
gottesmm removed a reviewer: gottesmm.

I also am not appropriate for reviewing this. Resigning as well.

chandlerc requested changes to this revision.Apr 6 2016, 11:08 PM
chandlerc edited edge metadata.

It isn't clear in the description as stated what the end goal is, and the description of the patch isn't terribly clear. If this is still interesting, please update to make it clear where you're going with this and why.

This revision now requires changes to proceed.Apr 6 2016, 11:08 PM