[llvm] [ARM] Resolve FIXME: We can trust live-in information from successor blocks now (PR #84111)

via llvm-commits llvm-commits at lists.llvm.org
Tue Apr 2 08:59:57 PDT 2024


https://github.com/AtariDreams updated https://github.com/llvm/llvm-project/pull/84111

>From 6400c4aa295dab21c3fa6676de97ca8fdaa71a84 Mon Sep 17 00:00:00 2001
From: Rose <gfunni234 at gmail.com>
Date: Tue, 5 Mar 2024 17:35:23 -0500
Subject: [PATCH] [ARM] Resolve FIXME: We can trust live-in information from
 successor blocks now

This comment is quite old and no longer applies.
---
 llvm/lib/Target/ARM/ARMLoadStoreOptimizer.cpp | 25 +++++++++++--------
 1 file changed, 14 insertions(+), 11 deletions(-)

diff --git a/llvm/lib/Target/ARM/ARMLoadStoreOptimizer.cpp b/llvm/lib/Target/ARM/ARMLoadStoreOptimizer.cpp
index 469340784284cb..a514f8539a91da 100644
--- a/llvm/lib/Target/ARM/ARMLoadStoreOptimizer.cpp
+++ b/llvm/lib/Target/ARM/ARMLoadStoreOptimizer.cpp
@@ -567,17 +567,20 @@ void ARMLoadStoreOpt::UpdateBaseRegUses(MachineBasicBlock &MBB,
 
   // End of block was reached.
   if (!MBB.succ_empty()) {
-    // FIXME: Because of a bug, live registers are sometimes missing from
-    // the successor blocks' live-in sets. This means we can't trust that
-    // information and *always* have to reset at the end of a block.
-    // See PR21029.
-    if (MBBI != MBB.end()) --MBBI;
-    BuildMI(MBB, MBBI, DL, TII->get(ARM::tSUBi8), Base)
-        .add(t1CondCodeOp(true))
-        .addReg(Base)
-        .addImm(WordOffset * 4)
-        .addImm(Pred)
-        .addReg(PredReg);
+    bool BaseIsLiveInSuccessor = false;
+    for (MachineBasicBlock *Succ : MBB.successors()) {
+      if (Succ->isLiveIn(Base)) {
+        if (MBBI != MBB.end())
+          --MBBI;
+        BuildMI(MBB, MBBI, DL, TII->get(ARM::tSUBi8), Base)
+            .add(t1CondCodeOp(true))
+            .addReg(Base)
+            .addImm(WordOffset * 4)
+            .addImm(Pred)
+            .addReg(PredReg);
+        return;
+      }
+    }
   }
 }
 



More information about the llvm-commits mailing list