This is an archive of the discontinued LLVM Phabricator instance.

[Matrix] Preserve volatile when loading loads/stores.
ClosedPublic

Authored by fhahn on Jun 9 2020, 12:59 PM.

Details

Summary

Currently the matrix lowering turns volatile loads/stores into
non-volatile ones. This patch updates the lowering to preserve the
volatile bit.

Diff Detail

Event Timeline

fhahn created this revision.Jun 9 2020, 12:59 PM
Herald added a project: Restricted Project. · View Herald TranscriptJun 9 2020, 12:59 PM
LuoYuanke added inline comments.Jun 13 2020, 10:19 PM
llvm/lib/Transforms/Scalar/LowerMatrixIntrinsics.cpp
1217–1218

Why we set volatile as false? Is it possible that the original load instruction is volatile load?
Do we allow fusion if the load and store instruction is volatile?

fhahn updated this revision to Diff 270764.Jun 15 2020, 8:31 AM

Pass through volatile flag for matrix fusion, thanks @LuoYuanke!

fhahn marked an inline comment as done.Jun 15 2020, 8:32 AM
fhahn added inline comments.
llvm/lib/Transforms/Scalar/LowerMatrixIntrinsics.cpp
1217–1218

Yes indeed! I wanted to share the code ASAP, fixed now (with additional test case)

anemet accepted this revision.Jun 15 2020, 10:16 AM

LGTM

This revision is now accepted and ready to land.Jun 15 2020, 10:16 AM
fhahn updated this revision to Diff 271119.Jun 16 2020, 9:20 AM

Rebase after cleaning up test diffs.

fhahn updated this revision to Diff 271167.Jun 16 2020, 12:27 PM

Rebase after adding another test

fhahn updated this revision to Diff 271655.Jun 18 2020, 4:13 AM

Rebased after parent patches landed upstream. Will commit shortly.

This revision was automatically updated to reflect the committed changes.