diff options
author | Evan Cheng <evan.cheng@apple.com> | 2007-10-26 01:56:11 +0000 |
---|---|---|
committer | Evan Cheng <evan.cheng@apple.com> | 2007-10-26 01:56:11 +0000 |
commit | 7f3d02471d04bef0062790c0b79151a9a6fe8266 (patch) | |
tree | 7cb5e4761033e60c238d53823d1e5a05c03d8a2a /llvm/lib/Transforms/Instrumentation/RSProfiling.cpp | |
parent | 1207cd6b1be6ccbe43a67877b4a28d4a7629b10d (diff) | |
download | bcm5719-llvm-7f3d02471d04bef0062790c0b79151a9a6fe8266.tar.gz bcm5719-llvm-7f3d02471d04bef0062790c0b79151a9a6fe8266.zip |
Loosen up iv reuse to allow reuse of the same stride but a larger type when truncating from the larger type to smaller type is free.
e.g.
Turns this loop:
LBB1_1: # entry.bb_crit_edge
xorl %ecx, %ecx
xorw %dx, %dx
movw %dx, %si
LBB1_2: # bb
movl L_X$non_lazy_ptr, %edi
movw %si, (%edi)
movl L_Y$non_lazy_ptr, %edi
movw %dx, (%edi)
addw $4, %dx
incw %si
incl %ecx
cmpl %eax, %ecx
jne LBB1_2 # bb
into
LBB1_1: # entry.bb_crit_edge
xorl %ecx, %ecx
xorw %dx, %dx
LBB1_2: # bb
movl L_X$non_lazy_ptr, %esi
movw %cx, (%esi)
movl L_Y$non_lazy_ptr, %esi
movw %dx, (%esi)
addw $4, %dx
incl %ecx
cmpl %eax, %ecx
jne LBB1_2 # bb
llvm-svn: 43375
Diffstat (limited to 'llvm/lib/Transforms/Instrumentation/RSProfiling.cpp')
0 files changed, 0 insertions, 0 deletions