diff options
author | Evan Cheng <evan.cheng@apple.com> | 2007-11-09 01:32:10 +0000 |
---|---|---|
committer | Evan Cheng <evan.cheng@apple.com> | 2007-11-09 01:32:10 +0000 |
commit | 797d56ff17126abcf113a7dbaa02159d9a5a3b06 (patch) | |
tree | 6c40d111ace6416414baab7f71ba76f4478d1786 /llvm/lib/Transforms/Utils/CloneModule.cpp | |
parent | f14006f4d692ae78ae448ca21e6282c9b75d42f5 (diff) | |
download | llvm-797d56ff17126abcf113a7dbaa02159d9a5a3b06.zip llvm-797d56ff17126abcf113a7dbaa02159d9a5a3b06.tar.gz llvm-797d56ff17126abcf113a7dbaa02159d9a5a3b06.tar.bz2 |
Much improved pic jumptable codegen:
Then:
call "L1$pb"
"L1$pb":
popl %eax
...
LBB1_1: # entry
imull $4, %ecx, %ecx
leal LJTI1_0-"L1$pb"(%eax), %edx
addl LJTI1_0-"L1$pb"(%ecx,%eax), %edx
jmpl *%edx
.align 2
.set L1_0_set_3,LBB1_3-LJTI1_0
.set L1_0_set_2,LBB1_2-LJTI1_0
.set L1_0_set_5,LBB1_5-LJTI1_0
.set L1_0_set_4,LBB1_4-LJTI1_0
LJTI1_0:
.long L1_0_set_3
.long L1_0_set_2
Now:
call "L1$pb"
"L1$pb":
popl %eax
...
LBB1_1: # entry
addl LJTI1_0-"L1$pb"(%eax,%ecx,4), %eax
jmpl *%eax
.align 2
.set L1_0_set_3,LBB1_3-"L1$pb"
.set L1_0_set_2,LBB1_2-"L1$pb"
.set L1_0_set_5,LBB1_5-"L1$pb"
.set L1_0_set_4,LBB1_4-"L1$pb"
LJTI1_0:
.long L1_0_set_3
.long L1_0_set_2
llvm-svn: 43924
Diffstat (limited to 'llvm/lib/Transforms/Utils/CloneModule.cpp')
0 files changed, 0 insertions, 0 deletions