[llvm-dev] liveness tracking of a register class with a single sub-register

Dvir Yitzchaki via llvm-dev llvm-dev at lists.llvm.org
Wed Apr 25 02:04:17 PDT 2018


Hi list.

I'm trying to enable sub-register liveness tracking for our target but I'm hitting the following assert on VirtRegRewriter::readsUndefSubreg:

  assert(SubRegIdx != 0 && LI.hasSubRanges());

The reason is that I have a register class of two bit predicates where only the low bit is allocatable so there's only a single sub-register.
Now, MachineRegisterInfo only enables sub-reg liveness tracking for a class if it has at least two distinct sub-registers,
so the live range cannot have sub-ranges in this case but instructions can read the single sub-reg nevertheless, which leads to this assertion failing.

Has anyone ran into this problem before or know of an in-tree target which has a similar construct?

Thanks,
Dvir
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20180425/5b33b1f1/attachment.html>


More information about the llvm-dev mailing list