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: DFA scheduler buglet


 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


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