Page MenuHomePhabricator

[NFC] Traverse function using dominator tree.
AbandonedPublic

Authored by zoecarver on Sat, May 2, 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

Unit TestsFailed

TimeTest
7,540 mslld.COFF::debug-fastlink.test
Script: -- : 'RUN: at line 1'; /mnt/disks/ssd0/agent/workspace/amd64_debian_testing_clang8/build/bin/yaml2obj < /mnt/disks/ssd0/agent/workspace/amd64_debian_testing_clang8/lld/test/COFF/Inputs/pdb1.yaml > /mnt/disks/ssd0/agent/workspace/amd64_debian_testing_clang8/build/tools/lld/test/COFF/Output/debug-fastlink.test.tmp1.obj
6,490 mslld.COFF::invalid-debug-type.test
Script: -- : 'RUN: at line 1'; /mnt/disks/ssd0/agent/workspace/amd64_debian_testing_clang8/build/bin/yaml2obj < /mnt/disks/ssd0/agent/workspace/amd64_debian_testing_clang8/lld/test/COFF/Inputs/pdb1.yaml > /mnt/disks/ssd0/agent/workspace/amd64_debian_testing_clang8/build/tools/lld/test/COFF/Output/invalid-debug-type.test.tmp1.obj
5,940 mslld.COFF::linkrepro-pdb.test
Script: -- : 'RUN: at line 3'; rm -rf /mnt/disks/ssd0/agent/workspace/amd64_debian_testing_clang8/build/tools/lld/test/COFF/Output/linkrepro-pdb.test.tmp && mkdir -p /mnt/disks/ssd0/agent/workspace/amd64_debian_testing_clang8/build/tools/lld/test/COFF/Output/linkrepro-pdb.test.tmp && cd /mnt/disks/ssd0/agent/workspace/amd64_debian_testing_clang8/build/tools/lld/test/COFF/Output/linkrepro-pdb.test.tmp
9,040 mslld.COFF::nodefaultlib.test
Script: -- : 'RUN: at line 1'; cp /mnt/disks/ssd0/agent/workspace/amd64_debian_testing_clang8/lld/test/COFF/Inputs/hello64.obj /mnt/disks/ssd0/agent/workspace/amd64_debian_testing_clang8/build/tools/lld/test/COFF/Output
8,540 mslld.COFF::pdb-comdat.test
Script: -- : 'RUN: at line 25'; rm -rf /mnt/disks/ssd0/agent/workspace/amd64_debian_testing_clang8/build/tools/lld/test/COFF/Output/pdb-comdat.test.tmp && mkdir -p /mnt/disks/ssd0/agent/workspace/amd64_debian_testing_clang8/build/tools/lld/test/COFF/Output/pdb-comdat.test.tmp && cd /mnt/disks/ssd0/agent/workspace/amd64_debian_testing_clang8/build/tools/lld/test/COFF/Output/pdb-comdat.test.tmp
View Full Test Results (33 Failed)

Event Timeline

zoecarver created this revision.Sat, May 2, 4:22 PM
Herald added a project: Restricted Project. · View Herald TranscriptSat, May 2, 4:22 PM
lebedev.ri resigned from this revision.Sat, May 2, 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.Sun, May 3, 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.Mon, May 4, 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).