- Use
target.rustflags
for passing PGO flags instead ofbuild.rustflags
(#56). This should make it less likely that PGO flags will be overridden by users'.cargo/config.toml
files. On the other hand,cargo pgo
will now overridebuild.rustflags
set inconfig.toml
.
- Fix passing of
--config
Cargo argument when usingcargo pgo run
(#54).
- Try to respect existing RUSTFLAGS in
.cargo/config.toml
when compiling withcargo-pgo
(#50).
- Respect the
--profile
cargo argument. - Do not filter or modify
cargo pgo run
arguments passed to the executed binary.
- Respect the
--target-dir
cargo argument and improve parsing of cargo arguments in general.
- Do not close
stdin
when executingcargo pgo run
(#28).
- Add
--keep-profiles
flag tocargo pgo run
to avoid clearing the gathered PGO profiles from previous runs (#23).
- The output of Cargo is now streamed interactively, rather than being buffered up until the build exits.
This should make the output of
cargo pgo
commands much more interactive (#20).
- Fix file moving across different devices in
cargo pgo optimize
(#17).
- Allow running
cargo pgo bolt optimize
without any profiles (#14). - Add
cargo pgo bench
command and generalize instrumentation and optimization so that you can instrument or optimize any supported Cargo command (#13, #9). - Allow passing custom flags to BOLT commands (#10).
- Remove the
cargo
dependency and fix compilation of projects using namespaced features (#2). - Properly invalidate PGO profiles. (#15).
- Fix resolve of
llvm-profdata
on Windows (#1). - Report errors if Cargo fails to build the target crate and if BOLT instrumentation fails (#7, #8).
- Correctly add a newline to text messages produced during compilation (#12).
- Initial release.