[llvm-commits] Group -time-passes report by pass ID instead of pass instance

Jakob Stoklund Olesen stoklund at 2pi.dk
Fri Nov 30 13:30:50 PST 2012


Some passes appear multiple times in the pass manager pipeline, and -time-passes currently counts each instance independently:

===-------------------------------------------------------------------------===
                      ... Pass execution timing report ...
===-------------------------------------------------------------------------===
  Total Execution Time: 4.9829 seconds (4.9810 wall clock)

   ---User Time---   --System Time--   --User+System--   ---Wall Time---  --- Name ---
   0.8319 ( 17.0%)   0.0018 (  1.9%)   0.8336 ( 16.7%)   0.8335 ( 16.7%)  Global Value Numbering
   0.4766 (  9.8%)   0.0041 (  4.4%)   0.4808 (  9.6%)   0.4807 (  9.7%)  Function Integration/Inlining
   0.3095 (  6.3%)   0.0006 (  0.7%)   0.3102 (  6.2%)   0.3100 (  6.2%)  Combine redundant instructions
   0.2913 (  6.0%)   0.0007 (  0.8%)   0.2921 (  5.9%)   0.2920 (  5.9%)  Combine redundant instructions
   0.2698 (  5.5%)   0.0061 (  6.5%)   0.2759 (  5.5%)   0.2759 (  5.5%)  Value Propagation
   0.2683 (  5.5%)   0.0018 (  1.8%)   0.2701 (  5.4%)   0.2701 (  5.4%)  Value Propagation
   0.2320 (  4.7%)   0.0006 (  0.6%)   0.2325 (  4.7%)   0.2324 (  4.7%)  Combine redundant instructions
   0.2288 (  4.7%)   0.0008 (  0.8%)   0.2296 (  4.6%)   0.2296 (  4.6%)  Jump Threading
   0.2075 (  4.2%)   0.0006 (  0.7%)   0.2081 (  4.2%)   0.2081 (  4.2%)  Combine redundant instructions
   0.1866 (  3.8%)   0.0007 (  0.7%)   0.1873 (  3.8%)   0.1872 (  3.8%)  Jump Threading
   0.1486 (  3.0%)   0.0013 (  1.4%)   0.1500 (  3.0%)   0.1498 (  3.0%)  Induction Variable Simplification
   0.1385 (  2.8%)   0.0010 (  1.1%)   0.1395 (  2.8%)   0.1394 (  2.8%)  Combine redundant instructions
   0.0901 (  1.8%)   0.0115 ( 12.1%)   0.1016 (  2.0%)   0.1016 (  2.0%)  Natural Loop Information
   0.0934 (  1.9%)   0.0019 (  2.0%)   0.0953 (  1.9%)   0.0953 (  1.9%)  Bitcode Writer
   0.0752 (  1.5%)   0.0005 (  0.5%)   0.0757 (  1.5%)   0.0757 (  1.5%)  Early CSE
   0.0735 (  1.5%)   0.0007 (  0.7%)   0.0742 (  1.5%)   0.0741 (  1.5%)  SROA

The attached patch aggregates pass timers by pass ID instead:

===-------------------------------------------------------------------------===
                      ... Pass execution timing report ...
===-------------------------------------------------------------------------===
  Total Execution Time: 5.0294 seconds (5.0278 wall clock)

   ---User Time---   --System Time--   --User+System--   ---Wall Time---  --- Name ---
   1.1902 ( 24.1%)   0.0036 (  3.8%)   1.1938 ( 23.7%)   1.1932 ( 23.7%)  Combine redundant instructions
   0.8457 ( 17.1%)   0.0018 (  1.9%)   0.8475 ( 16.9%)   0.8474 ( 16.9%)  Global Value Numbering
   0.5450 ( 11.0%)   0.0077 (  8.1%)   0.5528 ( 11.0%)   0.5527 ( 11.0%)  Value Propagation
   0.4751 (  9.6%)   0.0039 (  4.1%)   0.4790 (  9.5%)   0.4790 (  9.5%)  Function Integration/Inlining
   0.4210 (  8.5%)   0.0019 (  2.0%)   0.4229 (  8.4%)   0.4227 (  8.4%)  Jump Threading
   0.1513 (  3.1%)   0.0013 (  1.4%)   0.1526 (  3.0%)   0.1524 (  3.0%)  Induction Variable Simplification
   0.1378 (  2.8%)   0.0025 (  2.7%)   0.1403 (  2.8%)   0.1402 (  2.8%)  Simplify the CFG
   0.1256 (  2.5%)   0.0100 ( 10.5%)   0.1356 (  2.7%)   0.1356 (  2.7%)  Dominator Tree Construction
   0.1133 (  2.3%)   0.0044 (  4.6%)   0.1176 (  2.3%)   0.1177 (  2.3%)  Lazy Value Information Analysis
   0.1044 (  2.1%)   0.0011 (  1.1%)   0.1054 (  2.1%)   0.1053 (  2.1%)  Early CSE
   0.0905 (  1.8%)   0.0116 ( 12.1%)   0.1021 (  2.0%)   0.1021 (  2.0%)  Natural Loop Information
   0.0959 (  1.9%)   0.0019 (  2.0%)   0.0978 (  1.9%)   0.0978 (  1.9%)  Bitcode Writer
   0.0923 (  1.9%)   0.0011 (  1.1%)   0.0934 (  1.9%)   0.0933 (  1.9%)  SROA

I think this form of reporting is better because it reveals that InstCombine really is more expensive than GVN.

/jakob

-------------- next part --------------
A non-text attachment was scrubbed...
Name: passid.patch
Type: application/octet-stream
Size: 1093 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20121130/432d9214/attachment.obj>


More information about the llvm-commits mailing list