[llvm] 243632c - LiveRegUnits: Cleanup isReg checks

Matt Arsenault via llvm-commits llvm-commits at lists.llvm.org
Tue Sep 13 05:20:02 PDT 2022


Author: Matt Arsenault
Date: 2022-09-13T08:19:53-04:00
New Revision: 243632c63eb9f3e2e746cfb88e7b05a50b5edd4d

URL: https://github.com/llvm/llvm-project/commit/243632c63eb9f3e2e746cfb88e7b05a50b5edd4d
DIFF: https://github.com/llvm/llvm-project/commit/243632c63eb9f3e2e746cfb88e7b05a50b5edd4d.diff

LOG: LiveRegUnits: Cleanup isReg checks

This is the common case and should be checked first. Provides a very
marginal compile time improvement on the example I'm looking at.

Added: 
    

Modified: 
    llvm/lib/CodeGen/LiveRegUnits.cpp

Removed: 
    


################################################################################
diff  --git a/llvm/lib/CodeGen/LiveRegUnits.cpp b/llvm/lib/CodeGen/LiveRegUnits.cpp
index b913e5543729..0b20e917e036 100644
--- a/llvm/lib/CodeGen/LiveRegUnits.cpp
+++ b/llvm/lib/CodeGen/LiveRegUnits.cpp
@@ -40,13 +40,16 @@ void LiveRegUnits::addRegsInMask(const uint32_t *RegMask) {
 void LiveRegUnits::stepBackward(const MachineInstr &MI) {
   // Remove defined registers and regmask kills from the set.
   for (const MachineOperand &MOP : MI.operands()) {
+    if (MOP.isReg()) {
+      if (MOP.isDef() && MOP.getReg().isPhysical())
+        removeReg(MOP.getReg());
+      continue;
+    }
+
     if (MOP.isRegMask()) {
       removeRegsNotPreserved(MOP.getRegMask());
       continue;
     }
-
-    if (MOP.isReg() && MOP.isDef() && MOP.getReg().isPhysical())
-      removeReg(MOP.getReg());
   }
 
   // Add uses to the set.
@@ -54,7 +57,7 @@ void LiveRegUnits::stepBackward(const MachineInstr &MI) {
     if (!MOP.isReg() || !MOP.readsReg())
       continue;
 
-    if (MOP.getReg() && MOP.getReg().isPhysical())
+    if (MOP.getReg().isPhysical())
       addReg(MOP.getReg());
   }
 }


        


More information about the llvm-commits mailing list