Speed Impact experiment on GCJ
Andrew Pinski
pinskia@physics.uc.edu
Wed Feb 15 19:05:00 GMT 2006
>
> >>>>> "Andrew" == Andrew Haley <aph@redhat.com> writes:
>
> Andrew> For what it's worth, I was quite suprised that gcj didn't spot the
> Andrew> same opportunity. Maybe this is part of the value range propagation
> Andrew> optimizations that aren't yet in core gcc.
>
> Yeah, I'm surprised too.
> Maybe file it in bugzilla for later testing?
Huh? It does produce good code on the mainline
without a loop:
_ZN4Impl4pingEJiii:
.LFB3:
.L4:
imull %esi, %edx
movl $0, %eax
testl %edx, %edx
cmovg %edx, %eax
ret
-----
_ZN4Impl4pingEJiii:
.LFB3:
.L4:
pushl %ebp
.LCFI3:
xorl %edx, %edx
movl %esp, %ebp
.LCFI4:
movl 16(%ebp), %eax
imull 12(%ebp), %eax
testl %eax, %eax
setle %dl
subl $1, %edx
andl %edx, %eax
popl %ebp
ret
But not on the 4.1 branch (at least in 20060208):
_ZN4Impl4pingEii:
.LFB3:
imull %esi, %edx
xorl %eax, %eax
testl %edx, %edx
jle .L4
.p2align 4,,7
.L5:
.L6:
incl %eax
cmpl %eax, %edx
jne .L5
.L4:
ret
-- Pinski
More information about the Java
mailing list