This is an archive of the discontinued LLVM Phabricator instance.

[WIP][LICM] Hoisting of guards, assumes, and invariant_starts
AbandonedPublic

Authored by reames on Apr 27 2018, 2:49 PM.

Details

Reviewers
None
Summary

This is a WIP which is slowly being split into reviewable pieces:

Build off the approach pioneered in https://reviews.llvm.org/D46211, and apply the same reasoning to memory effects. Once we do this, we can hoist any intrinsic which has memory effects only for control flow modeling purposes (i.e. guards, assumes, invariant_start, and possibly others)

This needs a bunch of cleanup and likely some refactoring to LICM before landing. I'm posting it just so I don't forget where I was going.

Diff Detail

Event Timeline

reames created this revision.Apr 27 2018, 2:49 PM
reames added a comment.Aug 9 2018, 1:21 PM

Just to note, the first piece of this has been split off in https://reviews.llvm.org/D50364. (assume handling)

Up next is invariant.start once that lands.

reames edited the summary of this revision. (Show Details)Aug 16 2018, 12:10 PM
reames edited the summary of this revision. (Show Details)Aug 24 2018, 9:16 AM
reames abandoned this revision.Aug 24 2018, 9:18 AM

All component pieces have been split and landed individually.