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 | e7f96c515efb92e477217ab97cf1a617901daf79 (patch) | |
tree | f8970821755ba559b08f7a9a347149bdc6b4d752 /lib/Target/PowerPC/PPC32ISelSimple.cpp | |
parent | 13b2f764c041e15af3d6033826deb9c7e669ca97 (diff) |
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
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19213 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/PowerPC/PPC32ISelSimple.cpp')
0 files changed, 0 insertions, 0 deletions