Re: Suggestion for a fix to Bug middle-end/20177

2005-03-23 Thread James E Wilson
Paul Schlie wrote: Steven Bosscher wrote: IIRC these notes are for CCO, and you have to move the CC setter and user together. - unless it can be guaranteed that the particular setter's cc, will be preserved (i.e. not corrupted by successive operations) prior to it's ultimate use; ... Steven was

Re: Suggestion for a fix to Bug middle-end/20177

2005-03-23 Thread James E Wilson
Mostafa Hagog wrote: Thanks for the information, what we were doing was to call update_life_info_in_dirty_blocks, but for some reason this wasn't sufficient to mark a register dead (REG_DEAD note) when the register was defined in a predecessor block and dies in the dirty block; we had to call updat

Re: Suggestion for a fix to Bug middle-end/20177

2005-03-18 Thread Paul Schlie
> Steven Bosscher wrote: >> Mostafa Hagog <[EMAIL PROTECTED]> wrote: >> This is interesting, so there could be cases were want to copy CC >> register when doing SMS. what happens if we want to move the set >> of a CC to another iteration of the loop ? or the use of the CC ? but >> usually this is

Re: Suggestion for a fix to Bug middle-end/20177

2005-03-18 Thread Mostafa Hagog
James E Wilson <[EMAIL PROTECTED]> wrote on 18/03/2005 07:43:55: > > You either have to keep all REG_NOTES up to date, or call code that will > recompute them. You can recompute REG_DEAD/REG_UNUSED notes by calling > back into flow. This is presumably what happens when you mark the block >

Re: Suggestion for a fix to Bug middle-end/20177

2005-03-17 Thread James E Wilson
Mostafa Hagog wrote: The question is: what is the correct fix for the longer term ? is it enough to mark the SMSed block dirty? or do we need also to keep the REG_DEAD correct in each basic-block separately? You either have to keep all REG_NOTES up to date, or call code that will recompute them.

Re: Suggestion for a fix to Bug middle-end/20177

2005-03-16 Thread Mostafa Hagog
For some reason the REG_DEAD is not the cause of the failure it is the fact that the SMSed basic-block wasn't mark dirty for update_life_info that come after it. doing so fixes the failure even with REG_DEAD is still in that insn. The REG_DEAD note is correct when we look inter-block so maybe

Re: Suggestion for a fix to Bug middle-end/20177

2005-03-16 Thread E. Weddington
Richard Kenner wrote: That's one of the reasons why very few (any?) machines use CC0 anymore. IIUC, according to there are 12 targets that use cc0, out of a list of 32 targets. Eric

Re: Suggestion for a fix to Bug middle-end/20177

2005-03-16 Thread Richard Kenner
This is interesting, so there could be cases were want to copy CC register when doing SMS. what happens if we want to move the set of a CC to another iteration of the loop ? or the use of the CC ? but usually this is couldn't happen in a simple loop, right? the use of CC is ev

Re: Suggestion for a fix to Bug middle-end/20177

2005-03-16 Thread Steven Bosscher
On Mar 16, 2005 05:11 PM, Mostafa Hagog <[EMAIL PROTECTED]> wrote: > > > > > [EMAIL PROTECTED] (Richard Kenner) wrote on 16/03/2005 17:27:59: > > > REG_NOTE (NONNEG) > > REG_NOTE (NO_CONFLICT) > > REG_NOTE (UNUSED) > >mustn't be copied > >describe a fact about othe

Re: Suggestion for a fix to Bug middle-end/20177

2005-03-16 Thread Mostafa Hagog
[EMAIL PROTECTED] (Richard Kenner) wrote on 16/03/2005 17:27:59: > REG_NOTE (NONNEG) > REG_NOTE (NO_CONFLICT) > REG_NOTE (UNUSED) >mustn't be copied >describe a fact about other instructions so this >may change if copied. > > Tricky. Often UNUSED means that

Re: Suggestion for a fix to Bug middle-end/20177

2005-03-16 Thread Richard Kenner
REG_NOTE (NONNEG) REG_NOTE (NO_CONFLICT) REG_NOTE (UNUSED) mustn't be copied describe a fact about other instructions so this may change if copied. Tricky. Often UNUSED means that we're allocating a psuedo for some temporary which we know isn't used. REG_NOT