search for: preinline

Displaying 12 results from an estimated 12 matches for "preinline".

2016 Dec 19
1
Reining in profile instrumentation
...k = anX.getK(); or an alternative mechanism. The GCC compiler has the options '-finstrument-functions-exclude-file-list' and '-finstrument-functions-exclude-function-list' for this purpose, but these are not available in CLang/LLVM. I will experiment with the '-mllvm -disable-preinline' option, thanks for telling me about this too. All the best, MartinO -----Original Message----- From: vsk at apple.com [mailto:vsk at apple.com] Sent: 13 December 2016 23:12 To: Martin J. O'Riordan Cc: LLVM Developers Subject: Re: [llvm-dev] Reining in profile instrumentation >...
2016 Dec 13
0
Reining in profile instrumentation
...ck {1, 1, 1}. That said, I don't know what kinds of issues this would cause in practice. I'd really like to hear about how the performance of your optimized application changes when you turn pre-inlining on during the instrumentation step. You can experiment with this with -mllvm -disable-preinline. > My question is whether there are any mechanisms in LLVM to control what functions get instrumented; for instance ‘#pragma’s that can be added to the code, especially headers, that can be used to disable the instrumentation of large groups of functions. Or an option to remove the instrumen...
2019 Sep 12
6
PGO is ineffective for Rust - but why?
...n even suffers slightly. Which is suprising because for C++ code using Clang's version of IR-level instrumentation & PGO brings signifcant gains (up to 5-10% from what I've seen in benchmarks for Firefox). One thing we noticed early on is that disabling the pre-inlining pass (`-disable-preinline`) seems to consistently improve the situation for Rust code. Doing that we sometimes see performance wins of almost 1% over not using PGO. This again is very different to C++ where disabling this pass causes dramatic performance loses for the Firefox benchmarks. And 1% performance improvement is st...
2015 Aug 10
3
RFC: PGO Late instrumentation for LLVM
...> beginning of PassManagerBuilder::populateModulePassManager(), namely > >>> PreProfileInlinerPass and PGOLateInstrumentationPass. > >>> > >>> > >>> 4.1 Pre-inline pass: > >>> > >>> It is controlled by back-end option "-preinline" and > >>> "-disable-preinline". If the user specifies any llvm option of > >>> "-fprofile-late-instr-{generate|use}, option "-mllvm -preinline" will > be > >>> automatically inserted in the driver.. To disable the pre-inliner whe...
2015 Aug 08
3
RFC: PGO Late instrumentation for LLVM
...is requires a slight profile format change. In our prototype implementation, two new passes are added in the beginning of PassManagerBuilder::populateModulePassManager(), namely PreProfileInlinerPass and PGOLateInstrumentationPass. 4.1 Pre-inline pass: It is controlled by back-end option "-preinline" and "-disable-preinline". If the user specifies any llvm option of "-fprofile-late-instr-{generate|use}, option "-mllvm -preinline" will be automatically inserted in the driver.. To disable the pre-inliner when late instrumentation is enabled, use option "-mllvm...
2015 Aug 08
2
RFC: PGO Late instrumentation for LLVM
...e implementation, two new passes are added in the >> beginning of PassManagerBuilder::populateModulePassManager(), namely >> PreProfileInlinerPass and PGOLateInstrumentationPass. >> >> >> 4.1 Pre-inline pass: >> >> It is controlled by back-end option "-preinline" and >> "-disable-preinline". If the user specifies any llvm option of >> "-fprofile-late-instr-{generate|use}, option "-mllvm -preinline" will be >> automatically inserted in the driver.. To disable the pre-inliner when late >> instrumentation...
2019 Sep 12
4
PGO is ineffective for Rust - but why?
...or C++ code >> using Clang's version of IR-level instrumentation & PGO brings >> signifcant gains (up to 5-10% from what I've seen in >> benchmarks for Firefox). >> >> One thing we noticed early on is that disabling the >> pre-inlining pass (`-disable-preinline`) seems to consistently >> improve the situation for Rust code. Doing that we sometimes >> see performance wins of almost 1% over not using PGO. This >> again is very different to C++ where disabling this pass >> causes dramatic performance loses for the Firefox benchmarks....
2019 Sep 16
2
PGO is ineffective for Rust - but why?
...n of IR-level instrumentation & PGO brings > >>> signifcant gains (up to 5-10% from what I've seen in > >>> benchmarks for Firefox). > >>> > >>> One thing we noticed early on is that disabling the > >>> pre-inlining pass (`-disable-preinline`) seems to consistently > >>> improve the situation for Rust code. Doing that we sometimes > >>> see performance wins of almost 1% over not using PGO. This > >>> again is very different to C++ where disabling this pass > >>> causes dramatic performanc...
2019 Sep 16
2
PGO is ineffective for Rust - but why?
...n of IR-level instrumentation & PGO brings > >>> signifcant gains (up to 5-10% from what I've seen in > >>> benchmarks for Firefox). > >>> > >>> One thing we noticed early on is that disabling the > >>> pre-inlining pass (`-disable-preinline`) seems to consistently > >>> improve the situation for Rust code. Doing that we sometimes > >>> see performance wins of almost 1% over not using PGO. This > >>> again is very different to C++ where disabling this pass > >>> causes dramatic performanc...
2016 Dec 13
2
Reining in profile instrumentation
When either '-pg' or '-finstrument-functions' is used, the compiler inserts the appropriate profiling hooks. This happens prior to inlining, so the hooks remain in place. Normally this is fine, but with C++ and the heavy use of inline functions and templates, there can be a vast number of trivial functions that are normally optimised away; but with the instrumentation hooks
2019 Sep 17
2
PGO is ineffective for Rust - but why?
...s > >> >>> signifcant gains (up to 5-10% from what I've seen in > >> >>> benchmarks for Firefox). > >> >>> > >> >>> One thing we noticed early on is that disabling the > >> >>> pre-inlining pass (`-disable-preinline`) seems to consistently > >> >>> improve the situation for Rust code. Doing that we sometimes > >> >>> see performance wins of almost 1% over not using PGO. This > >> >>> again is very different to C++ where disabling this pass > >> &gt...
2019 Sep 24
3
PGO is ineffective for Rust - but why?
...ant gains (up to 5-10% from what I've seen in >> > >> >>> benchmarks for Firefox). >> > >> >>> >> > >> >>> One thing we noticed early on is that disabling the >> > >> >>> pre-inlining pass (`-disable-preinline`) seems to consistently >> > >> >>> improve the situation for Rust code. Doing that we sometimes >> > >> >>> see performance wins of almost 1% over not using PGO. This >> > >> >>> again is very different to C++ where disabling...