[llvm-dev] [RFC] Adding target-specific overrides for Indirect Call Promotion (ICP)
Teresa Johnson via llvm-dev
llvm-dev at lists.llvm.org
Sat Aug 24 08:22:11 PDT 2019
On Thu, Aug 22, 2019 at 8:34 AM Wael Yehia <wyehia at ca.ibm.com> wrote:
> We see improved performance on the PowerPC platform by increasing the
> aggressiveness of Indirect Call Promotion (ICP).
> In particular, lowering the promotion threshold and increasing the maximum
> number of promotions helps.
> The following command line options (default values shown) control some of
> the ICP parameters:
> We would like to change their defaults to a target specific value.
The above are defaults - what values are you finding are best on PowerPC?
I'd be interested in trying the values you found to be optimal there again
on e.g. x86 to evaluate their effectiveness. We've done various experiments
and tuning of these values, but curious to try.
> I have few questions:
> 1. Is anyone else interested in having target specific default values for
> the above options?
It if makes sense from an architectural standpoint - i.e. are indirect
calls much more expensive in PowerPC than say x86?
> 2. Is anyone against making the defaults for the above options target
> 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:
> - teach `TargetTransformInfo` (TTI) about the above 3 values (basically
> add 3 integer-returning query functions).
> - make `PGOinstrumentationUse`, `PGOIndirectCallPromotion`, and
> `ModuleSummaryIndexAnalysis` passes require the `TargetIRAnalysis` pass so
> that they can access the TTI instance, and pass it to
> The legacy PM passes would be changed symmetrically.
> Thank you.
> Wael Yehia
> Compiler Development
> IBM Canada Lab
> wyehia at ca.ibm.com
Teresa Johnson | Software Engineer | tejohnson at google.com |
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the llvm-dev