This is the mail archive of the gcc-help@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: reordering-of-passes


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


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