aboutsummaryrefslogtreecommitdiff
path: root/lib/Target/ARM/ARMAsmBackend.cpp
diff options
context:
space:
mode:
authorEvan Cheng <evan.cheng@apple.com>2010-12-14 21:34:53 +0000
committerEvan Cheng <evan.cheng@apple.com>2010-12-14 21:34:53 +0000
commitbbc726d6240f1d8480b312832eba5f7dd914fa4d (patch)
tree8caa8c34390a993f938bf109dbe5805040f1afff /lib/Target/ARM/ARMAsmBackend.cpp
parent8d6d7d6e30f3c90f92c5a12522d1500ca92299bf (diff)
Fix a minor bug in two-address pass. It was missing a commute opportunity.
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 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121793 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/ARM/ARMAsmBackend.cpp')
0 files changed, 0 insertions, 0 deletions