------- Comment #6 from sandra at codesourcery dot com 2009-08-24 22:36 -------
This bug appears to be fixed in mainline HEAD now. Here's an excerpt showing
the generated code for the inner loop in the example program now:
addiu $21,$28,%gp_rel(AA)
addiu $10,$28,%gp_rel(A)
addiu $20,$28,%gp_rel(BB)
addiu $9,$28,%gp_rel(B)
li $19,2044 # 0x7fc
li $18,10 # 0xa
move $2,$0
.L3:
addu $8,$10,$2
addu $3,$9,$2
lw $24,0($8)
addu $14,$21,$2
lw $8,0($3)
addu $3,$20,$2
addiu $2,$2,4
sw $24,0($14)
bne $2,$19,.L3
sw $8,0($3)
All 4 gp_rel address computations pulled outside the loop, and only 5 adds
inside. I'm not sure what fixed this, but it does seem fixed.
--
sandra at codesourcery dot com changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|UNCONFIRMED |RESOLVED
Resolution| |WORKSFORME
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36223