This is an archive of the discontinued LLVM Phabricator instance.

[mlir] Add nontemporal field to memref.load/store and convey to llvm.load/store
ClosedPublic

Authored by guraypp on Jan 26 2023, 5:06 AM.

Details

Summary

llvm.load op has nonTemporal field which is missing for memref.load and memref.store. This revision first adds nonTemporal field to memref's load/store op, then it lowers the field to llvm.load/store ops.

Diff Detail

Event Timeline

guraypp created this revision.Jan 26 2023, 5:06 AM
Herald added a project: Restricted Project. · View Herald Transcript
guraypp requested review of this revision.Jan 26 2023, 5:06 AM

Have you checked that foldings and canonicalizations don't just drop the new attribute?

Some of the folding / canonicalizations tests should be updated to cover this.

guraypp updated this revision to Diff 494542.Feb 3 2023, 12:59 AM

Added flag propogation on the folding passes, and added new tests.

nicolasvasilache accepted this revision.Feb 3 2023, 2:43 AM
nicolasvasilache added inline comments.
mlir/test/Dialect/MemRef/fold-memref-alias-ops.mlir
527

nit: nl

This revision is now accepted and ready to land.Feb 3 2023, 2:43 AM
guraypp updated this revision to Diff 494575.Feb 3 2023, 3:10 AM

rebase, address the comment