This is an archive of the discontinued LLVM Phabricator instance.

[SelectionDAG] Strengthen assertions about usage of AtomicSDNodes
ClosedPublic

Authored by reames on Feb 27 2019, 2:10 PM.

Details

Summary

In D57601, I described the expectations around usage of AtomicSDNode and LoadSDNode/StoreSDNode w.r.t. atomic and volatiles. This patch simply embeds those expectations in assertions so that they can't be accidentally weakened.

Note: The reason only AtomicSDNodes of ATOMIC_LOAD and ATOMIC_STORE opcode are currently checked is that AMDGPU has an intrinsic which gets lowered to an ATOMIC_LOAD_FADD w/o a corresponding atomic MMO. This is suspicious, and I've brought it to the attention of the relevant developers. Once resolved, I'll strengthen that assertion.

Note 2: If this breaks your out-of-tree backend, go read the update instructions associated w/the previously mentioned patch. This will assert on (a subset of) things you need to update per those instructions.

Diff Detail

Repository
rL LLVM

Event Timeline

reames created this revision.Feb 27 2019, 2:10 PM
reames updated this revision to Diff 188620.Feb 27 2019, 2:11 PM

I somehow uploaded entirely the wrong patch... oops.

jlebar accepted this revision.Feb 27 2019, 3:44 PM
This revision is now accepted and ready to land.Feb 27 2019, 3:44 PM
This revision was automatically updated to reflect the committed changes.
Herald added a project: Restricted Project. · View Herald TranscriptFeb 27 2019, 8:07 PM