[PATCH] D103408: DetectDeadLanes: Remove assert for subregister defs

Ahsan Saghir via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon May 31 06:58:19 PDT 2021


saghir created this revision.
Herald added subscribers: steven.zhang, hiraditya.
saghir requested review of this revision.
Herald added a project: LLVM.
Herald added a subscriber: llvm-commits.

Asserts for subregister defs were originally added by
8f429ead58999e584d6857ebc334564f88489de0. When subregister
liveness tracking is enabled for PowerPC targets, we hit
these asserts for certain code sequences.
This patch reverts these asserts.


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D103408

Files:
  llvm/lib/CodeGen/DetectDeadLanes.cpp


Index: llvm/lib/CodeGen/DetectDeadLanes.cpp
===================================================================
--- llvm/lib/CodeGen/DetectDeadLanes.cpp
+++ llvm/lib/CodeGen/DetectDeadLanes.cpp
@@ -340,8 +340,8 @@
     llvm_unreachable("function must be called with COPY-like instruction");
   }
 
-  assert(Def.getSubReg() == 0 &&
-         "Should not have subregister defs in machine SSA phase");
+  unsigned SubIdx = Def.getSubReg();
+  DefinedLanes = TRI->composeSubRegIndexLaneMask(SubIdx, DefinedLanes);
   DefinedLanes &= MRI->getMaxLaneMaskForVReg(Def.getReg());
   return DefinedLanes;
 }
@@ -406,9 +406,9 @@
   if (DefMI.isImplicitDef() || Def.isDead())
     return LaneBitmask::getNone();
 
-  assert(Def.getSubReg() == 0 &&
-         "Should not have subregister defs in machine SSA phase");
-  return MRI->getMaxLaneMaskForVReg(Reg);
+  unsigned SubReg = Def.getSubReg();
+  return SubReg != 0 ? TRI->getSubRegIndexLaneMask(SubReg)
+                     : MRI->getMaxLaneMaskForVReg(Reg);
 }
 
 LaneBitmask DetectDeadLanes::determineInitialUsedLanes(unsigned Reg) {


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D103408.348795.patch
Type: text/x-patch
Size: 1080 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20210531/7897bd7a/attachment.bin>


More information about the llvm-commits mailing list