[PATCH] D57601: Seperate volatility and atomicity/ordering in SelectionDAG
Philip Reames via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Tue Feb 26 12:30:21 PST 2019
reames updated this revision to Diff 188439.
reames added a comment.
Herald added subscribers: nhaehnle, jvesely.
When preparing to land the approved patch, I discovered one last issue. Essentially, the previously committed fixes for SystemZ and XCore are insufficient. Both backends do something odd which is they "lower" an AtomicSDNode into the corresponding *non* atomic LoadSDNode, and then let that be selected in turn. This results in a LoadSDNode w/an atomic (but non-volatile) memory operand. None of the DAG combines expect that. Amusingly, the test which fails actually has correct output (i.e. we DSE an atomic store), but I really want this patch to be non-functional.
The fix is simple: opt both backends out of the change for the moment. I could do a more fine grained fix, but I'd like to land this as is, specifically to demonstrate that the opt-out works for any downstream backends which are effected.
p.s. Sorry for not noticing this earlier. I must have not built these backends w/all of the various patches applied.
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D57601/new/
https://reviews.llvm.org/D57601
Files:
lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
lib/Target/SystemZ/SystemZISelLowering.cpp
lib/Target/SystemZ/SystemZISelLowering.h
lib/Target/XCore/XCoreISelLowering.cpp
lib/Target/XCore/XCoreISelLowering.h
test/CodeGen/AMDGPU/syncscopes.ll
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D57601.188439.patch
Type: text/x-patch
Size: 8218 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20190226/13b3857a/attachment.bin>
More information about the llvm-commits
mailing list