Displaying 7 results from an estimated 7 matches for "woerist".
Did you mean:
coexist
2019 Sep 24
3
PGO is ineffective for Rust - but why?
...r 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 bu...
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 16
2
PGO is ineffective for Rust - but why?
...you mean GNU ld? 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...
2019 Sep 16
2
PGO is ineffective for Rust - but why?
...ation 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 Woerister via llvm-dev <
llvm-dev at lists.llvm.org> 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 sma...
2019 Sep 12
4
PGO is ineffective for Rust - but why?
...etter performance without
> the pre-inlining - which typically helps because you get better
> context-sensitive profile info. Maybe sanity check that the pre inlining is
> kicking in for both the profile gen and use passes?
>
> Teresa
>
> On Thu, Sep 12, 2019 at 2:18 AM Michael Woerister via llvm-dev <
> llvm-dev at lists.llvm.org> wrote:
>
>> 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 hav...
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
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