Skip to content
  • Jakob Stoklund Olesen's avatar
    Gracefully handle invalid live ranges. Fix PR9831. · eaa6ed1a
    Jakob Stoklund Olesen authored
    Register coalescing can sometimes create live ranges that end in the middle of a
    basic block without any killing instruction. When SplitKit detects this, it will
    repair the live range by shrinking it to its uses.
    
    Live range splitting also needs to know about this. When the range shrinks so
    much that it becomes allocatable, live range splitting fails because it can't
    find a good split point. It is paranoid about making progress, so an allocatable
    range is considered an error.
    
    The coalescer should really not be creating these bad live ranges. They appear
    when coalescing dead copies.
    
    llvm-svn: 130787
    eaa6ed1a
Loading