Skip to content
  • Evan Cheng's avatar
    Fix a minor bug in two-address pass. It was missing a commute opportunity. · 19dc77ce
    Evan Cheng authored
    regB = move RCX
    regA = op regB, regC
    RAX  = move regA
    where both regB and regC are killed. If regB is constrainted to non-compatible
    physical registers but regC is not constrainted at all, then it's better to
    commute the instruction.
           movl    %edi, %eax
           shlq    $32, %rcx
           leaq    (%rcx,%rax), %rax
    =>
           movl    %edi, %eax
           shlq    $32, %rcx
           orq     %rcx, %rax
    rdar://8762995
    
    llvm-svn: 121793
    19dc77ce
Loading