From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andreas Schwab To: law@cygnus.com Cc: gcc@gcc.gnu.org Subject: Re: Reload bug Date: Thu, 02 Sep 1999 02:15:00 -0000 Message-id: References: <25863.936257014@upchuck.cygnus.com> X-SW-Source: 1999-09/msg00057.html Jeffrey A Law writes: |> I'll note this doesn't occur in the mainline tree, but I have no idea if that |> is because the bug has actually been fixed or because we're just not triggering |> the problem anymore. I have been able to reproduce the bug with CVS-yesterday, but not right now. I think this is due to the ia32 merge, due to the change in the subdi3 pattern. With the yesterday's compiler the offending insn looked like this before global alloc: (insn 83 77 85 (parallel[ (set (reg/v:DI 26) (minus:DI (reg:DI 31) (reg:DI 38))) (clobber (scratch:SI)) ] ) 215 {subdi3} (insn_list 77 (nil)) (expr_list:REG_DEAD (reg:DI 38) (expr_list:REG_UNUSED (scratch:SI) (nil)))) with (reg:DI 31) being equivalent to the const_double. Today I'm getting this: (insn 251 74 80 (set (reg/v:DI 28) (reg:DI 35)) 66 {*movdi_2} (nil) (nil)) (insn 80 251 82 (parallel [ (set (reg/v:DI 28) (minus:DI (reg/v:DI 28) (reg:DI 41))) (clobber (reg:CC 17 flags)) ]) 179 {subdi3} (insn_list 74 (nil)) (expr_list:REG_DEAD (reg:DI 41) (expr_list:REG_UNUSED (reg:CC 17 flags) (nil)))) where (reg:DI 35) now contains the const_double. Andreas. -- Andreas Schwab "And now for something schwab@suse.de completely different." SuSE GmbH, Schanzäckerstr. 10, D-90443 Nürnberg From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andreas Schwab To: law@cygnus.com Cc: gcc@gcc.gnu.org Subject: Re: Reload bug Date: Thu, 30 Sep 1999 18:02:00 -0000 Message-ID: References: <25863.936257014@upchuck.cygnus.com> X-SW-Source: 1999-09n/msg00057.html Message-ID: <19990930180200.S9QYvMCfVnRQrpnFC6CEexwfz1Rs2m5o0SYohWNFSbI@z> Jeffrey A Law writes: |> I'll note this doesn't occur in the mainline tree, but I have no idea if that |> is because the bug has actually been fixed or because we're just not triggering |> the problem anymore. I have been able to reproduce the bug with CVS-yesterday, but not right now. I think this is due to the ia32 merge, due to the change in the subdi3 pattern. With the yesterday's compiler the offending insn looked like this before global alloc: (insn 83 77 85 (parallel[ (set (reg/v:DI 26) (minus:DI (reg:DI 31) (reg:DI 38))) (clobber (scratch:SI)) ] ) 215 {subdi3} (insn_list 77 (nil)) (expr_list:REG_DEAD (reg:DI 38) (expr_list:REG_UNUSED (scratch:SI) (nil)))) with (reg:DI 31) being equivalent to the const_double. Today I'm getting this: (insn 251 74 80 (set (reg/v:DI 28) (reg:DI 35)) 66 {*movdi_2} (nil) (nil)) (insn 80 251 82 (parallel [ (set (reg/v:DI 28) (minus:DI (reg/v:DI 28) (reg:DI 41))) (clobber (reg:CC 17 flags)) ]) 179 {subdi3} (insn_list 74 (nil)) (expr_list:REG_DEAD (reg:DI 41) (expr_list:REG_UNUSED (reg:CC 17 flags) (nil)))) where (reg:DI 35) now contains the const_double. Andreas. -- Andreas Schwab "And now for something schwab@suse.de completely different." SuSE GmbH, Schanzäckerstr. 10, D-90443 Nürnberg