This is an archive of the discontinued LLVM Phabricator instance.

[MemDep] Adjust NonLocalPointerDep handling to be more precise.
AbandonedPublic

Authored by john.brawn on Dec 10 2018, 7:37 AM.

Details

Summary

Currently the NonLocalDepResult for a pointer will have a BB value which is the block where the result is defined. This means that every block from there to StartBB will be marked as visited by the Pointer we used to get there, which means that for every other Pointer that tries to visit those blocks we get a Clobber result.

In many situations this is too imprecise and we could have chosen a block closer to StartBB without affecting the validity of the result, which means we can successfully find non-Clobber results for other Pointer values. This patch does just that, which makes GVN able to optimise in situations it currently can't.

Diff Detail

Repository
rL LLVM

Event Timeline

john.brawn created this revision.Dec 10 2018, 7:37 AM
fhahn requested changes to this revision.Mar 10 2021, 12:13 PM

Please rebase the patch if it is still relevant.

This revision now requires changes to proceed.Mar 10 2021, 12:13 PM
bmahjour removed a subscriber: bmahjour.Mar 10 2021, 1:27 PM
john.brawn abandoned this revision.Mar 30 2021, 9:50 AM

Abandoning this as I haven't touched it in a long time.