[llvm] f41994f - GlobalISel: Make it clearer that regbank/class are mutually exclusive

Matt Arsenault via llvm-commits llvm-commits at lists.llvm.org
Mon Jun 8 07:16:07 PDT 2020


Author: Matt Arsenault
Date: 2020-06-08T10:15:53-04:00
New Revision: f41994f85bf620be320339bd3f51f2f5fd200e8c

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

LOG: GlobalISel: Make it clearer that regbank/class are mutually exclusive

Added: 
    

Modified: 
    llvm/lib/CodeGen/GlobalISel/CSEInfo.cpp

Removed: 
    


################################################################################
diff  --git a/llvm/lib/CodeGen/GlobalISel/CSEInfo.cpp b/llvm/lib/CodeGen/GlobalISel/CSEInfo.cpp
index e258ffb5ae76..cd99bee08d0e 100644
--- a/llvm/lib/CodeGen/GlobalISel/CSEInfo.cpp
+++ b/llvm/lib/CodeGen/GlobalISel/CSEInfo.cpp
@@ -375,12 +375,14 @@ const GISelInstProfileBuilder &GISelInstProfileBuilder::addNodeIDMachineOperand(
     LLT Ty = MRI.getType(Reg);
     if (Ty.isValid())
       addNodeIDRegType(Ty);
-    auto *RB = MRI.getRegBankOrNull(Reg);
-    if (RB)
-      addNodeIDRegType(RB);
-    auto *RC = MRI.getRegClassOrNull(Reg);
-    if (RC)
-      addNodeIDRegType(RC);
+
+    if (const RegClassOrRegBank &RCOrRB = MRI.getRegClassOrRegBank(Reg)) {
+      if (const auto *RB = RCOrRB.dyn_cast<const RegisterBank *>())
+        addNodeIDRegType(RB);
+      else if (const auto *RC = RCOrRB.dyn_cast<const TargetRegisterClass *>())
+        addNodeIDRegType(RC);
+    }
+
     assert(!MO.isImplicit() && "Unhandled case");
   } else if (MO.isImm())
     ID.AddInteger(MO.getImm());


        


More information about the llvm-commits mailing list