Skip to content
  • Chris Lattner's avatar
    Big change to compute logical value numbers for each LiveRange added to an · 7efcdb7c
    Chris Lattner authored
    Interval.  This generalizes the isDefinedOnce mechanism that we used before
    to help us coallesce ranges that overlap.  As part of this, every logical
    range with a different value is assigned a different number in the interval.
    For example, for code that looks like this:
    
    0  X = ...
    4  X += ...
      ...
    N    = X
    
    We now generate a live interval that contains two ranges: [2,6:0),[6,?:1)
    reflecting the fact that there are two different values in the range at
    different positions in the code.
    
    Currently we are not using this information at all, so this just slows down
    liveintervals.  In the future, this will change.
    
    Note that this change also substantially refactors the joinIntervalsInMachineBB
    method to merge the cases for virt-virt and phys-virt joining into a single
    case, adds comments, and makes the code a bit easier to follow.
    
    llvm-svn: 15154
    7efcdb7c
Loading