[llvm] [CodeGen] Register-coalescer remat fix subreg liveness (PR #165662)

Matt Arsenault via llvm-commits llvm-commits at lists.llvm.org
Mon Nov 3 20:19:33 PST 2025


================
@@ -1625,6 +1625,7 @@ bool RegisterCoalescer::reMaterializeDef(const CoalescerPair &CP,
           // dead def so that the interferences are properly modeled.
           if (!SR.liveAt(DefIndex))
             SR.createDeadDef(DefIndex, Alloc);
+          SR.LaneMask = DstMask & SR.LaneMask;
----------------
arsenm wrote:

I do not think you should be trying to mutate the LaneMask inside the loop, and only operations on the main range should modify the lane masks of the contained subranges. I think you need to do something outside of the loop, e.g. something like refineSubRanges 

https://github.com/llvm/llvm-project/pull/165662


More information about the llvm-commits mailing list