Re: Paradoxical subreg reload issue

2012-05-09 Thread Aurelien Buhrig
09/05/2012 11:16, Eric Botcazou: >> I have another issue in DCE pass after changing word_mode from SImode to >> HImode. >> Indeed, in subreg1 pass, SI moves such as >> ... >> (insn 42 41 43 (set (reg:SI 85) (reg/f:SI 83)) >> (insn 46 45 47 (set (reg:SI 8 a1) (reg:SI 85)) >> >> are split into HImode

Re: Paradoxical subreg reload issue

2012-05-09 Thread Eric Botcazou
> I have another issue in DCE pass after changing word_mode from SImode to > HImode. > Indeed, in subreg1 pass, SI moves such as > ... > (insn 42 41 43 (set (reg:SI 85) (reg/f:SI 83)) > (insn 46 45 47 (set (reg:SI 8 a1) (reg:SI 85)) > > are split into HImode word moves: > ... > (insn 98 97 99 2 (se

Re: Paradoxical subreg reload issue

2012-05-09 Thread Aurelien Buhrig
07/05/2012 17:53, Aurelien Buhrig : > > I have another issue in DCE pass after changing word_mode from SImode to > HImode. > (insn 98 97 99 2 (set (subreg:HI (reg:SI 106) 0) (reg:HI 104)) > (insn 99 98 100 2 (set (subreg:HI (reg:SI 106) 2) (reg:HI 105 [+2 ])) > (insn 100 99 47 2 (set (reg:SI 8 a1

Re: Paradoxical subreg reload issue

2012-05-07 Thread Aurelien Buhrig
04/05/2012 09:37, Aurelien Buhrig : > 03/05/2012 14:14, Aurelien Buhrig : >> 02/05/2012 21:36, Eric Botcazou : I have an issue (gcc 4.6.3, private bacakend) when reloading operands of this insn: (set (subreg:SI (reg:QI 21 [ iftmp.1 ]) 0) (lshiftrt:SI (reg/v:SI 24 [ w ]) (co

Re: Paradoxical subreg reload issue

2012-05-04 Thread Eric Botcazou
> I modified CANNOT_CHANGE_MODE_CLASS as you suggested. But strange as it > may seem, it has no effect on such a reload, and I can't find a way to > make it work... The macro is mainly used by the RA, not clear for reload. > BTW, has this bug already been filed? In its general form, I'm not sure

Re: Paradoxical subreg reload issue

2012-05-04 Thread Aurelien Buhrig
Le 03/05/2012 14:14, Aurelien Buhrig a écrit : > 02/05/2012 21:36, Eric Botcazou : >>> I have an issue (gcc 4.6.3, private bacakend) when reloading operands of >>> this insn: >>> (set (subreg:SI (reg:QI 21 [ iftmp.1 ]) 0) >>> (lshiftrt:SI (reg/v:SI 24 [ w ]) (const_int 31 [0x1f])) >>> >>> The

Re: Paradoxical subreg reload issue

2012-05-03 Thread Aurelien Buhrig
02/05/2012 21:36, Eric Botcazou : >> I have an issue (gcc 4.6.3, private bacakend) when reloading operands of >> this insn: >> (set (subreg:SI (reg:QI 21 [ iftmp.1 ]) 0) >> (lshiftrt:SI (reg/v:SI 24 [ w ]) (const_int 31 [0x1f])) >> >> The register 21 is reloaded into >> (reg:QI 0 r0 [orig:21 i

Re: Paradoxical subreg reload issue

2012-05-02 Thread Eric Botcazou
> I have an issue (gcc 4.6.3, private bacakend) when reloading operands of > this insn: > (set (subreg:SI (reg:QI 21 [ iftmp.1 ]) 0) > (lshiftrt:SI (reg/v:SI 24 [ w ]) (const_int 31 [0x1f])) > > The register 21 is reloaded into > (reg:QI 0 r0 [orig:21 iftmp.1 ] [21]), which is a HI-wide hw reg

Re: Paradoxical subreg reload issue

2012-05-02 Thread Aurelien Buhrig
Le 02/05/2012 16:41, Ian Lance Taylor a écrit : > Aurelien Buhrig writes: > >> I have an issue (gcc 4.6.3, private bacakend) when reloading operands of >> this insn: >> (set (subreg:SI (reg:QI 21 [ iftmp.1 ]) 0) >> (lshiftrt:SI (reg/v:SI 24 [ w ]) (const_int 31 [0x1f])) >> >> The register 21

Re: Paradoxical subreg reload issue

2012-05-02 Thread Ian Lance Taylor
Aurelien Buhrig writes: > I have an issue (gcc 4.6.3, private bacakend) when reloading operands of > this insn: > (set (subreg:SI (reg:QI 21 [ iftmp.1 ]) 0) > (lshiftrt:SI (reg/v:SI 24 [ w ]) (const_int 31 [0x1f])) > > The register 21 is reloaded into > (reg:QI 0 r0 [orig:21 iftmp.1 ] [21]),

Paradoxical subreg reload issue

2012-05-02 Thread Aurelien Buhrig
Hi, I have an issue (gcc 4.6.3, private bacakend) when reloading operands of this insn: (set (subreg:SI (reg:QI 21 [ iftmp.1 ]) 0) (lshiftrt:SI (reg/v:SI 24 [ w ]) (const_int 31 [0x1f])) The register 21 is reloaded into (reg:QI 0 r0 [orig:21 iftmp.1 ] [21]), which is a HI-wide hw register. S