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:
> >>...
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:
> >>...
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