search for: mwoerister

Displaying 5 results from an estimated 5 matches for "mwoerister".

Did you mean: woerister
2019 Sep 24
3
PGO is ineffective for Rust - but why?
...of input args and object files to the linker. > > Regarding gnu ld, it is possible that it triggers another bug relating to start section and garbage collection. A previous bug is here: https://bugs.llvm.org/show_bug.cgi?id=25286 > > On Tue, Sep 17, 2019 at 8:39 AM Michael Woerister <mwoerister at mozilla.com> wrote: >> >> Interestingly, a C version of the same test program [1] compiled with >> Clang 8 does not have any problems with GNU ld: The `__llvm_prf_data` >> section is the same size for all three linkers. It must be something >> specific to the Rus...
2019 Sep 17
2
PGO is ineffective for Rust - but why?
...The `__llvm_prf_data` section is the same size for all three linkers. It must be something specific to the Rust compiler that's going wrong here. [1] https://github.com/michaelwoerister/rust-pgo-test-programs/tree/master/cpp_branch_weights On Tue, Sep 17, 2019 at 3:26 PM Michael Woerister <mwoerister at mozilla.com> wrote: > > > Can you clarify if performance difference is caused by using different linkers at instrumentation build? > > Yes, good observation! Whether the bug occurs depends only on the > linker used for creating the instrumented binary. The linker used > d...
2019 Sep 16
2
PGO is ineffective for Rust - but why?
...d? I know GNU ld does "work" with LLVM's gold plugin, but it's an untested combination and not recommended. I wouldn't be surprised if there were some issues around it not passing necessary info to the gold plugin. Teresa On Mon, Sep 16, 2019 at 8:41 AM Michael Woerister <mwoerister at mozilla.com> wrote: > So one interesting observation has already come out of this: I > confirmed that `rustc` indeed uses `-ffunction-sections` and > `-fdata-sections` on all platforms except for macOS. When trying out > different linkers for a small test case [1], however, I fou...
2019 Sep 16
2
PGO is ineffective for Rust - but why?
Can you clarify if performance difference is caused by using different linkers at instrumentation build? If that is the case, try dump the sections of the resulting binary and compare __llvm_prf_** sections. Also check the arguments passed to the linker. It should have -u__llvm_profile_runtime to force the profile runtime to be linked in. David On Mon, Sep 16, 2019 at 8:42 AM Michael
2019 Sep 12
4
PGO is ineffective for Rust - but why?
On Thu, Sep 12, 2019 at 8:18 AM Teresa Johnson <tejohnson at google.com> wrote: > I just have a couple suggestions off the top of my head: > - have you tried using the new pass manager > (-fexperimental-new-pass-manager)? That has access to additional analysis > info during inlining and is able to make more precise PGO based inline > decisions. > (although note the above