aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Transforms/Utils/CloneModule.cpp
diff options
context:
space:
mode:
authorDan Gohman <gohman@apple.com>2010-06-21 22:17:20 +0000
committerDan Gohman <gohman@apple.com>2010-06-21 22:17:20 +0000
commit3c1b3c61e95a35f4d35321f1d2bcd689c3d129b1 (patch)
treece0ee0c847d090f7f9651f785e9a9e8db98380a7 /llvm/lib/Transforms/Utils/CloneModule.cpp
parent9adb2e646c4e80b2a3a5b9afd55a0a25a85c4db7 (diff)
downloadllvm-3c1b3c61e95a35f4d35321f1d2bcd689c3d129b1.zip
llvm-3c1b3c61e95a35f4d35321f1d2bcd689c3d129b1.tar.gz
llvm-3c1b3c61e95a35f4d35321f1d2bcd689c3d129b1.tar.bz2
Teach two-address lowering how to unfold a load to open up commuting
opportunities. For example, this lets it emit this: movq (%rax), %rcx addq %rdx, %rcx instead of this: movq %rdx, %rcx addq (%rax), %rcx in the case where %rdx has subsequent uses. It's the same number of instructions, and usually the same encoding size on x86, but it appears faster, and in general, it may allow better scheduling for the load. llvm-svn: 106493
Diffstat (limited to 'llvm/lib/Transforms/Utils/CloneModule.cpp')
0 files changed, 0 insertions, 0 deletions