This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
Re: problem with regrename pass on c4x
- To: Herman ten Brugge <Haj dot Ten dot Brugge at net dot HCC dot nl>
- Subject: Re: problem with regrename pass on c4x
- From: Bernd Schmidt <bernds at redhat dot com>
- Date: Sat, 9 Dec 2000 12:17:52 +0000 (GMT)
- cc: gcc-bugs at gcc dot gnu dot org
On Sat, 9 Dec 2000, Herman ten Brugge wrote:
> I have a problem with the regrename pass on the c4x. The code:
> The debug dump from the regrename pass is at the end. Register r1 is renamed
> into r3 for insn 13 and old global_live_at_start = { 2 10 11 20 } and
> new_live_at_start = { 2 3 10 11 20 }.
> Old global_live_at_start and new_live_at_start are not the same (r3 is
> also live now) and this causes the core dump.
> (insn 13 7 18 (parallel[
> (set (zero_extract:QI (reg:QI 3 r3)
> (const_int 8 [08h])
> (const_int 8 [08h]))
> (reg/v:QI 0 r0))
> (clobber (reg:CC 21 st))
> ] ) 103 {*insv_clobber} (insn_list 4 (insn_list 6 (insn_list 4 (insn_list 6 (nil)))))
> (expr_list:REG_DEAD (reg/v:QI 0 r0)
> (expr_list:REG_UNUSED (reg:CC 21 st)
> (nil))))
Did you mark operand 0 as in-out (with a '+' constraint)?
Bernd