[llvm] 44f30c8 - [SandboxIR][NFC] Use Tracker.emplaceIfTracking()

Vasileios Porpodas via llvm-commits llvm-commits at lists.llvm.org
Fri Aug 9 16:05:22 PDT 2024


Author: Vasileios Porpodas
Date: 2024-08-09T16:04:56-07:00
New Revision: 44f30c80195d4817bc9fdefa1759372769b663e2

URL: https://github.com/llvm/llvm-project/commit/44f30c80195d4817bc9fdefa1759372769b663e2
DIFF: https://github.com/llvm/llvm-project/commit/44f30c80195d4817bc9fdefa1759372769b663e2.diff

LOG: [SandboxIR][NFC] Use Tracker.emplaceIfTracking()

This patch replaces some of the remaining uses of Tracker::track() to
Tracker::emplaceIfTracking().

Added: 
    

Modified: 
    llvm/include/llvm/SandboxIR/Tracker.h
    llvm/lib/SandboxIR/SandboxIR.cpp
    llvm/lib/SandboxIR/Tracker.cpp

Removed: 
    


################################################################################
diff  --git a/llvm/include/llvm/SandboxIR/Tracker.h b/llvm/include/llvm/SandboxIR/Tracker.h
index dea09f547b0be4..9c9ce89ba87252 100644
--- a/llvm/include/llvm/SandboxIR/Tracker.h
+++ b/llvm/include/llvm/SandboxIR/Tracker.h
@@ -97,7 +97,7 @@ class UseSet : public IRChangeBase {
 };
 
 class PHISetIncoming : public IRChangeBase {
-  PHINode Φ
+  PHINode *PHI;
   unsigned Idx;
   PointerUnion<Value *, BasicBlock *> OrigValueOrBB;
 
@@ -106,7 +106,7 @@ class PHISetIncoming : public IRChangeBase {
     Value,
     Block,
   };
-  PHISetIncoming(PHINode &PHI, unsigned Idx, What What);
+  PHISetIncoming(PHINode *PHI, unsigned Idx, What What);
   void revert(Tracker &Tracker) final;
   void accept() final {}
 #ifndef NDEBUG
@@ -116,13 +116,13 @@ class PHISetIncoming : public IRChangeBase {
 };
 
 class PHIRemoveIncoming : public IRChangeBase {
-  PHINode &PHI;
+  PHINode *PHI;
   unsigned RemovedIdx;
   Value *RemovedV;
   BasicBlock *RemovedBB;
 
 public:
-  PHIRemoveIncoming(PHINode &PHI, unsigned RemovedIdx);
+  PHIRemoveIncoming(PHINode *PHI, unsigned RemovedIdx);
   void revert(Tracker &Tracker) final;
   void accept() final {}
 #ifndef NDEBUG
@@ -132,11 +132,11 @@ class PHIRemoveIncoming : public IRChangeBase {
 };
 
 class PHIAddIncoming : public IRChangeBase {
-  PHINode &PHI;
+  PHINode *PHI;
   unsigned Idx;
 
 public:
-  PHIAddIncoming(PHINode &PHI);
+  PHIAddIncoming(PHINode *PHI);
   void revert(Tracker &Tracker) final;
   void accept() final {}
 #ifndef NDEBUG

diff  --git a/llvm/lib/SandboxIR/SandboxIR.cpp b/llvm/lib/SandboxIR/SandboxIR.cpp
index f810a934614771..fd74e7f5eaf62e 100644
--- a/llvm/lib/SandboxIR/SandboxIR.cpp
+++ b/llvm/lib/SandboxIR/SandboxIR.cpp
@@ -1125,9 +1125,8 @@ Value *PHINode::getIncomingValue(unsigned Idx) const {
 }
 void PHINode::setIncomingValue(unsigned Idx, Value *V) {
   auto &Tracker = Ctx.getTracker();
-  if (Tracker.isTracking())
-    Tracker.track(std::make_unique<PHISetIncoming>(
-        *this, Idx, PHISetIncoming::What::Value));
+  Tracker.emplaceIfTracking<PHISetIncoming>(this, Idx,
+                                            PHISetIncoming::What::Value);
 
   cast<llvm::PHINode>(Val)->setIncomingValue(Idx, V->Val);
 }
@@ -1142,24 +1141,21 @@ BasicBlock *PHINode::getIncomingBlock(const Use &U) const {
 }
 void PHINode::setIncomingBlock(unsigned Idx, BasicBlock *BB) {
   auto &Tracker = Ctx.getTracker();
-  if (Tracker.isTracking())
-    Tracker.track(std::make_unique<PHISetIncoming>(
-        *this, Idx, PHISetIncoming::What::Block));
+  Tracker.emplaceIfTracking<PHISetIncoming>(this, Idx,
+                                            PHISetIncoming::What::Block);
   cast<llvm::PHINode>(Val)->setIncomingBlock(Idx,
                                              cast<llvm::BasicBlock>(BB->Val));
 }
 void PHINode::addIncoming(Value *V, BasicBlock *BB) {
   auto &Tracker = Ctx.getTracker();
-  if (Tracker.isTracking())
-    Tracker.track(std::make_unique<PHIAddIncoming>(*this));
+  Tracker.emplaceIfTracking<PHIAddIncoming>(this);
 
   cast<llvm::PHINode>(Val)->addIncoming(V->Val,
                                         cast<llvm::BasicBlock>(BB->Val));
 }
 Value *PHINode::removeIncomingValue(unsigned Idx) {
   auto &Tracker = Ctx.getTracker();
-  if (Tracker.isTracking())
-    Tracker.track(std::make_unique<PHIRemoveIncoming>(*this, Idx));
+  Tracker.emplaceIfTracking<PHIRemoveIncoming>(this, Idx);
   llvm::Value *LLVMV =
       cast<llvm::PHINode>(Val)->removeIncomingValue(Idx,
                                                     /*DeletePHIIfEmpty=*/false);
@@ -1167,9 +1163,7 @@ Value *PHINode::removeIncomingValue(unsigned Idx) {
 }
 Value *PHINode::removeIncomingValue(BasicBlock *BB) {
   auto &Tracker = Ctx.getTracker();
-  if (Tracker.isTracking())
-    Tracker.track(
-        std::make_unique<PHIRemoveIncoming>(*this, getBasicBlockIndex(BB)));
+  Tracker.emplaceIfTracking<PHIRemoveIncoming>(this, getBasicBlockIndex(BB));
 
   auto *LLVMBB = cast<llvm::BasicBlock>(BB->Val);
   llvm::Value *LLVMV =

diff  --git a/llvm/lib/SandboxIR/Tracker.cpp b/llvm/lib/SandboxIR/Tracker.cpp
index 44fe0b7a212e03..23f4125dba026b 100644
--- a/llvm/lib/SandboxIR/Tracker.cpp
+++ b/llvm/lib/SandboxIR/Tracker.cpp
@@ -27,23 +27,23 @@ void UseSwap::dump() const {
 }
 #endif // NDEBUG
 
-PHISetIncoming::PHISetIncoming(PHINode &PHI, unsigned Idx, What What)
+PHISetIncoming::PHISetIncoming(PHINode *PHI, unsigned Idx, What What)
     : PHI(PHI), Idx(Idx) {
   switch (What) {
   case What::Value:
-    OrigValueOrBB = PHI.getIncomingValue(Idx);
+    OrigValueOrBB = PHI->getIncomingValue(Idx);
     break;
   case What::Block:
-    OrigValueOrBB = PHI.getIncomingBlock(Idx);
+    OrigValueOrBB = PHI->getIncomingBlock(Idx);
     break;
   }
 }
 
 void PHISetIncoming::revert(Tracker &Tracker) {
   if (auto *V = OrigValueOrBB.dyn_cast<Value *>())
-    PHI.setIncomingValue(Idx, V);
+    PHI->setIncomingValue(Idx, V);
   else
-    PHI.setIncomingBlock(Idx, OrigValueOrBB.get<BasicBlock *>());
+    PHI->setIncomingBlock(Idx, OrigValueOrBB.get<BasicBlock *>());
 }
 
 #ifndef NDEBUG
@@ -53,32 +53,33 @@ void PHISetIncoming::dump() const {
 }
 #endif // NDEBUG
 
-PHIRemoveIncoming::PHIRemoveIncoming(PHINode &PHI, unsigned RemovedIdx)
+PHIRemoveIncoming::PHIRemoveIncoming(PHINode *PHI, unsigned RemovedIdx)
     : PHI(PHI), RemovedIdx(RemovedIdx) {
-  RemovedV = PHI.getIncomingValue(RemovedIdx);
-  RemovedBB = PHI.getIncomingBlock(RemovedIdx);
+  RemovedV = PHI->getIncomingValue(RemovedIdx);
+  RemovedBB = PHI->getIncomingBlock(RemovedIdx);
 }
 
 void PHIRemoveIncoming::revert(Tracker &Tracker) {
   // Special case: if the PHI is now empty, as we don't need to care about the
   // order of the incoming values.
-  unsigned NumIncoming = PHI.getNumIncomingValues();
+  unsigned NumIncoming = PHI->getNumIncomingValues();
   if (NumIncoming == 0) {
-    PHI.addIncoming(RemovedV, RemovedBB);
+    PHI->addIncoming(RemovedV, RemovedBB);
     return;
   }
   // Shift all incoming values by one starting from the end until `Idx`.
   // Start by adding a copy of the last incoming values.
   unsigned LastIdx = NumIncoming - 1;
-  PHI.addIncoming(PHI.getIncomingValue(LastIdx), PHI.getIncomingBlock(LastIdx));
+  PHI->addIncoming(PHI->getIncomingValue(LastIdx),
+                   PHI->getIncomingBlock(LastIdx));
   for (unsigned Idx = LastIdx; Idx > RemovedIdx; --Idx) {
-    auto *PrevV = PHI.getIncomingValue(Idx - 1);
-    auto *PrevBB = PHI.getIncomingBlock(Idx - 1);
-    PHI.setIncomingValue(Idx, PrevV);
-    PHI.setIncomingBlock(Idx, PrevBB);
+    auto *PrevV = PHI->getIncomingValue(Idx - 1);
+    auto *PrevBB = PHI->getIncomingBlock(Idx - 1);
+    PHI->setIncomingValue(Idx, PrevV);
+    PHI->setIncomingBlock(Idx, PrevBB);
   }
-  PHI.setIncomingValue(RemovedIdx, RemovedV);
-  PHI.setIncomingBlock(RemovedIdx, RemovedBB);
+  PHI->setIncomingValue(RemovedIdx, RemovedV);
+  PHI->setIncomingBlock(RemovedIdx, RemovedBB);
 }
 
 #ifndef NDEBUG
@@ -88,10 +89,10 @@ void PHIRemoveIncoming::dump() const {
 }
 #endif // NDEBUG
 
-PHIAddIncoming::PHIAddIncoming(PHINode &PHI)
-    : PHI(PHI), Idx(PHI.getNumIncomingValues()) {}
+PHIAddIncoming::PHIAddIncoming(PHINode *PHI)
+    : PHI(PHI), Idx(PHI->getNumIncomingValues()) {}
 
-void PHIAddIncoming::revert(Tracker &Tracker) { PHI.removeIncomingValue(Idx); }
+void PHIAddIncoming::revert(Tracker &Tracker) { PHI->removeIncomingValue(Idx); }
 
 #ifndef NDEBUG
 void PHIAddIncoming::dump() const {


        


More information about the llvm-commits mailing list