[llvm] [X86]RMW instrs not handled in pre-RA-sched=fast (PR #67281)

via llvm-commits llvm-commits at lists.llvm.org
Mon Sep 25 00:43:18 PDT 2023


================
@@ -231,6 +231,11 @@ SUnit *ScheduleDAGFast::CopyAndMoveSuccessors(SUnit *SU) {
     if (!TII->unfoldMemoryOperand(*DAG, N, NewNodes))
       return nullptr;
 
+    // unfolding an x86 RMW operation results in store, dec, load which
+    // can't be handled here so quit
+    if (NewNodes.size() == 3)
+      return nullptr;
+
----------------
XinWang10 wrote:

If that then it's same to my solution which disable unfold for RMW, and we need to clarify if RMW would not be used every where or just here.(Although this signature for unfoldMemoryOperand just used here, I don't know if it would be used in the future.

https://github.com/llvm/llvm-project/pull/67281


More information about the llvm-commits mailing list