This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: ICEs in validate_replace_src
- To: zackw at stanford dot edu
- Subject: Re: ICEs in validate_replace_src
- From: kenner at vlsi1 dot ultra dot nyu dot edu (Richard Kenner)
- Date: Sat, 17 Feb 01 07:38:06 EST
- Cc: gcc at gcc dot gnu dot org
validate_replace_src aborts if GET_CODE (PATTERN (insn)) != SET. It
should probably be using single_set, but that is irrelevant to the
bootstrap failures, because it's being called on a genuine double set,
at least on i386:
I realized this morning that these changes were the source of this failure,
which seems to show up on lots of machines but not Alpha, where I tested it.
The change is due to allowing cprop to work on things that aren't a single
SET. I'll look at and fix this very soon.
(insn/i 100 99 101 (parallel[
(set (reg:SI 80)
(udiv:SI (reg:SI 79)
(reg/v:SI 62)))
(set (reg:SI 81)
(umod:SI (reg:SI 79)
(reg/v:SI 62)))
(clobber (reg:CC 17 flags))
] ) 192 {udivmodsi4} (nil)
(nil))
Global constant propagation wants to replace (reg/v:SI 62) with
(const_int 0) - yeah, that seems odd to me too.
Let me investigate that too.