This is an archive of the discontinued LLVM Phabricator instance.

[NFC] Traverse function using dominator tree.
AbandonedPublic

Authored by zoecarver on May 2 2020, 4:22 PM.

Details

Summary

Iterate over the basic blocks in a function using a dominator tree instead of the function iterator.

This will be helpful when adding support for multiple blocks.

Diff Detail

Event Timeline

zoecarver created this revision.May 2 2020, 4:22 PM
Herald added a project: Restricted Project. · View Herald TranscriptMay 2 2020, 4:22 PM
lebedev.ri resigned from this revision.May 2 2020, 11:06 PM
lebedev.ri added a reviewer: fhahn.

I'm not really sure as to the future of this DSE given the work on Mem-SSA-driven DSE.

zoecarver abandoned this revision.May 3 2020, 4:47 PM
zoecarver added a subscriber: lebedev.ri.

@lebedev.ri you're right. I just took a look at the MSSA DSE and it looks much more powerful. I'll contribute changes to that in the future (looks like there's a lot of working being done already).

fhahn added a comment.May 4 2020, 7:34 AM

@lebedev.ri you're right. I just took a look at the MSSA DSE and it looks much more powerful. I'll contribute changes to that in the future (looks like there's a lot of working being done already).

As @lebedev.ri pointed out, there's an effort to provide cross-basicblock DSE using MemorySSA. I've create an umbrella bug to track the effort: https://bugs.llvm.org/show_bug.cgi?id=45792. There are a few patches pending adding functionality, but there is at least one more feature missing (without any patches yet) to reach parity with legacy DSE: https://bugs.llvm.org/show_bug.cgi?id=45795. Please feel free to reach out if you are interested in helping out!

@fhahn thanks for the links. Yes, I'm happy to help out. I can get started on the noop store bug this week. I'll post a comment over there (in that bug).