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

Reply via email to