search for: michaelwoerister

Displaying 7 results from an estimated 7 matches for "michaelwoerister".

2019 Sep 17
2
PGO is ineffective for Rust - but why?
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 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!...
2019 Sep 24
3
PGO is ineffective for Rust - but why?
...e number of branch misses by more than 50%. For the medium sized benchmark, however, the PGO version has slightly *more* branch misses. This seems to indicate that there is still something wrong. I will further investigate. [1] https://github.com/rust-lang/cargo/issues/7416 [2] https://github.com/michaelwoerister/rust-pgo-test-programs/tree/master/branch_weights/ On Tue, Sep 17, 2019 at 6:16 PM Xinliang David Li <xinliangli at gmail.com> wrote: > > You can check the difference of input args and object files to the linker. > > Regarding gnu ld, it is possible that it triggers another bug...
2019 Sep 16
2
PGO is ineffective for Rust - but why?
...; weights for `ld` were missing from most branches, while the counts for > the other linkers are correct. All of this suggests to me that > something goes wrong when `ld` tries to link in the profiling runtime. > > I'll be investigating further. > > [1] > https://github.com/michaelwoerister/rust-pgo-test-programs/tree/master/branch_weights > > > On Thu, Sep 12, 2019 at 6:31 PM Teresa Johnson <tejohnson at google.com> > wrote: > > > > > > > > On Thu, Sep 12, 2019 at 8:18 AM Teresa Johnson <tejohnson at google.com> > wrote: > >&gt...
2019 Sep 16
2
PGO is ineffective for Rust - but why?
...; weights for `ld` were missing from most branches, while the counts for > the other linkers are correct. All of this suggests to me that > something goes wrong when `ld` tries to link in the profiling runtime. > > I'll be investigating further. > > [1] > https://github.com/michaelwoerister/rust-pgo-test-programs/tree/master/branch_weights > > > On Thu, Sep 12, 2019 at 6:31 PM Teresa Johnson <tejohnson at google.com> > wrote: > > > > > > > > On Thu, Sep 12, 2019 at 8:18 AM Teresa Johnson <tejohnson at google.com> > wrote: > >&gt...
2019 Sep 12
6
PGO is ineffective for Rust - but why?
Hi everyone, As part of my work for Mozilla's Low Level Tools team I've implemented PGO in the Rust compiler. The feature is available since Rust 1.37 [1]. However, so far we have not seen any actual performance gains from enabling PGO for Rust code. Performance even seems to drop 1-3% with PGO enabled. I wonder why that is and I'm hoping that someone here might have experience
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
2013 Aug 29
0
[LLVMdev] Allowed types llvm.dbg.declare's "storage" parameter
Hi everyone, I have a question about the llvm.dbg.declare instrinsic which I am using through DIBuilder::insertDeclare(): What kind of instructions are supported as the "storage" parameter? Is it only allocas? I've also had some success with a combination of llvm::Argument and DIBuilder::createComplexVariable(). That is, create a DIVariable with one additional OpDeref and then