[Bug rtl-optimization/32355] [4.3 Regression] ICE in df_lr_verify_transfer_functions, at df-problems.c:1924

2007-06-15 Thread pinskia at gcc dot gnu dot org


-- 

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



[Bug rtl-optimization/32355] [4.3 Regression] ICE in df_lr_verify_transfer_functions, at df-problems.c:1924

2007-06-17 Thread zadeck at naturalbridge dot com


--- 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 <[EMAIL PROTECTED]>

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 <[EMAIL PROTECTED]>

* 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



[Bug rtl-optimization/32355] [4.3 Regression] ICE in df_lr_verify_transfer_functions, at df-problems.c:1924

2007-06-17 Thread paolo dot bonzini at lu dot unisi dot ch


--- 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



[Bug rtl-optimization/32355] [4.3 Regression] ICE in df_lr_verify_transfer_functions, at df-problems.c:1924

2007-06-18 Thread zadeck at gcc dot gnu dot org


--- 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 <[EMAIL PROTECTED]>

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 <[EMAIL PROTECTED]>

* 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



[Bug rtl-optimization/32355] [4.3 Regression] ICE in df_lr_verify_transfer_functions, at df-problems.c:1924

2007-06-18 Thread zadeck at naturalbridge dot com


--- 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 <[EMAIL PROTECTED]>
>
> 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 <[EMAIL PROTECTED]>
>
> * 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



[Bug rtl-optimization/32355] [4.3 Regression] ICE in df_lr_verify_transfer_functions, at df-problems.c:1924

2007-06-18 Thread zadeck at naturalbridge dot com


--- 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