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: regrename: don't update REG_DEAD notes


On 06/16/2011 05:25 PM, Hans-Peter Nilsson wrote:
> On Thu, 16 Jun 2011, Bernd Schmidt wrote:
>> We're updating REG_DEAD notes in regrename.c, but it seems this is for
>> historical reasons only. As far as I can tell, every pass that needs
>> such notes recomputes them with df_note_add_problem/df_analyze, and the
>> following patch bootstrapped and tested successfully on i686-linux (some
>> random libmudflap failures mentioned previously), with the following
>> change to ensure it's tested:
>>
>> +++ gcc/config/i386/i386.c	(working copy)
> 
> (Not a dbr target...)
> 
>> Ok?
> 
> NO!  They're still used by reorg.c+resource.c

Well, that's reorg's problem. In between regrename and reorg.c, we have
a number of opportunities, such as pass_sched2, which use

  df_set_flags (DF_LR_RUN_DCE);
  df_note_add_problem ();

to recompute notes. If reorg.c wants accurate notes it should do the
same, especially since the scheduler (and presumably several other
passes) already makes no effort to update such notes. It seems this was
removed with the df merge:

        * sched-rgn.c (check_dead_notes1, deaths_in_region): Removed.
        (init_regions, add_block1): Removed last of note counting code.


Bernd


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