This is an archive of the discontinued LLVM Phabricator instance.

[ADCE][Dominators] Teach ADCE to preserve dominators
ClosedPublic

Authored by kuhar on Jul 25 2017, 5:35 PM.

Diff Detail

Repository
rL LLVM

Event Timeline

kuhar created this revision.Jul 25 2017, 5:35 PM
kuhar updated this revision to Diff 108192.Jul 25 2017, 5:43 PM

Don't remove the same edge multiple times.

davide edited edge metadata.Jul 25 2017, 6:59 PM
davide added a subscriber: zhendongsu.

Can you push all these patches to a branch so that Zhendong can do a run on fuzz-testing on them?
(cc: @zhendongsu) I'll be happy if we can do at least one before all the work goes in. It shouldn't take too long and we can review in parallel.
Thanks,

Davide

grandinj added inline comments.
lib/Transforms/Scalar/ADCE.cpp
94 ↗(On Diff #108192)

perverse -> preserve

kuhar updated this revision to Diff 108996.Jul 31 2017, 1:52 PM

Fix a double edge deletion bug and add a testcase for it.

kuhar marked an inline comment as done.Jul 31 2017, 1:52 PM
davide accepted this revision.Aug 16 2017, 12:53 AM
This revision is now accepted and ready to land.Aug 16 2017, 12:53 AM
kuhar updated this revision to Diff 111415.Aug 16 2017, 1:39 PM

Rebase to ToT.

This revision was automatically updated to reflect the committed changes.
kuhar updated this revision to Diff 111449.Aug 16 2017, 6:28 PM

Add dependency on the DominatorTreeWrapperPass for the LegacyPassManager.

kuhar updated this revision to Diff 112184.Aug 22 2017, 9:18 AM

Update to use the batch API.
Add a regression test for deletions in wrong order.