aboutsummaryrefslogtreecommitdiff
path: root/lib/CodeGen/RegAllocLinearScan.cpp
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2007-03-20 06:08:29 +0000
committerChris Lattner <sabre@nondot.org>2007-03-20 06:08:29 +0000
commita16b7cb1d3a482a28bc8f73433f0034d8d8673d7 (patch)
treeee04d06d7364536e681adcb16cbe38a8f146bc60 /lib/CodeGen/RegAllocLinearScan.cpp
parentec13dd5cc984da49993f07468f2db1a8aba723d2 (diff)
Two changes:
1) codegen a shift of a register as a shift, not an LEA. 2) teach the RA to convert a shift to an LEA instruction if it wants something in three-address form. This gives us asm diffs like: - leal (,%eax,4), %eax + shll $2, %eax which is faster on some processors and smaller on all of them. and, more interestingly: - movl 24(%esi), %eax - leal (,%eax,4), %edi + movl 24(%esi), %edi + shll $2, %edi Without #2, #1 was a significant pessimization in some cases. This implements CodeGen/X86/shift-codegen.ll git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35204 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/CodeGen/RegAllocLinearScan.cpp')
0 files changed, 0 insertions, 0 deletions