------- Comment #7 from orion at cora dot nwra dot com 2006-04-03 21:13 -------
Looks like adding -save-temps to the flags breaks the configure check for
-fPIC, so the code be built with -save-temps that worked also did not have
-fPIC (perhaps that is a clue). Trick was to remove -pipe when using
-save-temps to avoid a gcc warning that was confusing configure, now I can get
.i and .s from the failed 4.1.0 compile.
Just is case there is something obvious, here are asm snippets of the loop in
question from
4.0.2:
.loc 1 2264 0
movl -2068(%ebp), %ecx #,
testl %ecx, %ecx #
je .L201 #,
movl 12(%ebp), %esi # fm, ivtmp.708
xorl %edi, %edi # u.1013
.LVL48:
movl 3052(%esi), %edx # <variable>.layout,
movl %edx, -2088(%ebp) #,
.L200:
.loc 1 2266 0
movl -2088(%ebp), %edx #,
movl 20(%edx,%edi,4), %edx # <variable>.u.chunk.dim,
movl %edx, 2524(%esi) #, <variable>.chunk_dim
movl $0, 2528(%esi) #, <variable>.chunk_dim
.loc 1 2269 0
movl -2028(%ebp), %ecx # dataset,
movl 52(%ecx), %eax # <variable>.shared, <variable>.shared
movl 84(%eax,%edi,4), %edx # <variable>.layout.u.chunk.dim,
xorl %ecx, %ecx #
movl %edx, -2024(%ebp) #, D.12413
movl %ecx, -2020(%ebp) #, D.12413
addl 28(%esi), %edx # <variable>.f_dims,
adcl 32(%esi), %ecx # <variable>.f_dims,
movl %edx, -2112(%ebp) #,
movl %ecx, -2108(%ebp) #,
addl $-1, -2112(%ebp) #,
adcl $-1, -2108(%ebp) #,
movl -2024(%ebp), %eax # D.12413,
movl -2020(%ebp), %edx # D.12413,
movl %eax, 8(%esp) #,
movl %edx, 12(%esp) #,
movl -2112(%ebp), %edx #,
movl -2108(%ebp), %ecx #,
movl %edx, (%esp) #,
movl %ecx, 4(%esp) #,
call [EMAIL PROTECTED] #
movl %eax, 2260(%esi) # tmp302, <variable>.chunks
movl %edx, 2264(%esi) #, <variable>.chunks
.loc 1 2264 0
addl $1, %edi #, u.1013
addl $8, %esi #, ivtmp.708
cmpl %edi, -1996(%ebp) # u.1013, f_ndims
jne .L200 #,
.L201:
.loc 1 2273 0
4.1.0:
.loc 1 2264 0
movl -1952(%ebp), %edx # f_ndims,
testl %edx, %edx #
je .L241 #,
.loc 1 2260 0
movl $0, -1948(%ebp) #, u
.LVL83:
movl 12(%ebp), %eax # fm,
movl 3052(%eax), %eax # <variable>.layout,
movl %eax, -2008(%ebp) #,
.L246:
.loc 1 2266 0
movl -1948(%ebp), %edx # u,
movl 12(%ebp), %ecx # fm,
movl 20(%ecx,%edx,4), %esi # <variable>.u.chunk.dim,
movl %esi, 2524(%ecx,%edx,8) #, <variable>.chunk_dim
movl $0, 2528(%ecx,%edx,8) #, <variable>.chunk_dim
.loc 1 2269 0
movl -1980(%ebp), %edi # dataset,
movl 52(%edi), %eax # <variable>.shared, <variable>.shared
movl -1948(%ebp), %ecx # u,
movl 84(%eax,%ecx,4), %edx # <variable>.layout.u.chunk.dim,
xorl %ecx, %ecx #
movl %edx, -2064(%ebp) #, D.12819
movl %ecx, -2060(%ebp) #, D.12819
movl %edx, %eax #, tmp302
movl %ecx, %edx #,
movl -1948(%ebp), %esi # u,
movl 12(%ebp), %edi # fm,
addl 28(%edi,%esi,8), %eax # <variable>.f_dims, tmp302
adcl 32(%edi,%esi,8), %edx # <variable>.f_dims,
addl $-1, %eax #, tmp302
adcl $-1, %edx #,
movl -2064(%ebp), %esi # D.12819,
movl -2060(%ebp), %edi # D.12819,
movl %esi, 8(%esp) #,
movl %edi, 12(%esp) #,
movl %eax, (%esp) # tmp302,
movl %edx, 4(%esp) #,
call [EMAIL PROTECTED] #
movl -1948(%ebp), %edi # u,
movl 12(%ebp), %ecx # fm,
movl %eax, 2260(%ecx,%edi,8) # tmp306, <variable>.chunks
movl %edx, 2264(%ecx,%edi,8) #, <variable>.chunks
.loc 1 2264 0
addl $1, %edi #,
movl %edi, -1948(%ebp) #, u
cmpl %edi, -1952(%ebp) #, f_ndims
jne .L246 #,
.LVL84:
.L241:
.loc 1 2273 0
I'll work on getting a self-contained testcase, but I'm afraid it will take a
lot of work. It's a big library....
--
orion at cora dot nwra dot com changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |orion at cora dot nwra dot
| |com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26968