diff options
author | Bill Wendling <isanbard@gmail.com> | 2008-05-26 05:18:34 +0000 |
---|---|---|
committer | Bill Wendling <isanbard@gmail.com> | 2008-05-26 05:18:34 +0000 |
commit | c737e4639a9502996a531c8c37ecb30841997dbb (patch) | |
tree | 05f2620ff5c7fe0172618fcf9570709f7c947919 /clang/lib/CodeGen/CodeGenModule.cpp | |
parent | be993358a742ad2b10f63a04da5c2844e3d9598d (diff) | |
download | bcm5719-llvm-c737e4639a9502996a531c8c37ecb30841997dbb.tar.gz bcm5719-llvm-c737e4639a9502996a531c8c37ecb30841997dbb.zip |
A problem that's exposed when machine LICM is enabled. Consider this code:
LBB1_3: # bb
...
xorl %ebp, %ebp
subl (%ebx), %ebp
...
incl %ecx
cmpl %edi, %ecx
jl LBB1_3 # bb
Whe using machine LICM, LLVM converts it into:
xorl %esi, %esi
LBB1_3: # bb
...
movl %esi, %ebp
subl (%ebx), %ebp
...
incl %ecx
cmpl %edi, %ecx
jl LBB1_3 # bb
Two address conversion inserts the copy instruction. However, it's cheaper to
rematerialize it, and remat helps reduce register pressure.
llvm-svn: 51562
Diffstat (limited to 'clang/lib/CodeGen/CodeGenModule.cpp')
0 files changed, 0 insertions, 0 deletions