This is the mail archive of the gcc@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: Incorrect DFA scheduling of output dependency.


On Tue, 2004-12-07 at 14:14 +0100, Steven Bosscher wrote:

> > 
> > Can someone explain please why we have loop notes in the middle of
> > a basic block?
It's historical.  I think it's relatively uncommon.

> 
> In fact maybe someone with a lot of RTL-fu should explain what this
> comment in sched-deps is supposed to mean to begin with:
> 
>   /* If there is a {LOOP,EHREGION}_{BEG,END} insn note in the middle of a basic
>      block, then we must be sure that no instructions are scheduled across it.
>      Otherwise, the reg_n_refs info (which depends on loop_depth) would
>      become incorrect.  */
> 
> I read this and I had never heard of reg_n_refs before, so:
> 
> $ grep -w -r reg_n_refs *
> FSFChangeLog.11:        * combine.c (try_combine): Clear reg_n_refs if i2dest is not
> haifa-sched.c:   be correct.  Namely: reg_n_refs, reg_n_sets, reg_n_deaths,
> sched-deps.c:     Otherwise, the reg_n_refs info (which depends on loop_depth) would
> 
> So even in the ChangeLogs there is only one reference to reg_n_regs.
> 
> Is this bitrot?
reg_n_refs got moved into the reg_info_def structure along with most of
the other information related to registers.  The comment needs updating.
jeff



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