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 | 48f7f237ea5224c44e9c2782836fb7b60d8b5db1 (patch) | |
tree | d7cd0d8f2c3c13b53745d1e9361bcdb1610ca555 /lib/Transforms/Utils/LCSSA.cpp | |
parent | 505242f9b628a4a9b2dc53346b6f1c43670f44a7 (diff) |
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51562 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Transforms/Utils/LCSSA.cpp')
0 files changed, 0 insertions, 0 deletions