------- Comment #6 from amylaar at gcc dot gnu dot org 2009-09-02 12:18 -------
Note that I discovered this bug in the milepost code only after single-stepping
through the SIMD co-processor code to find out what was going wrong.
A match_dup is only effective when an instruction is recognized, and reload
only cares about all the constraints being satisfied. Since the instruction
was recognized before move_invariant_reg, its insn_code was cached, and as far
as all the subsequent passes were concerned, there was no reason to
re-recognize the instruction which had the invalid change.
In other cases, e.g. when reload has to do some real work, you might see an
ICE.
--
amylaar at gcc dot gnu dot org changed:
What |Removed |Added
----------------------------------------------------------------------------
GCC build triplet|independent (i686-cygwin) |independent (i686-cygwin) /
| |x86_64-unknown-linux-gnu
| |(gc...@fsff
GCC target triplet|msp430 (see below) |msp430 (see below) / --
| |target=arc-elf32 --with-
| |extra-target-list
Keywords| |ice-on-valid-code, wrong-
| |code
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41188