This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [dataflow] PATCH removal of more of flow.c.


Paolo Bonzini wrote:
>> Index: struct-equiv.c
>> ===================================================================
>> --- struct-equiv.c    (revision 115422)
>> +++ struct-equiv.c    (working copy)
>> @@ -989,10 +989,6 @@ bool
>>  struct_equiv_init (int mode, struct equiv_info *info)
>>  {
>>    if ((info->x_block->flags | info->y_block->flags) & BB_DIRTY)
>> -    update_life_info_in_dirty_blocks (UPDATE_LIFE_GLOBAL_RM_NOTES,
>> -                      (PROP_DEATH_NOTES
>> -                       | ((mode & CLEANUP_POST_REGSTACK)
>> -                      ? PROP_POST_REGSTACK : 0)));
>>    if (!REG_SET_EQUAL_P (DF_LR_OUT (rtl_df, info->x_block),
>
I will fix this, as far as I could determine, this was dead code anyway.
If this is resurrected it will need create it's own copy of df and
destroy it when it is finished since it cannot rely on persistent
dataflow info any more.
>
> The first if statement is not removed.
>
> Also, it may be worthwhile to put a comment in config/sh/sh.c that its
> machine dependent reorg pass is looking at LOG_LINKS even though they
> are all NULL.
>
It is hard to see how this could be correct unless the uses are called
immediately after combine or scheduling since no other passes even try
to keep this up to date.

The only places that I saw that used them were combine, which now rolls
their own and
the schedulers which have always rolled their own.

> <must-write-this-down-somewhere-mode>
> After this will be cleaned up, LOG_LINKS will be referenced only by
> - combine.c
> - find_single_use in recog.c (whose sole caller is combine.c)
I will move this in the next cleanup.
> - the schedulers (which store the dependencies there) including a
> target hook in ia64.c.
>
> The cleanup sequence then is like this:
> - cleanup the now dead code in the SH back-end.
I have nightmares about most of the backend, the sh backend in particular.
>
> - TARGET_SCHED_DFA_NEW_CYCLE grows a new parameter, currently equal to
> LOG_LINKS (insn).
> - find_single_use is moved from recog.c to combine.c
> - LOG_LINKS becomes two side array, local to combine.c and the
> scheduler respectively, so that we can save a word in every insn.
I had seen this and was going to mention this to Mitchell for one of his
band of roving space police to handle.  However if you are volunteering,
feel free to do this cleanup.  I would be grateful.

> </must-write-this-down-somewhere-mode>
>
> Congratulations, look forward to see the last patch!
>
Flow is not going quietly.  The last patch has been really hard to track
down the last side effects.  My best people are fighting an entrenched
battle even as we speak.

> Paolo
thanks,

Kenny


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]