This is an archive of the discontinued LLVM Phabricator instance.

Conservatively add volatility and atomic checks in a few places
ClosedPublic

Authored by reames on Oct 3 2019, 1:43 PM.

Details

Summary

As background, starting in D66309, I'm working on support unordered atomics analogous to volatile flags on normal LoadSDNode/StoreSDNodes for X86.

As part of that, I spent some time going through usages of LoadSDNode and StoreSDNode looking for cases where we might have missed a volatility check or need an atomic check. I couldn't find any cases that clearly miscompile - i.e. no test cases - but a couple of pieces in code loop suspicious though I can't figure out how to exercise them.

This patch adds defensive checks and asserts in the places my manual audit found. If anyone has any ideas on how to either a) disprove any of the checks, or b) hit the bug they might be fixing, I welcome suggestions.

Diff Detail

Event Timeline

reames created this revision.Oct 3 2019, 1:43 PM
Herald added a project: Restricted Project. · View Herald TranscriptOct 3 2019, 1:43 PM
jlebar accepted this revision.Oct 8 2019, 7:37 AM
This revision is now accepted and ready to land.Oct 8 2019, 7:37 AM
This revision was automatically updated to reflect the committed changes.