This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

stepanov on Darwin


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.)


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]