Skip to content
  • Jakob Stoklund Olesen's avatar
    Remove an assertion to fix PR9872. · 89bd2ae5
    Jakob Stoklund Olesen authored
    It can happen that a live debug variable is the last use of a sub-register, and
    the register allocator will pick a larger register class for the virtual
    register.  If the allocated register doesn't support the sub-register index,
    just use %noreg for the debug variables instead of asserting.
    
    In PR9872, a debug variable ends up in the sub_8bit_hi part of a GR32_ABCD
    register. The register is split and one part is inflated to GR32 and assigned
    %ESI because there are no more normal uses of sub_8bit_hi.
    
    Since %ESI doesn't have that sub-register, substPhysReg asserted. Now it will
    simply insert a %noreg instead, and the debug variable will be marked
    unavailable in that range.
    
    We don't currently have a way of saying: !"value" is in bits 8-15 of %ESI, I
    don't know if DWARF even supports that.
    
    llvm-svn: 131073
    89bd2ae5
Loading