This is an archive of the discontinued LLVM Phabricator instance.

[DO NOT MERGE] DTU bug demonstration
AbandonedPublic

Authored by mkazantsev on Jan 30 2019, 6:05 AM.

Details

Reviewers
None
Summary

This test shows that DTU with Eager strategy fails to update the DomTree properly while Lazy strategy works OK.

Diff Detail

Event Timeline

mkazantsev created this revision.Jan 30 2019, 6:05 AM
kuhar added a subscriber: kuhar.Jan 30 2019, 6:13 AM
kuhar added a comment.Jan 30 2019, 6:28 AM

@mkazantsev Can you replace insert/deleteEdge with a bundle of updates using DTU.applyUpdates? Just eyeballing the code, it's very likely you are misusing the API by not respecting the contract of insertEdge/deleteEdge -- like Alina explained in the other thread.

I don't have any recent builds of LLVM ready and it would help me of you checked it, as a quick sanity check.

kuhar added a comment.Jan 30 2019, 6:31 AM

@mkazantsev Can you replace insert/deleteEdge with a bundle of updates using DTU.applyUpdates? Just eyeballing the code, it's very likely you are misusing the API by not respecting the contract of insertEdge/deleteEdge -- like Alina explained in the other thread.

I don't have any recent builds of LLVM ready and it would help me of you checked it, as a quick sanity check.

In short, when you do an update you have to inform about all of the changes that happened since the last update/construction at once. When you do that separately, Domtree gets confused because it's out of sync with the CFG.

mkazantsev abandoned this revision.Aug 3 2020, 3:55 AM