diff options
author | Evan Cheng <evan.cheng@apple.com> | 2012-05-03 01:45:13 +0000 |
---|---|---|
committer | Evan Cheng <evan.cheng@apple.com> | 2012-05-03 01:45:13 +0000 |
commit | b64e7b778b54cb04cba4f069c7196a1c7b56b35f (patch) | |
tree | 2693f09a5d55f5f8298b0c7bfa64ff6c29551def /clang/test/Analysis/malloc.c | |
parent | 26ebbb748b168bbeb01958a001f26c7869369a78 (diff) | |
download | bcm5719-llvm-b64e7b778b54cb04cba4f069c7196a1c7b56b35f.tar.gz bcm5719-llvm-b64e7b778b54cb04cba4f069c7196a1c7b56b35f.zip |
Fix two-address pass's aggressive instruction commuting heuristics. It's meant
to catch cases like:
%reg1024<def> = MOV r1
%reg1025<def> = MOV r0
%reg1026<def> = ADD %reg1024, %reg1025
r0 = MOV %reg1026
By commuting ADD, it let coalescer eliminate all of the copies. However, there
was a bug in the heuristics where it ended up commuting the ADD in:
%reg1024<def> = MOV r0
%reg1025<def> = MOV 0
%reg1026<def> = ADD %reg1024, %reg1025
r0 = MOV %reg1026
That did no benefit but rather ensure the last MOV would not be coalesced.
rdar://11355268
llvm-svn: 156048
Diffstat (limited to 'clang/test/Analysis/malloc.c')
0 files changed, 0 insertions, 0 deletions