reordering-of-passes
Alexander Monakov
monoid@fds-net.ru
Tue Apr 24 22:14:00 GMT 2007
Hi,
> My doubt is why stalls are reduced ? Is basic block reordering
> optimization pass is considered while calculating stalls during
> instruction scheduling? because i placed pass_reorder_blocks after the
> pass_sched2
Second scheduler is run on extended basic blocks (EBBs). An EBB is a
sequence of basic blocks with single entry (at the head of the first block
of the sequence) and such that every its basic block except the first is a
fallthrough successor of its predecessor. Thus, my speculation is that
pass_reorded_blocks forms larger EBBs, and therefore scheduler sees stalls
that otherwise would be hidden from it, because the corresponding
dependency would be between instructions in different EBBs. You can
verify this by inspecting your scheduler dumps (AFAIR, number of basic
blocks in EBB is printed in the beginning of each scheduler invocation,
just before dependencies table).
Hope that helps
--
Alexander Monakov
More information about the Gcc-help
mailing list