This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
stepanov on Darwin
- To: gcc at gcc dot gnu dot org
- Subject: stepanov on Darwin
- From: dalej at apple dot com
- Date: Fri, 1 Jun 2001 16:28:28 -0700
- Cc: reza at apple dot com, stuart at apple dot com
I thought there might be some interest in this, especially since it's
not doing well on another PPC target, according to David Edelsohn. The
first inner loop, test0, looks like:
L475:
slwi r27,r9,3
lfdx f1,r27,r28
addi r9,r9,1
fadd f13,f13,f1
bdnz L475
Tests 1-2 look like
L123:
mr r10,r11
addi r11,r11,8
cmpw cr0,r11,r26
lfd f7,0(r10)
fadd f13,f13,f7
bne+ cr0,L123
tests 3-12 look like
L160:
addi r7,r9,8
lfd f1,0(r9)
mr r9,r7
cmpw cr0,r9,r26
fadd f13,f13,f1
stw r7,96(r1) ; we Really need to get rid
of this
bne+ cr0,L160
Curious that the code is so different from what David Edelsohn saw. The
"abstraction penalty" is reported as 1.17-1.18, which is actually better
than it was under 2.95. But this is misleading, because 2.95 optimized
the first loop better (not perfectly, nobody is using lfdu optimally):
L84:
lfd f0,0(r9)
addi r9,r9,8
fadd f13,f13,f0
bdnz L84
This is a *bad* thing to do as far as computing the "abstraction
penalty" is concerned, which suggests the benchmark shouldn't be taken
too seriously. (Absolute times are inferior under gcc3.)