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