[Bug rtl-optimization/94148] The DF framework uses bb->aux, which is for passes only

2020-07-13 Thread segher at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94148

Segher Boessenkool  changed:

   What|Removed |Added

 Resolution|--- |FIXED
 Status|ASSIGNED|RESOLVED

--- Comment #7 from Segher Boessenkool  ---
It was fixed on trunk before GCC 10 branched off, actually.

I'm not planning on backporting it further, since the issue is ancient
(2010) and we survived all that time.

[Bug rtl-optimization/94148] The DF framework uses bb->aux, which is for passes only

2020-05-07 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94148

Jakub Jelinek  changed:

   What|Removed |Added

   Target Milestone|10.0|10.2

--- Comment #6 from Jakub Jelinek  ---
GCC 10.1 has been released.

[Bug rtl-optimization/94148] The DF framework uses bb->aux, which is for passes only

2020-03-13 Thread segher at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94148

--- Comment #5 from Segher Boessenkool  ---
commit 5c7e6d4bdf879b437b43037e10453275acabf521
Author: Segher Boessenkool 
Date:   Thu Mar 12 07:12:50 2020 +

df: Don't abuse bb->aux (PR94148, PR94042)

The df dataflow solvers use the aux field in the basic_block struct,
although that is reserved for any use by passes.  And not only that,
it is required that you set all such fields to NULL before calling
the solvers, or you quietly get wrong results.

This changes the solvers to use a local array for last_change_age
instead, just like it already had a local array for last_visit_age.

PR rtl-optimization/94148
PR rtl-optimization/94042
* df-core.c (BB_LAST_CHANGE_AGE): Delete.
(df_worklist_propagate_forward): New parameter last_change_age, use
that instead of bb->aux.
(df_worklist_propagate_backward): Ditto.
(df_worklist_dataflow_doublequeue): Use a local array last_change_age.

[Bug rtl-optimization/94148] The DF framework uses bb->aux, which is for passes only

2020-03-13 Thread segher at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94148

--- Comment #4 from Segher Boessenkool  ---
Fixed on trunk so far.

[Bug rtl-optimization/94148] The DF framework uses bb->aux, which is for passes only

2020-03-13 Thread segher at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94148

--- Comment #3 from Segher Boessenkool  ---
Fixed on trunk so far.

[Bug rtl-optimization/94148] The DF framework uses bb->aux, which is for passes only

2020-03-12 Thread segher at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94148

Segher Boessenkool  changed:

   What|Removed |Added

 Status|NEW |ASSIGNED
   Assignee|unassigned at gcc dot gnu.org  |segher at gcc dot 
gnu.org

--- Comment #2 from Segher Boessenkool  ---
Yes, and it assumes it stays cleared for any new blocks, and some more
subtleties.

I have a patch.

[Bug rtl-optimization/94148] The DF framework uses bb->aux, which is for passes only

2020-03-12 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94148

Richard Biener  changed:

   What|Removed |Added

 Ever confirmed|0   |1
 Status|UNCONFIRMED |NEW
   Last reconfirmed||2020-03-12

--- Comment #1 from Richard Biener  ---
In fact it even assumes it is cleared on entry!

[Bug rtl-optimization/94148] The DF framework uses bb->aux, which is for passes only

2020-03-11 Thread segher at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94148

Segher Boessenkool  changed:

   What|Removed |Added

 Blocks||94042
   Target Milestone|--- |10.0


Referenced Bugs:

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94042
[Bug 94042] [10 Regression] Bootstrap fails on ppc-linux-gnu