public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug middle-end/37884]  New: [4.4 Regression] Bootstrap failure due to miscompilation of tree-vrp.c
@ 2008-10-21 16:41 krebbel at gcc dot gnu dot org
  2008-10-21 21:45 ` [Bug middle-end/37884] " rguenth at gcc dot gnu dot org
                   ` (7 more replies)
  0 siblings, 8 replies; 9+ messages in thread
From: krebbel at gcc dot gnu dot org @ 2008-10-21 16:41 UTC (permalink / raw)
  To: gcc-bugs

GCC bootstrap on s390x currently fails with:

/build2/gcc/libgcc/../gcc/libgcc2.c: In function '__ucmpdi2':
/build2/gcc/libgcc/../gcc/libgcc2.c:1169: internal compiler error: in
compare_ranges, at tree-vrp.c:3375

reload reassigns a hard reg to a pseudo which has been created by change-loop
(ira-emit.c). The pseudo is live across a bb boundary. The target bb has
another pred bb which clobbers the same hard reg which is chosen by reload for
the pseudo. So my current guess is that either the liveness info is broken for
the pseudo created by change_loop or reload does not respect it in some way.

The problem might be related to PR37859 which describes a problem where IRA is
not able to detect that a register has been modified in the loop body. I've
tried the patch: http://gcc.gnu.org/ml/gcc-patches/2008-10/msg00780.html
without success.


-- 
           Summary: [4.4 Regression] Bootstrap failure due to miscompilation
                    of tree-vrp.c
           Product: gcc
           Version: 4.4.0
            Status: UNCONFIRMED
          Keywords: wrong-code, ra
          Severity: critical
          Priority: P3
         Component: middle-end
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: krebbel at gcc dot gnu dot org
 GCC build triplet: s390x-ibm-linux
  GCC host triplet: s390x-ibm-linux
GCC target triplet: s390x-ibm-linux


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


^ permalink raw reply	[flat|nested] 9+ messages in thread

* [Bug middle-end/37884] [4.4 Regression] Bootstrap failure due to miscompilation of tree-vrp.c
  2008-10-21 16:41 [Bug middle-end/37884] New: [4.4 Regression] Bootstrap failure due to miscompilation of tree-vrp.c krebbel at gcc dot gnu dot org
@ 2008-10-21 21:45 ` rguenth at gcc dot gnu dot org
  2008-10-22  3:16 ` mmitchel at gcc dot gnu dot org
                   ` (6 subsequent siblings)
  7 siblings, 0 replies; 9+ messages in thread
From: rguenth at gcc dot gnu dot org @ 2008-10-21 21:45 UTC (permalink / raw)
  To: gcc-bugs



-- 

rguenth at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
   Target Milestone|---                         |4.4.0


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


^ permalink raw reply	[flat|nested] 9+ messages in thread

* [Bug middle-end/37884] [4.4 Regression] Bootstrap failure due to miscompilation of tree-vrp.c
  2008-10-21 16:41 [Bug middle-end/37884] New: [4.4 Regression] Bootstrap failure due to miscompilation of tree-vrp.c krebbel at gcc dot gnu dot org
  2008-10-21 21:45 ` [Bug middle-end/37884] " rguenth at gcc dot gnu dot org
@ 2008-10-22  3:16 ` mmitchel at gcc dot gnu dot org
  2008-10-22 12:53 ` krebbel at gcc dot gnu dot org
                   ` (5 subsequent siblings)
  7 siblings, 0 replies; 9+ messages in thread
From: mmitchel at gcc dot gnu dot org @ 2008-10-22  3:16 UTC (permalink / raw)
  To: gcc-bugs



-- 

mmitchel at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Priority|P3                          |P1


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


^ permalink raw reply	[flat|nested] 9+ messages in thread

* [Bug middle-end/37884] [4.4 Regression] Bootstrap failure due to miscompilation of tree-vrp.c
  2008-10-21 16:41 [Bug middle-end/37884] New: [4.4 Regression] Bootstrap failure due to miscompilation of tree-vrp.c krebbel at gcc dot gnu dot org
  2008-10-21 21:45 ` [Bug middle-end/37884] " rguenth at gcc dot gnu dot org
  2008-10-22  3:16 ` mmitchel at gcc dot gnu dot org
@ 2008-10-22 12:53 ` krebbel at gcc dot gnu dot org
  2008-10-24 22:23 ` vmakarov at redhat dot com
                   ` (4 subsequent siblings)
  7 siblings, 0 replies; 9+ messages in thread
From: krebbel at gcc dot gnu dot org @ 2008-10-22 12:53 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #1 from krebbel at gcc dot gnu dot org  2008-10-22 12:51 -------
The problem again (similar to PR37674) seems to be related to the
propagation of the hard reg conflict sets in ira_flattening.  The
conflict sets are only propagated to the parent allocno if the child
allocno uses the same pseudo.  This breaks the case below.

The miscompile is created by IRA when assigning hard reg r14 to pseudo
r295.  That way the call in L4 might be reached with the clobbered
value of r14 residing in r8.

Assigning r14 to r295 seems to be valid in loop L1 but it is not in
the nested loop L4 since L4 contains a call insn which clobbers r14.
The conflict of a147r315 with r14 is properly recorded but is not
propagated to L1 in ira_flattening.

r295 as well as r315 are created by change_loop as copies of r83 in L0.



 +-----------------+
 |   +--------+    |
 |   | bb 38  |    |
 |   | r295=r7|    |
 |   +--------+    |
 |a8r83   |      L0|
 +--------+--------+
          |
 +--------+--------+     +-----------------------------------+
 |        v        |     |                    +-----------+  |
 |     +-----+     |     |   +-----+<---------|bb 57      |  |
 |     |bb 93|<----+-----+---|bb 71|          |r2=r8      |  |
 |     +-----+     |     |   +-----+--------->|clobber r14|  |
 |        |        |     |     ^              +-----------+  |
 |        |        |     |     |                             |
 |        v        |     |     |                             |
 |   +---------+   |     |     |         a147r315            |
 |   | bb 50   |---+-----+-----+                             |
 |   | r8=r295 |   |     |                                 L4|
 |   +---------+   |     +-----------------------------------+
 |                 |
 |   a57r295     L1|
 +-----------------+


-- 

krebbel at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
         AssignedTo|unassigned at gcc dot gnu   |vmakarov at gcc dot gnu dot
                   |dot org                     |org


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


^ permalink raw reply	[flat|nested] 9+ messages in thread

* [Bug middle-end/37884] [4.4 Regression] Bootstrap failure due to miscompilation of tree-vrp.c
  2008-10-21 16:41 [Bug middle-end/37884] New: [4.4 Regression] Bootstrap failure due to miscompilation of tree-vrp.c krebbel at gcc dot gnu dot org
                   ` (2 preceding siblings ...)
  2008-10-22 12:53 ` krebbel at gcc dot gnu dot org
@ 2008-10-24 22:23 ` vmakarov at redhat dot com
  2008-10-26  6:56 ` hjl at gcc dot gnu dot org
                   ` (3 subsequent siblings)
  7 siblings, 0 replies; 9+ messages in thread
From: vmakarov at redhat dot com @ 2008-10-24 22:23 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #2 from vmakarov at redhat dot com  2008-10-24 22:21 -------
Andreas, thanks for the useful preliminary analysis.  The problem is a bit
different than 37674.  Loop4 contains Loop5 and there is an exit from Loop5
right to Loop1 and store (from hard reg in L5 to memory in L1) is removed
because the corresponding pseudo-register is not changed in L5 and L4.  In this
case we should propagate hard register conflicts as it is done for live ranges
in ira-build.c::copy_live_ranges_to_removed_store_destination.

I have a patch to solve the problem.  Unfortunately I have not enough disk
space to  make bootstrap on s390 on available to me.  But at least it went to
3rd stage. After patch testing I am going to submit it.


-- 


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


^ permalink raw reply	[flat|nested] 9+ messages in thread

* [Bug middle-end/37884] [4.4 Regression] Bootstrap failure due to miscompilation of tree-vrp.c
  2008-10-21 16:41 [Bug middle-end/37884] New: [4.4 Regression] Bootstrap failure due to miscompilation of tree-vrp.c krebbel at gcc dot gnu dot org
                   ` (3 preceding siblings ...)
  2008-10-24 22:23 ` vmakarov at redhat dot com
@ 2008-10-26  6:56 ` hjl at gcc dot gnu dot org
  2008-10-27  9:20 ` krebbel at gcc dot gnu dot org
                   ` (2 subsequent siblings)
  7 siblings, 0 replies; 9+ messages in thread
From: hjl at gcc dot gnu dot org @ 2008-10-26  6:56 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #3 from hjl at gcc dot gnu dot org  2008-10-26 06:54 -------
Subject: Bug 37884

Author: hjl
Date: Sun Oct 26 06:53:25 2008
New Revision: 141371

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=141371
Log:
2008-10-25  Vladimir Makarov  <vmakarov@redhat.com>

        PR middle-end/37884
        * ira-build.c (copy_live_ranges_to_removed_store_destinations):
        Rename to copy_info_to_removed_store_destinations.  Propagate
        conflict hard regs and register stack attribute.

Modified:
    branches/ira-merge/gcc/ChangeLog.ira
    branches/ira-merge/gcc/ira-build.c


-- 


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


^ permalink raw reply	[flat|nested] 9+ messages in thread

* [Bug middle-end/37884] [4.4 Regression] Bootstrap failure due to miscompilation of tree-vrp.c
  2008-10-21 16:41 [Bug middle-end/37884] New: [4.4 Regression] Bootstrap failure due to miscompilation of tree-vrp.c krebbel at gcc dot gnu dot org
                   ` (4 preceding siblings ...)
  2008-10-26  6:56 ` hjl at gcc dot gnu dot org
@ 2008-10-27  9:20 ` krebbel at gcc dot gnu dot org
  2008-10-27 16:22 ` vmakarov at gcc dot gnu dot org
  2008-10-27 17:28 ` jakub at gcc dot gnu dot org
  7 siblings, 0 replies; 9+ messages in thread
From: krebbel at gcc dot gnu dot org @ 2008-10-27  9:20 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #4 from krebbel at gcc dot gnu dot org  2008-10-27 09:19 -------
Thanks for the fix. The ira-merge branch now bootstraps on s390 and s390x:
http://gcc.gnu.org/ml/gcc-testresults/2008-10/msg01894.html
http://gcc.gnu.org/ml/gcc-testresults/2008-10/msg01879.html


-- 


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


^ permalink raw reply	[flat|nested] 9+ messages in thread

* [Bug middle-end/37884] [4.4 Regression] Bootstrap failure due to miscompilation of tree-vrp.c
  2008-10-21 16:41 [Bug middle-end/37884] New: [4.4 Regression] Bootstrap failure due to miscompilation of tree-vrp.c krebbel at gcc dot gnu dot org
                   ` (5 preceding siblings ...)
  2008-10-27  9:20 ` krebbel at gcc dot gnu dot org
@ 2008-10-27 16:22 ` vmakarov at gcc dot gnu dot org
  2008-10-27 17:28 ` jakub at gcc dot gnu dot org
  7 siblings, 0 replies; 9+ messages in thread
From: vmakarov at gcc dot gnu dot org @ 2008-10-27 16:22 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #5 from vmakarov at gcc dot gnu dot org  2008-10-27 16:20 -------
Subject: Bug 37884

Author: vmakarov
Date: Mon Oct 27 16:19:25 2008
New Revision: 141383

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=141383
Log:
2008-10-27  Vladimir Makarov  <vmakarov@redhat.com>

        PR middle-end/37884
        * ira-build.c (copy_live_ranges_to_removed_store_destinations):
        Rename to copy_info_to_removed_store_destinations.  Propagate
        conflict hard regs and register stack attribute.


Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/ira-build.c


-- 


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


^ permalink raw reply	[flat|nested] 9+ messages in thread

* [Bug middle-end/37884] [4.4 Regression] Bootstrap failure due to miscompilation of tree-vrp.c
  2008-10-21 16:41 [Bug middle-end/37884] New: [4.4 Regression] Bootstrap failure due to miscompilation of tree-vrp.c krebbel at gcc dot gnu dot org
                   ` (6 preceding siblings ...)
  2008-10-27 16:22 ` vmakarov at gcc dot gnu dot org
@ 2008-10-27 17:28 ` jakub at gcc dot gnu dot org
  7 siblings, 0 replies; 9+ messages in thread
From: jakub at gcc dot gnu dot org @ 2008-10-27 17:28 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #6 from jakub at gcc dot gnu dot org  2008-10-27 17:27 -------
Fixed then.


-- 

jakub at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |RESOLVED
         Resolution|                            |FIXED


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


^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2008-10-27 17:28 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2008-10-21 16:41 [Bug middle-end/37884] New: [4.4 Regression] Bootstrap failure due to miscompilation of tree-vrp.c krebbel at gcc dot gnu dot org
2008-10-21 21:45 ` [Bug middle-end/37884] " rguenth at gcc dot gnu dot org
2008-10-22  3:16 ` mmitchel at gcc dot gnu dot org
2008-10-22 12:53 ` krebbel at gcc dot gnu dot org
2008-10-24 22:23 ` vmakarov at redhat dot com
2008-10-26  6:56 ` hjl at gcc dot gnu dot org
2008-10-27  9:20 ` krebbel at gcc dot gnu dot org
2008-10-27 16:22 ` vmakarov at gcc dot gnu dot org
2008-10-27 17:28 ` jakub at gcc dot gnu dot org

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).