This is an archive of the discontinued LLVM Phabricator instance.

[LSV] Teach LSV to handle atomic ops.
AbandonedPublic

Authored by hliao on Jun 24 2021, 8:56 AM.

Details

Summary
  • It's legal to reorder non-atomic and Unordered loads/stores around Monotonic or weaker atomics.

Diff Detail

Event Timeline

hliao created this revision.Jun 24 2021, 8:56 AM
hliao requested review of this revision.Jun 24 2021, 8:56 AM
Herald added a project: Restricted Project. · View Herald TranscriptJun 24 2021, 8:56 AM
hliao updated this revision to Diff 354428.Jun 24 2021, 9:41 PM
  • Fix the case where monotonic or weaker atomic ops may alias to load or store.
arsenm added inline comments.Aug 6 2021, 6:08 AM
llvm/lib/Transforms/Vectorize/LoadStoreVectorizer.cpp
700–714

It seems like this should be a global utility function somewhere

800–810

I think there's a utility for this osmewhere already (that also will handle the intrinsic calls)

llvm/test/Transforms/LoadStoreVectorizer/atomic.ll
8–9

Should check more, should show the relation to the atomics

hliao abandoned this revision.Sep 15 2021, 2:59 PM

obsoleted by D109020