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