Skip to content
  • Jakob Stoklund Olesen's avatar
    Reverse order of RS_Split live ranges under -compact-regions. · cad845f4
    Jakob Stoklund Olesen authored
    There are two conflicting strategies in play:
    
    - Under high register pressure, we want to assign large live ranges
      first. Smaller live ranges are easier to place afterwards.
    
    - Live range splitting is guided by interference, so splitting should be
      deferred until interference is as realistic as possible.
    
    With the recent changes to the live range stages, and with compact
    regions enabled, it is less traumatic to split a live range too early.
    If some of the split products were too big, they can often be split
    again.
    
    By reversing the RS_Split order, we get this queue order:
    
    1. Normal live ranges, large to small.
    2. RS_Split live ranges, large to small.
    
    The large-to-small order improves RAGreedy's puzzle solving skills under
    high register pressure. It may cause a bit more iterated splitting, but
    we handle that better now.
    
    With this change, -compact-regions is mostly an improvement on SPEC.
    
    llvm-svn: 136388
    cad845f4
Loading