aboutsummaryrefslogtreecommitdiffstats
path: root/lib/Transforms/Instrumentation/RSProfiling.cpp
diff options
context:
space:
mode:
authorEvan Cheng <evan.cheng@apple.com>2007-10-26 01:56:11 +0000
committerEvan Cheng <evan.cheng@apple.com>2007-10-26 01:56:11 +0000
commit27a820abeb2f68de214e469e14a5eca654b9e914 (patch)
tree2aa0e737c3f01cc1f447def3d95d9ec7833f99bc /lib/Transforms/Instrumentation/RSProfiling.cpp
parentad65456a28606f43bb19e4d8fab1e66ee5603d15 (diff)
downloadexternal_llvm-27a820abeb2f68de214e469e14a5eca654b9e914.zip
external_llvm-27a820abeb2f68de214e469e14a5eca654b9e914.tar.gz
external_llvm-27a820abeb2f68de214e469e14a5eca654b9e914.tar.bz2
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 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43375 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Transforms/Instrumentation/RSProfiling.cpp')
0 files changed, 0 insertions, 0 deletions