diff options
| author | Chris Lattner <sabre@nondot.org> | 2005-01-01 16:06:57 +0000 |
|---|---|---|
| committer | Chris Lattner <sabre@nondot.org> | 2005-01-01 16:06:57 +0000 |
| commit | 78394258ae4b90df47700ed8745447c0fb87322f (patch) | |
| tree | 62fa74a62bba848fa7c05a0c59305a9084ced9a6 /llvm/lib/Target/PowerPC/PPC32ISelSimple.cpp | |
| parent | 3215bb6049b63dee1cfb1246e230a8d0fa3172ff (diff) | |
| download | bcm5719-llvm-78394258ae4b90df47700ed8745447c0fb87322f.tar.gz bcm5719-llvm-78394258ae4b90df47700ed8745447c0fb87322f.zip | |
Substantially improve the code generated by non-folded setcc instructions.
In particular, instead of compiling this:
bool %test(int %A, int %B) {
%C = setlt int %A, %B
ret bool %C
}
to this:
test:
save %sp, -96, %sp
subcc %i0, %i1, %g0
bl .LBBtest_1 !
nop
ba .LBBtest_2 !
nop
.LBBtest_1: !
or %g0, 1, %i0
ba .LBBtest_3 !
nop
.LBBtest_2: !
or %g0, 0, %i0
ba .LBBtest_3 !
nop
.LBBtest_3: !
restore %g0, %g0, %g0
retl
nop
We now compile it to this:
test:
save %sp, -96, %sp
subcc %i0, %i1, %g0
or %g0, 1, %i0
bl .LBBtest_2 !
nop
.LBBtest_1: !
or %g0, %g0, %i0
.LBBtest_2: !
restore %g0, %g0, %g0
retl
nop
llvm-svn: 19213
Diffstat (limited to 'llvm/lib/Target/PowerPC/PPC32ISelSimple.cpp')
0 files changed, 0 insertions, 0 deletions

