------- Comment #22 from hjl dot tools at gmail dot com  2008-09-03 16:05 
-------
(In reply to comment #7)
> Created an attachment (id=16155)
 --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=16155&action=view) [edit]
> Test case from 2006.434.zeusmp
> 
> Though fail to extract a smaller case, hopeful it helpful.
> 
> Compile with gfortran -c -O2 -DSPEC_CPU_LP64 tranx1.f -S -fdump-rtl-all -g.
> Miscompile in revision 139590.
> 
> In IRA dump file, I believe following suspicious RTL is the cause of segfault:
> (insn 886 885 893 35 tranx1.f:570 (set (reg:DI 0 ax [orig:123 D.3215 ] [123])
>         (mem/c:DI (plus:DI (reg/f:DI 7 sp)
>                 (const_int -104 [0xffffffffffffff98])) [68 D.3215+0 S8 A64]))
> 89 {*movdi_1_rex64} (nil))
> 
> (insn 893 886 896 35 tranx1.f:570 (set (mem/c:DI (plus:DI (reg/f:DI 7 sp)
>                 (const_int -104 [0xffffffffffffff98])) [68 ivtmp.160+0 S8 
> A64])
>         (reg/f:DI 3 bx [orig:159 ivtmp.160 ] [159])) 89 {*movdi_1_rex64} 
> (nil))
> D.3215 and ivtmp.160 shares the spill space (%rsp-104), where as D.3215 and
> ivtmp.160 has overlapped liverange.
> 

It is fixed by Richard's use DF patch:

http://gcc.gnu.org/ml/gcc/2008-09/msg00015.html


-- 


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

Reply via email to