This is an archive of the discontinued LLVM Phabricator instance.

[CodeGen] Split out the notions of MI invariance and MI dereferenceability.
ClosedPublic

Authored by jlebar on Aug 10 2016, 1:27 PM.

Details

Summary

An IR load can be invariant, dereferenceable, neither, or both. But
currently, MI's notion of invariance is IR-invariant &&
IR-dereferenceable.

This patch splits up the notions of invariance and dereferenceability at
the MI level. It's NFC, so adds some probably-unnecessary
"is-dereferenceable" checks, which we can remove later if desired.

Diff Detail

Event Timeline

jlebar updated this revision to Diff 67593.Aug 10 2016, 1:27 PM
jlebar retitled this revision from to [CodeGen] Split out the notions of MI invariance and MI dereferenceability..
jlebar updated this object.
jlebar added a reviewer: chandlerc.
jlebar added a subscriber: llvm-commits.

FYI I created this patch by going through all occurrences of "invariant" within the following files:

git grep -li invariant | grep -v '^test\|/Transforms\|/IR\|/Analysis\|^docs\|ADT'
chandlerc edited edge metadata.Aug 16 2016, 6:02 PM

This seems largely good (once preceding patches land). It'd be good to get someone to double check the PPC refactoring, as that's the only one that seemed even a little interesting.

hfinkel edited edge metadata.Aug 16 2016, 6:11 PM

This seems largely good (once preceding patches land). It'd be good to get someone to double check the PPC refactoring, as that's the only one that seemed even a little interesting.

Quickly looked at the PPC bits; Looks fine to me.

Preceding patches are in, not sure if you wanted to have another look before lg'ing this. I went back through and (I admit, halfheartedly) re-audited, and I didn't find anything that needed to change.

jlebar updated this revision to Diff 70956.Sep 10 2016, 6:14 PM
jlebar edited edge metadata.

Rebase to HEAD.

chandlerc accepted this revision.Sep 10 2016, 6:42 PM
chandlerc edited edge metadata.

LGTM!

Thanks for all the prep work to get here and making this change!

This revision is now accepted and ready to land.Sep 10 2016, 6:42 PM
This revision was automatically updated to reflect the committed changes.