-
Notifications
You must be signed in to change notification settings - Fork 11
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
cargo pgo bolt build gives nonexistent executable to run #6
Comments
I used version Could you try to install the following version of the plugin: $ cargo install --git https://github.com/kobzol/cargo-pgo --branch bolt-logging And then run $ RUST_LOG=cargo_pgo=debug cargo pgo bolt build |
|
I suppose we have our answer here; BOLT is crashing but cargo-pgo reports success. While I suppose this means it's not a cargo-pgo bug, maybe this would be something to detect (I don't think this counts as a successful instrumentation). As for the Yukari SHA1: 1dc84868a5ea258aee1f622a61ade511a135ffce. |
Thanks for testing it! Indeed, you are right. BOLT chokes on the binary for some reason (seems to be some kind of debug info/DWARF issue), but there's also a bug in |
I think I've tracked this down to llvm/llvm-project#56277, and removing |
Nice find! I don't want to outright disable it, but I think that I could allow parametrization of the BOLT flags, e.g. like this: $ cargo pgo bolt build --bolt-args ""
(empty args, no debug update)
$ cargo pgo bolt optimize --bolt-args "--icf=1 -dyno-stats" I'll try to implement it soon. |
I implemented it in #10. Could you please try this version: $ cargo install --git https://github.com/kobzol/cargo-pgo --branch bolt-args And instrument the binary with |
Yes, I can confirm both Still, I learned something from all this, so thank you all the same. |
While BOLT might not always work as advertised, and you need to gather a lot of data before it can do anything (at least a few billion instructions I would say), running $ cargo pgo bolt optimize --bolt-args "-reorder-blocks=ext-tsp -reorder-functions=hfsort -split-functions=2 -split-all-cold -jump-tables=move -use-gnu-stack -split-eh -lite=1 -icf=1 -relocs -dyno-stats" This is basically the list of flags used by |
This was while I was working on https://github.com/yukarichess/yukari.
I wish I could provide more to work with, but I don't know where to begin.
The text was updated successfully, but these errors were encountered: