[PATCH] D118384: [AMDGPU] SILoadStoreOptimizer: break lists on instructions with side effects
Jay Foad via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Fri Jan 28 10:05:06 PST 2022
This revision was landed with ongoing or failed builds.
This revision was automatically updated to reflect the committed changes.
Closed by commit rG68e39462706b: [AMDGPU] SILoadStoreOptimizer: break lists on instructions with side effects (authored by foad).
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D118384/new/
https://reviews.llvm.org/D118384
Files:
llvm/lib/Target/AMDGPU/SILoadStoreOptimizer.cpp
Index: llvm/lib/Target/AMDGPU/SILoadStoreOptimizer.cpp
===================================================================
--- llvm/lib/Target/AMDGPU/SILoadStoreOptimizer.cpp
+++ llvm/lib/Target/AMDGPU/SILoadStoreOptimizer.cpp
@@ -938,12 +938,6 @@
// 2. It is safe to move MBBI down past the instruction that I will
// be merged into.
- if (MBBI->hasUnmodeledSideEffects()) {
- // We can't re-order this instruction with respect to other memory
- // operations, so we fail both conditions mentioned above.
- return false;
- }
-
if (MBBI->mayLoadOrStore() &&
(!memAccessesCanBeReordered(*CI.I, *MBBI, AA) ||
!canMoveInstsAcrossMemOp(*MBBI, InstsToMove, AA))) {
@@ -1977,10 +1971,10 @@
if (promoteConstantOffsetToImm(MI, Visited, AnchorList))
Modified = true;
- // Don't combine if volatile. We also won't be able to merge across this, so
- // break the search. We can look after this barrier for separate merges.
- if (MI.hasOrderedMemoryRef()) {
- LLVM_DEBUG(dbgs() << "Breaking search on memory fence: " << MI);
+ // Treat volatile accesses, ordered accesses and unmodeled side effects as
+ // barriers. We can look after this barrier for separate merges.
+ if (MI.hasOrderedMemoryRef() || MI.hasUnmodeledSideEffects()) {
+ LLVM_DEBUG(dbgs() << "Breaking search on barrier: " << MI);
// Search will resume after this instruction in a separate merge list.
++BlockI;
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D118384.404073.patch
Type: text/x-patch
Size: 1504 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20220128/27504145/attachment.bin>
More information about the llvm-commits
mailing list