Skip to content
  • Jakob Stoklund Olesen's avatar
    Preserve 2-addr constraints in ConnectedVNInfoEqClasses. · cef9a618
    Jakob Stoklund Olesen authored
    When a live range splits into multiple connected components, we would
    arbitrarily assign <undef> uses to component 0. This is wrong when the
    use is tied to a def that gets assigned to a different component:
    
      %vreg69<def> = ADD8ri %vreg68<undef>, 1
    
    The use and def must get the same virtual register.
    
    Fix this by assigning <undef> uses to the same component as the value
    defined by the instruction, if any:
    
      %vreg69<def> = ADD8ri %vreg69<undef>, 1
    
    This fixes PR13402. The PR has a test case which I am not including
    because it is unlikely to keep exposing this behavior in the future.
    
    llvm-svn: 160739
    cef9a618
Loading