public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug rtl-optimization/32355] New: [4.3 Regression] ICE in df_lr_verify_transfer_functions, at df-problems.c:1924
@ 2007-06-15 15:09 tbm at cyrius dot com
2007-06-15 15:17 ` [Bug rtl-optimization/32355] " pinskia at gcc dot gnu dot org
` (5 more replies)
0 siblings, 6 replies; 7+ messages in thread
From: tbm at cyrius dot com @ 2007-06-15 15:09 UTC (permalink / raw)
To: gcc-bugs
Another dataflow problem. This occurs on x86_64-linux, but not on ia64.
(sid)26281:tbm@em64t: ~] /usr/lib/gcc-snapshot/bin/gcc -c -O3
~/enlightenment-handlers.c
/home/tbm/enlightenment-handlers.c: In function 'doSignalsSetup':
/home/tbm/enlightenment-handlers.c:32: internal compiler error: in
df_lr_verify_transfer_functions, at df-problems.c:1924
Please submit a full bug report, [...]
Testcase:
typedef struct
{
}
__sigset_t;
typedef struct
{
char coredump;
}
EMode;
extern EMode Mode;
struct sigaction
{
__sigset_t sa_mask;
int sa_flags;
};
doSignalsSetup (void)
{
static const int signals[] = {
1, 2 , 3, 4, 6, 8, 11, 13, 14, 15, 10, 12, 17, 7
};
unsigned int i, sig;
struct sigaction sa;
for (i = 0; i < sizeof (signals) / sizeof (int); i++)
{
sig = signals[i];
if (Mode.coredump && (sig == 4 || sig == 8))
continue;
sa.sa_flags = (sig == 17);
sigemptyset (&sa.sa_mask);
}
}
--
Summary: [4.3 Regression] ICE in df_lr_verify_transfer_functions,
at df-problems.c:1924
Product: gcc
Version: 4.3.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: rtl-optimization
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: tbm at cyrius dot com
GCC target triplet: x86_64-linux-gnu
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32355
^ permalink raw reply [flat|nested] 7+ messages in thread
* [Bug rtl-optimization/32355] [4.3 Regression] ICE in df_lr_verify_transfer_functions, at df-problems.c:1924
2007-06-15 15:09 [Bug rtl-optimization/32355] New: [4.3 Regression] ICE in df_lr_verify_transfer_functions, at df-problems.c:1924 tbm at cyrius dot com
@ 2007-06-15 15:17 ` pinskia at gcc dot gnu dot org
2007-06-17 20:13 ` zadeck at naturalbridge dot com
` (4 subsequent siblings)
5 siblings, 0 replies; 7+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2007-06-15 15:17 UTC (permalink / raw)
To: gcc-bugs
--
pinskia at gcc dot gnu dot org changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |pinskia at gcc dot gnu dot
| |org
Target Milestone|--- |4.3.0
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32355
^ permalink raw reply [flat|nested] 7+ messages in thread
* [Bug rtl-optimization/32355] [4.3 Regression] ICE in df_lr_verify_transfer_functions, at df-problems.c:1924
2007-06-15 15:09 [Bug rtl-optimization/32355] New: [4.3 Regression] ICE in df_lr_verify_transfer_functions, at df-problems.c:1924 tbm at cyrius dot com
2007-06-15 15:17 ` [Bug rtl-optimization/32355] " pinskia at gcc dot gnu dot org
@ 2007-06-17 20:13 ` zadeck at naturalbridge dot com
2007-06-18 4:41 ` paolo dot bonzini at lu dot unisi dot ch
` (3 subsequent siblings)
5 siblings, 0 replies; 7+ messages in thread
From: zadeck at naturalbridge dot com @ 2007-06-17 20:13 UTC (permalink / raw)
To: gcc-bugs
------- Comment #1 from zadeck at naturalbridge dot com 2007-06-17 20:13 -------
Subject: Re: [4.3 Regression] ICE in df_lr_verify_transfer_functions,
at df-problems.c:1924
There are possibly two problems here. Fixing the first one fixes this ice.
The first problem is that after a call to cse_main, a call to
df_finish_pass is needed to get out of deferred rescanning mode and get
everything up to date.
The possible second problem is that something in one of
delete_trivially_dead_insns
rebuild_jump_labels
cleanup_cfg
may not work in deferred rescanning mode. This will wait for another
bug report.
It is too hard to debug this without first cleaning up what cse_main did
and that makes the bug go away.
ok to commit?
Kenny
2007-06-17 Kenneth Zadeck <zadeck@naturalbridge.com>
PR middle-end/32355
* gcse (rest_of_handle_gcse): Add call to df_finish_pass after
cse_main.
* df-problems.c (df_note_bb_compute): Fix dumping info.
2007-06-17 Kenneth Zadeck <zadeck@naturalbridge.com>
* gcc.c-torture/compile/pr32355.c: New testcase.
Index: testsuite/gcc.c-torture/compile/pr32355.c
===================================================================
--- testsuite/gcc.c-torture/compile/pr32355.c (revision 0)
+++ testsuite/gcc.c-torture/compile/pr32355.c (revision 0)
@@ -0,0 +1,33 @@
+/* { dg-options "-O3" } */
+
+typedef struct
+{
+}
+__sigset_t;
+typedef struct
+{
+ char coredump;
+}
+EMode;
+extern EMode Mode;
+struct sigaction
+{
+ __sigset_t sa_mask;
+ int sa_flags;
+};
+doSignalsSetup (void)
+{
+ static const int signals[] = {
+ 1, 2 , 3, 4, 6, 8, 11, 13, 14, 15, 10, 12, 17, 7
+ };
+ unsigned int i, sig;
+ struct sigaction sa;
+ for (i = 0; i < sizeof (signals) / sizeof (int); i++)
+ {
+ sig = signals[i];
+ if (Mode.coredump && (sig == 4 || sig == 8))
+ continue;
+ sa.sa_flags = (sig == 17);
+ sigemptyset (&sa.sa_mask);
+ }
+}
Index: gcse.c
===================================================================
--- gcse.c (revision 125777)
+++ gcse.c (working copy)
@@ -6704,6 +6704,7 @@ rest_of_handle_gcse (void)
{
timevar_push (TV_CSE);
tem2 = cse_main (get_insns (), max_reg_num ());
+ df_finish_pass ();
purge_all_dead_edges ();
delete_trivially_dead_insns (get_insns (), max_reg_num ());
timevar_pop (TV_CSE);
Index: df-problems.c
===================================================================
--- df-problems.c (revision 125777)
+++ df-problems.c (working copy)
@@ -3867,8 +3867,10 @@ df_note_bb_compute (unsigned int bb_inde
for (def_rec = df_get_artificial_defs (bb_index); *def_rec; def_rec++)
{
struct df_ref *def = *def_rec;
+#ifdef REG_DEAD_DEBUGGING
if (dump_file)
fprintf (dump_file, "artificial def %d\n", DF_REF_REGNO (def));
+#endif
if ((DF_REF_FLAGS (def) & DF_REF_AT_TOP) == 0)
bitmap_clear_bit (live, DF_REF_REGNO (def));
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32355
^ permalink raw reply [flat|nested] 7+ messages in thread
* [Bug rtl-optimization/32355] [4.3 Regression] ICE in df_lr_verify_transfer_functions, at df-problems.c:1924
2007-06-15 15:09 [Bug rtl-optimization/32355] New: [4.3 Regression] ICE in df_lr_verify_transfer_functions, at df-problems.c:1924 tbm at cyrius dot com
2007-06-15 15:17 ` [Bug rtl-optimization/32355] " pinskia at gcc dot gnu dot org
2007-06-17 20:13 ` zadeck at naturalbridge dot com
@ 2007-06-18 4:41 ` paolo dot bonzini at lu dot unisi dot ch
2007-06-18 16:47 ` zadeck at gcc dot gnu dot org
` (2 subsequent siblings)
5 siblings, 0 replies; 7+ messages in thread
From: paolo dot bonzini at lu dot unisi dot ch @ 2007-06-18 4:41 UTC (permalink / raw)
To: gcc-bugs
------- Comment #2 from paolo dot bonzini at lu dot unisi dot ch 2007-06-18 04:41 -------
Subject: Re: [4.3 Regression] ICE in df_lr_verify_transfer_functions,
at df-problems.c:1924
> The possible second problem is that something in one of
>
> delete_trivially_dead_insns
> rebuild_jump_labels
> cleanup_cfg
>
> may not work in deferred rescanning mode. This will wait for another
> bug report.
ok, but please file in this report yourself and assign it to me.
Paolo
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32355
^ permalink raw reply [flat|nested] 7+ messages in thread
* [Bug rtl-optimization/32355] [4.3 Regression] ICE in df_lr_verify_transfer_functions, at df-problems.c:1924
2007-06-15 15:09 [Bug rtl-optimization/32355] New: [4.3 Regression] ICE in df_lr_verify_transfer_functions, at df-problems.c:1924 tbm at cyrius dot com
` (2 preceding siblings ...)
2007-06-18 4:41 ` paolo dot bonzini at lu dot unisi dot ch
@ 2007-06-18 16:47 ` zadeck at gcc dot gnu dot org
2007-06-18 16:49 ` zadeck at naturalbridge dot com
2007-06-18 16:50 ` zadeck at naturalbridge dot com
5 siblings, 0 replies; 7+ messages in thread
From: zadeck at gcc dot gnu dot org @ 2007-06-18 16:47 UTC (permalink / raw)
To: gcc-bugs
------- Comment #3 from zadeck at gcc dot gnu dot org 2007-06-18 16:47 -------
Subject: Bug 32355
Author: zadeck
Date: Mon Jun 18 16:47:05 2007
New Revision: 125812
URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=125812
Log:
2007-06-18 Kenneth Zadeck <zadeck@naturalbridge.com>
PR middle-end/32355
* gcse (rest_of_handle_gcse): Add call to df_finish_pass after
cse_main.
* df-problems.c (df_note_bb_compute): Fix dumping info.
2007-06-18 Kenneth Zadeck <zadeck@naturalbridge.com>
* gcc.c-torture/compile/pr32355.c: New testcase.
Added:
trunk/gcc/testsuite/gcc.c-torture/compile/pr32355.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/df-problems.c
trunk/gcc/gcse.c
trunk/gcc/testsuite/ChangeLog
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32355
^ permalink raw reply [flat|nested] 7+ messages in thread
* [Bug rtl-optimization/32355] [4.3 Regression] ICE in df_lr_verify_transfer_functions, at df-problems.c:1924
2007-06-15 15:09 [Bug rtl-optimization/32355] New: [4.3 Regression] ICE in df_lr_verify_transfer_functions, at df-problems.c:1924 tbm at cyrius dot com
` (3 preceding siblings ...)
2007-06-18 16:47 ` zadeck at gcc dot gnu dot org
@ 2007-06-18 16:49 ` zadeck at naturalbridge dot com
2007-06-18 16:50 ` zadeck at naturalbridge dot com
5 siblings, 0 replies; 7+ messages in thread
From: zadeck at naturalbridge dot com @ 2007-06-18 16:49 UTC (permalink / raw)
To: gcc-bugs
------- Comment #4 from zadeck at naturalbridge dot com 2007-06-18 16:48 -------
Subject: Re: [4.3 Regression] ICE in df_lr_verify_transfer_functions,
at df-problems.c:1924
committed as revision 125812
zadeck at naturalbridge dot com wrote:
> ------- Comment #1 from zadeck at naturalbridge dot com 2007-06-17 20:13 -------
> Subject: Re: [4.3 Regression] ICE in df_lr_verify_transfer_functions,
> at df-problems.c:1924
>
> There are possibly two problems here. Fixing the first one fixes this ice.
>
> The first problem is that after a call to cse_main, a call to
> df_finish_pass is needed to get out of deferred rescanning mode and get
> everything up to date.
>
> The possible second problem is that something in one of
>
> delete_trivially_dead_insns
> rebuild_jump_labels
> cleanup_cfg
>
> may not work in deferred rescanning mode. This will wait for another
> bug report.
> It is too hard to debug this without first cleaning up what cse_main did
> and that makes the bug go away.
>
> ok to commit?
>
> Kenny
>
> 2007-06-17 Kenneth Zadeck <zadeck@naturalbridge.com>
>
> PR middle-end/32355
> * gcse (rest_of_handle_gcse): Add call to df_finish_pass after
> cse_main.
> * df-problems.c (df_note_bb_compute): Fix dumping info.
>
> 2007-06-17 Kenneth Zadeck <zadeck@naturalbridge.com>
>
> * gcc.c-torture/compile/pr32355.c: New testcase.
>
> Index: testsuite/gcc.c-torture/compile/pr32355.c
> ===================================================================
> --- testsuite/gcc.c-torture/compile/pr32355.c (revision 0)
> +++ testsuite/gcc.c-torture/compile/pr32355.c (revision 0)
> @@ -0,0 +1,33 @@
> +/* { dg-options "-O3" } */
> +
> +typedef struct
> +{
> +}
> +__sigset_t;
> +typedef struct
> +{
> + char coredump;
> +}
> +EMode;
> +extern EMode Mode;
> +struct sigaction
> +{
> + __sigset_t sa_mask;
> + int sa_flags;
> +};
> +doSignalsSetup (void)
> +{
> + static const int signals[] = {
> + 1, 2 , 3, 4, 6, 8, 11, 13, 14, 15, 10, 12, 17, 7
> + };
> + unsigned int i, sig;
> + struct sigaction sa;
> + for (i = 0; i < sizeof (signals) / sizeof (int); i++)
> + {
> + sig = signals[i];
> + if (Mode.coredump && (sig == 4 || sig == 8))
> + continue;
> + sa.sa_flags = (sig == 17);
> + sigemptyset (&sa.sa_mask);
> + }
> +}
> Index: gcse.c
> ===================================================================
> --- gcse.c (revision 125777)
> +++ gcse.c (working copy)
> @@ -6704,6 +6704,7 @@ rest_of_handle_gcse (void)
> {
> timevar_push (TV_CSE);
> tem2 = cse_main (get_insns (), max_reg_num ());
> + df_finish_pass ();
> purge_all_dead_edges ();
> delete_trivially_dead_insns (get_insns (), max_reg_num ());
> timevar_pop (TV_CSE);
> Index: df-problems.c
> ===================================================================
> --- df-problems.c (revision 125777)
> +++ df-problems.c (working copy)
> @@ -3867,8 +3867,10 @@ df_note_bb_compute (unsigned int bb_inde
> for (def_rec = df_get_artificial_defs (bb_index); *def_rec; def_rec++)
> {
> struct df_ref *def = *def_rec;
> +#ifdef REG_DEAD_DEBUGGING
> if (dump_file)
> fprintf (dump_file, "artificial def %d\n", DF_REF_REGNO (def));
> +#endif
>
> if ((DF_REF_FLAGS (def) & DF_REF_AT_TOP) == 0)
> bitmap_clear_bit (live, DF_REF_REGNO (def));
>
>
>
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32355
^ permalink raw reply [flat|nested] 7+ messages in thread
* [Bug rtl-optimization/32355] [4.3 Regression] ICE in df_lr_verify_transfer_functions, at df-problems.c:1924
2007-06-15 15:09 [Bug rtl-optimization/32355] New: [4.3 Regression] ICE in df_lr_verify_transfer_functions, at df-problems.c:1924 tbm at cyrius dot com
` (4 preceding siblings ...)
2007-06-18 16:49 ` zadeck at naturalbridge dot com
@ 2007-06-18 16:50 ` zadeck at naturalbridge dot com
5 siblings, 0 replies; 7+ messages in thread
From: zadeck at naturalbridge dot com @ 2007-06-18 16:50 UTC (permalink / raw)
To: gcc-bugs
------- Comment #5 from zadeck at naturalbridge dot com 2007-06-18 16:50 -------
fixed,revision 125812
--
zadeck at naturalbridge dot com changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|UNCONFIRMED |RESOLVED
Resolution| |FIXED
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32355
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2007-06-18 16:50 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2007-06-15 15:09 [Bug rtl-optimization/32355] New: [4.3 Regression] ICE in df_lr_verify_transfer_functions, at df-problems.c:1924 tbm at cyrius dot com
2007-06-15 15:17 ` [Bug rtl-optimization/32355] " pinskia at gcc dot gnu dot org
2007-06-17 20:13 ` zadeck at naturalbridge dot com
2007-06-18 4:41 ` paolo dot bonzini at lu dot unisi dot ch
2007-06-18 16:47 ` zadeck at gcc dot gnu dot org
2007-06-18 16:49 ` zadeck at naturalbridge dot com
2007-06-18 16:50 ` zadeck at naturalbridge dot com
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).