public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug rtl-optimization/16643] New: [3.4 Regression] verify_local_live_at_start ICE after crossjumping & cfgcleanup
@ 2004-07-20 13:03 rsandifo at gcc dot gnu dot org
  2004-07-20 13:03 ` [Bug rtl-optimization/16643] " rsandifo at gcc dot gnu dot org
                   ` (5 more replies)
  0 siblings, 6 replies; 7+ messages in thread
From: rsandifo at gcc dot gnu dot org @ 2004-07-20 13:03 UTC (permalink / raw)
  To: gcc-bugs

Compiling:

void f (int a, int b, int c, int d, int e, int *f)
{
  if (a == 0)
    if (b == 0)
      if (c == 0)
	if (d == 0)
	  {
	    *f += e;
	    return;
	  }
  *f += e;
  return;
}

with "mips64-elf-gcc -O2" gives:

/tmp/foo.c: In function `f':
/tmp/foo.c:13: internal compiler error: in verify_local_live_at_start, at flow.c:546
Please submit a full bug report,
with preprocessed source if appropriate.
See <URL:http://gcc.gnu.org/bugs.html> for instructions.

Same thing for other mips targets, like mips64-linux-gnu.  The problem
is really target-independent: cleanup_cfg (CLEANUP_CFGLAYOUT), called
from within bbreorder, is deleting uses of registers and not updating
liveness information.  This in turn seems to expose a problem with
try_simplify_condjump() not updating the forwarder block flags.

Testing a couple of fixes now.

-- 
           Summary: [3.4 Regression] verify_local_live_at_start ICE after
                    crossjumping & cfgcleanup
           Product: gcc
           Version: 3.4.1
            Status: UNCONFIRMED
          Keywords: ice-on-valid-code
          Severity: normal
          Priority: P2
         Component: rtl-optimization
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: rsandifo at gcc dot gnu dot org
                CC: gcc-bugs at gcc dot gnu dot org
GCC target triplet: mips64-elf


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


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

* [Bug rtl-optimization/16643] [3.4 Regression] verify_local_live_at_start ICE after crossjumping & cfgcleanup
  2004-07-20 13:03 [Bug rtl-optimization/16643] New: [3.4 Regression] verify_local_live_at_start ICE after crossjumping & cfgcleanup rsandifo at gcc dot gnu dot org
@ 2004-07-20 13:03 ` rsandifo at gcc dot gnu dot org
  2004-07-20 13:22 ` rsandifo at gcc dot gnu dot org
                   ` (4 subsequent siblings)
  5 siblings, 0 replies; 7+ messages in thread
From: rsandifo at gcc dot gnu dot org @ 2004-07-20 13:03 UTC (permalink / raw)
  To: gcc-bugs



-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
         AssignedTo|unassigned at gcc dot gnu   |rsandifo at gcc dot gnu dot
                   |dot org                     |org
             Status|UNCONFIRMED                 |ASSIGNED
      Known to work|                            |3.3.3 3.5.0


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


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

* [Bug rtl-optimization/16643] [3.4 Regression] verify_local_live_at_start ICE after crossjumping & cfgcleanup
  2004-07-20 13:03 [Bug rtl-optimization/16643] New: [3.4 Regression] verify_local_live_at_start ICE after crossjumping & cfgcleanup rsandifo at gcc dot gnu dot org
  2004-07-20 13:03 ` [Bug rtl-optimization/16643] " rsandifo at gcc dot gnu dot org
@ 2004-07-20 13:22 ` rsandifo at gcc dot gnu dot org
  2004-07-20 14:06 ` [Bug rtl-optimization/16643] [3.4/3.5 " pinskia at gcc dot gnu dot org
                   ` (3 subsequent siblings)
  5 siblings, 0 replies; 7+ messages in thread
From: rsandifo at gcc dot gnu dot org @ 2004-07-20 13:22 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From rsandifo at gcc dot gnu dot org  2004-07-20 13:22 -------
Fails on mainline too with a trivial change:

void foo (int a, int b, int c, int d, int e, int *f)
{
  if (a == 0)
    if (b == 0)
      if (c == 0)
	if (d == 0)
	  {
	    *f = e;
	    return;
	  }
  *f = e;
  return;
}


-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
      Known to work|3.3.3 3.5.0                 |3.3.3


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


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

* [Bug rtl-optimization/16643] [3.4/3.5 Regression] verify_local_live_at_start ICE after crossjumping & cfgcleanup
  2004-07-20 13:03 [Bug rtl-optimization/16643] New: [3.4 Regression] verify_local_live_at_start ICE after crossjumping & cfgcleanup rsandifo at gcc dot gnu dot org
  2004-07-20 13:03 ` [Bug rtl-optimization/16643] " rsandifo at gcc dot gnu dot org
  2004-07-20 13:22 ` rsandifo at gcc dot gnu dot org
@ 2004-07-20 14:06 ` pinskia at gcc dot gnu dot org
  2004-07-26 14:34 ` cvs-commit at gcc dot gnu dot org
                   ` (2 subsequent siblings)
  5 siblings, 0 replies; 7+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2004-07-20 14:06 UTC (permalink / raw)
  To: gcc-bugs



-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
           Severity|normal                      |critical
            Summary|[3.4 Regression]            |[3.4/3.5 Regression]
                   |verify_local_live_at_start  |verify_local_live_at_start
                   |ICE after crossjumping &    |ICE after crossjumping &
                   |cfgcleanup                  |cfgcleanup
   Target Milestone|---                         |3.4.2


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


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

* [Bug rtl-optimization/16643] [3.4/3.5 Regression] verify_local_live_at_start ICE after crossjumping & cfgcleanup
  2004-07-20 13:03 [Bug rtl-optimization/16643] New: [3.4 Regression] verify_local_live_at_start ICE after crossjumping & cfgcleanup rsandifo at gcc dot gnu dot org
                   ` (2 preceding siblings ...)
  2004-07-20 14:06 ` [Bug rtl-optimization/16643] [3.4/3.5 " pinskia at gcc dot gnu dot org
@ 2004-07-26 14:34 ` cvs-commit at gcc dot gnu dot org
  2004-07-26 14:42 ` cvs-commit at gcc dot gnu dot org
  2004-07-26 14:44 ` rsandifo at gcc dot gnu dot org
  5 siblings, 0 replies; 7+ messages in thread
From: cvs-commit at gcc dot gnu dot org @ 2004-07-26 14:34 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From cvs-commit at gcc dot gnu dot org  2004-07-26 14:34 -------
Subject: Bug 16643

CVSROOT:	/cvs/gcc
Module name:	gcc
Changes by:	rsandifo@gcc.gnu.org	2004-07-26 14:34:19

Modified files:
	gcc            : ChangeLog cfglayout.c cfglayout.h basic-block.h 
	                 bb-reorder.c function.c rtl.h tracer.c passes.c 
	gcc/testsuite  : ChangeLog 
Added files:
	gcc/testsuite/gcc.c-torture/compile: 20040726-1.c 

Log message:
	PR rtl-optimization/16643
	* cfglayout.h (cfg_layout_initialize): Add a flags parameter.
	* cfglayout.c (cfg_layout_initialize): Pass it to cleanup_cfg.
	* basic-block.h (reorder_basic_blocks): Add a flags parameter.
	* cfglayout.c (reorder_basic_blocks): Pass it to cfg_layout_initialize.
	(partition_hot_cold_basic_blocks): Pass 0 to cfg_layout_initialize.
	* function.c (thread_prologue_and_epilogue_insns): Likewise.
	* rtl.h (tracer): Add a flags parameter.
	* tracer.c (tracer): Pass it to cfg_layout_initialise.
	* passes.c (rest_of_handle_stack_regs): Pass 0 to reorder_basic_blocks.
	(rest_of_handle_reorder_blocks): Update calls to tracer and
	reorder_basic_blocks, passing CLEANUP_UPDATE_LIFE if appropriate.
	(rest_of_handle_tracer): Pass 0 to tracer.
	(rest_of_handle_loop2): Pass 0 to cfg_layout_initialize.

Patches:
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/ChangeLog.diff?cvsroot=gcc&r1=2.4695&r2=2.4696
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/cfglayout.c.diff?cvsroot=gcc&r1=1.66&r2=1.67
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/cfglayout.h.diff?cvsroot=gcc&r1=1.14&r2=1.15
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/basic-block.h.diff?cvsroot=gcc&r1=1.203&r2=1.204
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/bb-reorder.c.diff?cvsroot=gcc&r1=1.76&r2=1.77
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/function.c.diff?cvsroot=gcc&r1=1.560&r2=1.561
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/rtl.h.diff?cvsroot=gcc&r1=1.493&r2=1.494
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/tracer.c.diff?cvsroot=gcc&r1=1.19&r2=1.20
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/passes.c.diff?cvsroot=gcc&r1=2.33&r2=2.34
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/ChangeLog.diff?cvsroot=gcc&r1=1.4053&r2=1.4054
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/gcc.c-torture/compile/20040726-1.c.diff?cvsroot=gcc&r1=NONE&r2=1.1



-- 


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


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

* [Bug rtl-optimization/16643] [3.4/3.5 Regression] verify_local_live_at_start ICE after crossjumping & cfgcleanup
  2004-07-20 13:03 [Bug rtl-optimization/16643] New: [3.4 Regression] verify_local_live_at_start ICE after crossjumping & cfgcleanup rsandifo at gcc dot gnu dot org
                   ` (3 preceding siblings ...)
  2004-07-26 14:34 ` cvs-commit at gcc dot gnu dot org
@ 2004-07-26 14:42 ` cvs-commit at gcc dot gnu dot org
  2004-07-26 14:44 ` rsandifo at gcc dot gnu dot org
  5 siblings, 0 replies; 7+ messages in thread
From: cvs-commit at gcc dot gnu dot org @ 2004-07-26 14:42 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From cvs-commit at gcc dot gnu dot org  2004-07-26 14:42 -------
Subject: Bug 16643

CVSROOT:	/cvs/gcc
Module name:	gcc
Branch: 	gcc-3_4-branch
Changes by:	rsandifo@gcc.gnu.org	2004-07-26 14:42:19

Modified files:
	gcc            : ChangeLog cfglayout.h cfglayout.c basic-block.h 
	                 bb-reorder.c loop-init.c rtl.h tracer.c 
	                 toplev.c 
	gcc/testsuite  : ChangeLog 
Added files:
	gcc/testsuite/gcc.c-torture/compile: 20040726-1.c 

Log message:
	PR rtl-optimization/16643
	* cfglayout.h (cfg_layout_initialize): Add a flags parameter.
	* cfglayout.c (cfg_layout_initialize): Pass it to cleanup_cfg.
	* basic-block.h (reorder_basic_blocks): Add a flags parameter.
	* cfglayout.c (reorder_basic_blocks): Pass it to cfg_layout_initialize.
	* loop-init.c (loop_optimizer_init): Pass 0 to cfg_layout_initialize.
	* rtl.h (tracer): Add a flags parameter.
	* tracer.c (tracer): Pass it to cfg_layout_initialise.
	* toplev.c (rest_of_handle_stack_regs): Pass 0 to reorder_basic_blocks.
	(rest_of_handle_reorder_blocks): Update calls to tracer and
	reorder_basic_blocks, passing CLEANUP_UPDATE_LIFE if appropriate.
	(rest_of_handle_tracer): Pass 0 to tracer.

Patches:
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/ChangeLog.diff?cvsroot=gcc&only_with_tag=gcc-3_4-branch&r1=2.2326.2.566&r2=2.2326.2.567
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/cfglayout.h.diff?cvsroot=gcc&only_with_tag=gcc-3_4-branch&r1=1.10&r2=1.10.4.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/cfglayout.c.diff?cvsroot=gcc&only_with_tag=gcc-3_4-branch&r1=1.50&r2=1.50.4.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/basic-block.h.diff?cvsroot=gcc&only_with_tag=gcc-3_4-branch&r1=1.186.4.3&r2=1.186.4.4
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/bb-reorder.c.diff?cvsroot=gcc&only_with_tag=gcc-3_4-branch&r1=1.63&r2=1.63.4.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/loop-init.c.diff?cvsroot=gcc&only_with_tag=gcc-3_4-branch&r1=1.7.4.1&r2=1.7.4.2
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/rtl.h.diff?cvsroot=gcc&only_with_tag=gcc-3_4-branch&r1=1.448.4.5&r2=1.448.4.6
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/tracer.c.diff?cvsroot=gcc&only_with_tag=gcc-3_4-branch&r1=1.16&r2=1.16.4.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/toplev.c.diff?cvsroot=gcc&only_with_tag=gcc-3_4-branch&r1=1.863.4.11&r2=1.863.4.12
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/ChangeLog.diff?cvsroot=gcc&only_with_tag=gcc-3_4-branch&r1=1.3389.2.234&r2=1.3389.2.235
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/gcc.c-torture/compile/20040726-1.c.diff?cvsroot=gcc&only_with_tag=gcc-3_4-branch&r1=NONE&r2=1.1.2.1



-- 


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


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

* [Bug rtl-optimization/16643] [3.4/3.5 Regression] verify_local_live_at_start ICE after crossjumping & cfgcleanup
  2004-07-20 13:03 [Bug rtl-optimization/16643] New: [3.4 Regression] verify_local_live_at_start ICE after crossjumping & cfgcleanup rsandifo at gcc dot gnu dot org
                   ` (4 preceding siblings ...)
  2004-07-26 14:42 ` cvs-commit at gcc dot gnu dot org
@ 2004-07-26 14:44 ` rsandifo at gcc dot gnu dot org
  5 siblings, 0 replies; 7+ messages in thread
From: rsandifo at gcc dot gnu dot org @ 2004-07-26 14:44 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From rsandifo at gcc dot gnu dot org  2004-07-26 14:44 -------
Fixed in main & 3.4

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


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


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

end of thread, other threads:[~2004-07-26 14:44 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2004-07-20 13:03 [Bug rtl-optimization/16643] New: [3.4 Regression] verify_local_live_at_start ICE after crossjumping & cfgcleanup rsandifo at gcc dot gnu dot org
2004-07-20 13:03 ` [Bug rtl-optimization/16643] " rsandifo at gcc dot gnu dot org
2004-07-20 13:22 ` rsandifo at gcc dot gnu dot org
2004-07-20 14:06 ` [Bug rtl-optimization/16643] [3.4/3.5 " pinskia at gcc dot gnu dot org
2004-07-26 14:34 ` cvs-commit at gcc dot gnu dot org
2004-07-26 14:42 ` cvs-commit at gcc dot gnu dot org
2004-07-26 14:44 ` rsandifo 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).