This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug regression/41188] move_invariant_reg() damages CBRANCH instructions with CLOBBER attribute



------- 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
                   |                            |(gcc13@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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]