[llvm] [llvm][CodeGen] Update checking method of loop-carried phi in window scheduler (PR #96288)

Hua Tian via llvm-commits llvm-commits at lists.llvm.org
Fri Jun 21 04:48:10 PDT 2024


=?utf-8?b?4oCcYWtpcmF0aWFu4oCd?= <akiratian at tencent.com>
Message-ID:
In-Reply-To: <llvm.org/llvm/llvm-project/pull/96288 at github.com>


================
@@ -192,22 +192,36 @@ bool WindowScheduler::initialize() {
     return false;
   }
   // Check each MI in MBB.
-  SmallVector<Register, 8> PhiDefs;
+  SmallSet<Register, 8> PrevDefs;
+  SmallSet<Register, 8> PrevUses;
+  auto IsLoopCarried = [&](MachineInstr &Phi) {
+    // Two cases are checked here: (1)The virtual register defined by the
+    // preceding phi is used by the succeeding phi;(2)The preceding phi uses the
+    // virtual register defined by the succeeding phi.
+    for (auto MO : Phi.operands()) {
+      if (!MO.isReg())
+        continue;
+      if (MO.isDef()) {
----------------
huaatian wrote:

Updated

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


More information about the llvm-commits mailing list