------- Comment #3 from hjl dot tools at gmail dot com  2008-11-28 18:01 -------
Revision 142206 generates:

Reloads for insn # 49
Reload 0: reload_in (SI) = (reg:SI 0 ax) 
        reload_out (SI) = (reg:SI 1 dx [orig:62 D.2019 ] [62]) 
        GENERAL_REGS, RELOAD_OTHER (opnum = 0)
        reload_in_reg: (reg:SI 63 [ D.2018 ])
        reload_out_reg: (reg:SI 1 dx [orig:62 D.2019 ] [62]) 
        reload_reg_rtx: (reg:SI 1 dx [orig:62 D.2019 ] [62]) 
Reload 1: reload_in (SI) = (reg:SI 65 [ ivtmp.93 ])
        GENERAL_REGS, RELOAD_FOR_INPUT (opnum = 2), optional
        reload_in_reg: (reg:SI 65 [ ivtmp.93 ])

(insn 49 168 50 3 /tmp/foo.f90:6 (parallel [
            (set (reg:SI 1 dx [orig:62 D.2019 ] [62])
                (mult:SI (reg:SI 1 dx [orig:62 D.2019 ] [62])
                    (mem/c:SI (plus:SI (reg/f:SI 6 bp)
                            (const_int -48 [0xffffffffffffffd0])) [0 %sfp+-24
S4 A32])))
            (clobber (reg:CC 17 flags))
        ]) 333 {*mulsi3_1} (nil))


407         movl    [EMAIL PROTECTED], %edx
408         movl    %gs:(%edx), %eax
409         movl    %eax, -60(%ebp)
410         movl    %gs:4(%edx), %ecx
411         movl    %gs:16(%edx), %edi
412         movl    %gs:20(%edx), %ebx
413         movl    %gs:28(%edx), %eax
414         movl    %gs:32(%edx), %esi
415         movl    %esi, -64(%ebp)
416         movl    %gs:12(%edx), %esi
417         addl    $16, %esp
418         cmpl    -64(%ebp), %eax
419         jg      .L53
420         movl    %eax, -48(%ebp)
421         movl    %gs:24(%edx), %eax
422         movl    %eax, -56(%ebp)
423         movl    %eax, %edx
424         imull   -48(%ebp), %edx

Revision 142207:

Reloads for insn # 49
Reload 0: reload_in (SI) = (reg:SI 63 [ D.2018 ])
        reload_out (SI) = (reg:SI 1 dx [orig:62 D.2019 ] [62]) 
        GENERAL_REGS, RELOAD_OTHER (opnum = 0)
        reload_in_reg: (reg:SI 63 [ D.2018 ])
        reload_out_reg: (reg:SI 1 dx [orig:62 D.2019 ] [62]) 
        reload_reg_rtx: (reg:SI 1 dx [orig:62 D.2019 ] [62]) 
Reload 1: reload_in (SI) = (reg:SI 65 [ ivtmp.93 ])
        GENERAL_REGS, RELOAD_FOR_INPUT (opnum = 2), optional
        reload_in_reg: (reg:SI 65 [ ivtmp.93 ])
        reload_reg_rtx: (reg:SI 2 cx [80]) 

(insn 49 168 50 3 /tmp/foo.f90:6 (parallel [
            (set (reg:SI 1 dx [orig:62 D.2019 ] [62])
                (mult:SI (reg:SI 1 dx [orig:62 D.2019 ] [62])
                    (reg:SI 2 cx [80])))
            (clobber (reg:CC 17 flags))
        ]) 333 {*mulsi3_1} (nil))

Somehow IRA forgot ECX is used in insn 49 and used to load
__threadprivate2_MOD_foo:

407         movl    [EMAIL PROTECTED], %ecx
408         movl    %gs:(%ecx), %eax
409         movl    %eax, -60(%ebp)
410         movl    %gs:4(%ecx), %eax
411         movl    %gs:16(%ecx), %edi
412         movl    %gs:20(%ecx), %ebx
413         movl    %gs:28(%ecx), %edx
414         movl    %gs:32(%ecx), %esi
415         movl    %esi, -64(%ebp)
416         movl    %gs:12(%ecx), %esi
417         addl    $16, %esp
418         cmpl    -64(%ebp), %edx
419         jg      .L53
420         movl    %edx, -48(%ebp)
421         movl    %gs:24(%ecx), %edx
422         movl    %edx, -56(%ebp)
423         imull   %ecx, %edx <<< ECX doesn't have content at address
-48(%ebp)


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38272

Reply via email to