This is an archive of the discontinued LLVM Phabricator instance.

LoopVersioning: Respect convergent
ClosedPublic

Authored by arsenm on Jun 7 2019, 11:24 AM.

Details

Summary

This changes the standalone pass only. Arguably the utility class
itself should assert there are no convergent calls. However, a target
pass with additional context may still be able to version a loop if
all of the dynamic conditions are sufficiently uniform.

Diff Detail

Event Timeline

arsenm created this revision.Jun 7 2019, 11:24 AM
Meinersbur accepted this revision.Jun 7 2019, 1:10 PM

LGTM

Would an assertion in LoopVersioning checking whether it accidentally copies a convergent operation make sense?

This revision is now accepted and ready to land.Jun 7 2019, 1:10 PM
arsenm added a comment.Jun 7 2019, 1:11 PM

LGTM

Would an assertion in LoopVersioning checking whether it accidentally copies a convergent operation make sense?

A target might contextually be able to version a loop depending on the convergent operation

arsenm closed this revision.Jun 12 2019, 7:02 AM

r363165