[Bug target/53120] New: [4.5, 4.6, 4.7, 4.8 Regression]: ICE building driver, exposing strict_low_part / in/out operand thinko -fno-tree-sra

hp at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Wed Apr 25 17:05:00 GMT 2012


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53120

             Bug #: 53120
           Summary: [4.5, 4.6, 4.7, 4.8 Regression]: ICE building driver,
                    exposing strict_low_part / in/out operand thinko
                    -fno-tree-sra
    Classification: Unclassified
           Product: gcc
           Version: 4.5.5
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: target
        AssignedTo: unassigned@gcc.gnu.org
        ReportedBy: hp@gcc.gnu.org
            Target: cris-*-*, crisv32-*-*


Created attachment 27240
  --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=27240
./cc1 -O2 -fno-tree-sra

The attached test-case, intended for gcc.dg/torture, exposes a thinko in the
CRIS port: a read/write output operand (the "+" constraint modifier) is
specified to match an input operand ("0").  Reload cannot cope, and thinking
about it, it's not possible (with the current hooks and macros).  According to
a comment in m68k.md, this is to be expected, supported by a gdb session.  The
m68k comment (grep MATCH_DUP m68k.md) is from revision 372 (!) which according
to the (artificially mapped) svn revision numbers are about 10 revisions from
the introduction of reload.c (!!).  Patch in testing. The observation was from
an import of the 4.7 branch; also confirmed on branches for 4.5, 4.6, 4.7 and
trunk, but not for 4.3.  The use of "+" was introduced with revision r134236
(2008-04-13 02:51:51 UTC), before the 4.4 branch. The bug is of course there
but just not trigging for 4.4 but nevertheless observed as a regression of 4.5,
therefore labelled as such.  Note the requirement to turn off tree-sra.



More information about the Gcc-bugs mailing list