[PATCH] D57596: [CodeGen] Be conservative about atomic accesses as for volatile
Philip Reames via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Fri Feb 1 14:58:56 PST 2019
This revision was automatically updated to reflect the committed changes.
Closed by commit rL352937: [CodeGen] Be as conservative about atomic accesses as for volatile (authored by reames, committed by ).
Herald added a project: LLVM.
Changed prior to commit:
https://reviews.llvm.org/D57596?vs=184850&id=184854#toc
Repository:
rL LLVM
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D57596/new/
https://reviews.llvm.org/D57596
Files:
llvm/trunk/lib/CodeGen/MachineInstr.cpp
llvm/trunk/lib/CodeGen/MachinePipeliner.cpp
llvm/trunk/lib/CodeGen/ScheduleDAGInstrs.cpp
Index: llvm/trunk/lib/CodeGen/MachinePipeliner.cpp
===================================================================
--- llvm/trunk/lib/CodeGen/MachinePipeliner.cpp
+++ llvm/trunk/lib/CodeGen/MachinePipeliner.cpp
@@ -2766,7 +2766,9 @@
return;
SmallVector<MachineMemOperand *, 2> NewMMOs;
for (MachineMemOperand *MMO : NewMI.memoperands()) {
- if (MMO->isVolatile() || (MMO->isInvariant() && MMO->isDereferenceable()) ||
+ // TODO: Figure out whether isAtomic is really necessary (see D57601).
+ if (MMO->isVolatile() || MMO->isAtomic() ||
+ (MMO->isInvariant() && MMO->isDereferenceable()) ||
(!MMO->getValue())) {
NewMMOs.push_back(MMO);
continue;
Index: llvm/trunk/lib/CodeGen/MachineInstr.cpp
===================================================================
--- llvm/trunk/lib/CodeGen/MachineInstr.cpp
+++ llvm/trunk/lib/CodeGen/MachineInstr.cpp
@@ -1305,6 +1305,8 @@
for (MachineMemOperand *MMO : memoperands()) {
if (MMO->isVolatile()) return false;
+ // TODO: Figure out whether isAtomic is really necessary (see D57601).
+ if (MMO->isAtomic()) return false;
if (MMO->isStore()) return false;
if (MMO->isInvariant() && MMO->isDereferenceable())
continue;
Index: llvm/trunk/lib/CodeGen/ScheduleDAGInstrs.cpp
===================================================================
--- llvm/trunk/lib/CodeGen/ScheduleDAGInstrs.cpp
+++ llvm/trunk/lib/CodeGen/ScheduleDAGInstrs.cpp
@@ -131,7 +131,8 @@
const DataLayout &DL) {
auto allMMOsOkay = [&]() {
for (const MachineMemOperand *MMO : MI->memoperands()) {
- if (MMO->isVolatile())
+ // TODO: Figure out whether isAtomic is really necessary (see D57601).
+ if (MMO->isVolatile() || MMO->isAtomic())
return false;
if (const PseudoSourceValue *PSV = MMO->getPseudoValue()) {
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D57596.184854.patch
Type: text/x-patch
Size: 1894 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20190201/01b34bcd/attachment.bin>
More information about the llvm-commits
mailing list