This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: DFA scheduler buglet
- From: law at redhat dot com
- To: Vladimir Makarov <vmakarov at redhat dot com>
- Cc: gcc at gcc dot gnu dot org
- Date: Wed, 17 Apr 2002 10:59:41 -0600
- Subject: Re: DFA scheduler buglet
- Reply-to: law at redhat dot com
In message <3CBD9CFD.42DFC400@redhat.com>, Vladimir Makarov writes:
> Jeff, I've looked at the code and not found the path on which the
> state is changed but the insn is not issued. The state is changed only
> if state_transition returns negative value. Zero means that the insn
> can be issued on the current cycle but not in the current state.
> Typical example is IA64, when we've just started the new cycle and want
> to issue an integer insn. Because all templates in IA64 start with M (a
> memory insn) or B (a branch), we still can issue the integer insn if we
> issue nop.m the first. The old scheduler can not distinguish such
> situations, zero cost means that the insn could be issued right now.
>
> Although I am agree that the code is a bit complicated and we could
> simplify it by usage of the temporary state. We could improve it after
> merging the branch.
Look more closely. In particular consider the case where state_transition
returns a negative value, but can_schedule_ready_p returns a zero value.
jeff