This is the mail archive of the
gcc-help@gcc.gnu.org
mailing list for the GCC project.
reordering-of-passes
- From: "P. Pavan Kumar" <pavankumar at cse dot iitb dot ac dot in>
- To: gcc-help at gcc dot gnu dot org
- Cc: dnovillo at redhat dot com
- Date: Tue, 24 Apr 2007 22:40:40 +0530 (IST)
- Subject: reordering-of-passes
- Reply-to: pavankumar at cse dot iitb dot ac dot in
Hi,
I have change the sequence order of basic block reorder
pass(pass_reorder_blocks) and put it after the scheduling pass(
pass_sched2) in the passes.c file. I successfully build the gcc version
4-1.1.
Original sequence
------------------
NEXT_PASS (pass_if_after_reload);
NEXT_PASS (pass_regrename);
NEXT_PASS (pass_reorder_blocks);
NEXT_PASS (pass_branch_target_load_optimize);
NEXT_PASS (pass_leaf_regs);
NEXT_PASS (pass_sched2);
After changing
-----------------
NEXT_PASS (pass_if_after_reload);
NEXT_PASS (pass_regrename);
NEXT_PASS (pass_branch_target_load_optimize);
NEXT_PASS (pass_leaf_regs);
NEXT_PASS
NEXT_PASS (pass_reorder_blocks);
I had calculated stalls occured for a qiucksort program by using the
option "-fsched-verbose=6" at level -O2 for the target -march=pentium
before and after changing sequence order of passes. But the stalls are
reduced for the one which i changed the sequence.
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
Please help me.
Thanks in advance
Pavan,
Home: http://www.cse.iitb.ac.in/~pavankumar