------- 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

Reply via email to