This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
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