Skip to content
  • Jakob Stoklund Olesen's avatar
    Merge into undefined lanes under -new-coalescer. · 0bb3dd78
    Jakob Stoklund Olesen authored
    Add LIS::pruneValue() and extendToIndices(). These two functions are
    used by the register coalescer when merging two live ranges requires
    more than a trivial value mapping as supported by LiveInterval::join().
    
    The pruneValue() function can remove the part of a value number that is
    going to conflict in join(). Afterwards, extendToIndices can restore the
    live range, using any new dominating value numbers and updating the SSA
    form.
    
    Use this complex value mapping to support merging a register into a
    vector lane that has a conflicting value, but the clobbered lane is
    undef.
    
    llvm-svn: 164074
    0bb3dd78
Loading