<font face="Verdana,Arial,Helvetica,sans-serif" size="2"><div><div><div style="box-sizing: inherit;"><font face="Verdana, Arial, Helvetica, sans-serif" size="2" style="box-sizing: inherit;">Hi,</font></div><div style="box-sizing: inherit;"><font face="Verdana, Arial, Helvetica, sans-serif" size="2" style="box-sizing: inherit;">We see improved performance on the PowerPC platform by increasing the aggressiveness of Indirect Call Promotion (ICP).</font></div><div style="box-sizing: inherit;"><font face="Verdana, Arial, Helvetica, sans-serif" size="2" style="box-sizing: inherit;">In particular, lowering the promotion threshold and increasing the maximum number of promotions helps.</font></div><div style="box-sizing: inherit;"><font face="Verdana, Arial, Helvetica, sans-serif" size="2" style="box-sizing: inherit;">The following command line options (default values shown) control some of the ICP parameters:</font></div><div style="box-sizing: inherit;"><font face="Verdana, Arial, Helvetica, sans-serif" size="2" style="box-sizing: inherit;"> -icp-max-annotations=3</font></div><div style="box-sizing: inherit;"><font face="Verdana, Arial, Helvetica, sans-serif" size="2" style="box-sizing: inherit;"> -icp-max-prom=3</font></div><div style="box-sizing: inherit;"><font face="Verdana, Arial, Helvetica, sans-serif" size="2" style="box-sizing: inherit;"> -icp-remaining-percent-threshold=30</font></div><div style="box-sizing: inherit;"><font face="Verdana, Arial, Helvetica, sans-serif" size="2" style="box-sizing: inherit;">We would like to change their defaults to a target specific value.</font></div><div style="box-sizing: inherit;"><font face="Verdana, Arial, Helvetica, sans-serif" size="2" style="box-sizing: inherit;"> </font></div><div style="box-sizing: inherit;"><font face="Verdana, Arial, Helvetica, sans-serif" size="2" style="box-sizing: inherit;">I have few questions:</font></div><div style="box-sizing: inherit;"><font face="Verdana, Arial, Helvetica, sans-serif" size="2" style="box-sizing: inherit;"> 1. Is anyone else interested in having target specific default values for the above options?</font></div><div style="box-sizing: inherit;"><font face="Verdana, Arial, Helvetica, sans-serif" size="2" style="box-sizing: inherit;"> 2. Is anyone against making the defaults for the above options target dependent?</font></div><div style="box-sizing: inherit;"><font face="Verdana, Arial, Helvetica, sans-serif" size="2" style="box-sizing: inherit;"> 3. If I were to make the default values target dependent (but allow user specified option to trump the defaults) the question is whether the following is the best and simplest way to do it:</font></div><div style="box-sizing: inherit;"><font face="Verdana, Arial, Helvetica, sans-serif" size="2" style="box-sizing: inherit;"> - teach `TargetTransformInfo` (TTI) about the above 3 values (basically add 3 integer-returning query functions).</font></div><div style="box-sizing: inherit;"><font face="Verdana, Arial, Helvetica, sans-serif" size="2" style="box-sizing: inherit;"> - make `PGOinstrumentationUse`, `PGOIndirectCallPromotion`, and `ModuleSummaryIndexAnalysis` passes require the `TargetIRAnalysis` pass so that they can access the TTI instance, and pass it to `ICallPromotionAnalysis`.</font></div><div style="box-sizing: inherit;"><font face="Verdana, Arial, Helvetica, sans-serif" size="2" style="box-sizing: inherit;"> The legacy PM passes would be changed symmetrically.</font></div><div style="box-sizing: inherit;"><font face="Verdana, Arial, Helvetica, sans-serif" size="2" style="box-sizing: inherit;"><br style="box-sizing: inherit;"></font></div><div style="box-sizing: inherit;"><font face="Verdana, Arial, Helvetica, sans-serif" size="2" style="box-sizing: inherit;">Thank you.</font></div></div><div><br></div>Wael Yehia<br>Compiler Development<br>IBM Canada Lab<br><a href="mailto:wyehia@ca.ibm.com">wyehia@ca.ibm.com</a></div></font><BR>