Skip to content
This repository was archived by the owner on Oct 30, 2025. It is now read-only.

Conversation

@saethlin
Copy link

@regehr I suspect the equivalent of these instructions will work to get a follow-on superoptimizer working with Rust/Cargo. If anyone tries these out please do let me know how it goes.

@google-cla
Copy link

google-cla bot commented Apr 14, 2022

Thanks for your pull request! It looks like this may be your first contribution to a Google open source project. Before we can look at your pull request, you'll need to sign a Contributor License Agreement (CLA).

For more information, open the CLA check for this pull request.

@chadbrewbaker
Copy link

Not sure this is how I would go about it. Might be better to do a LLVM IR build like you do for GraalVM/Klee, then whitelist the files you want Souper to optimize? Doing Souper on cold paths doesn't make computational sense.

One feature I would really love is a --souper-verbose-asm that pretty prints transforms it found in the assembler file.

My ideal workflow is compile for profiling, run profiling load to whitelist 99% runtime hot functions, send just those to Souper with a hyperfine style report of the improvement.

Another thing I Souper may be doing is screwing up cache alignments and creating more branch mispredictions?

@ornata - is there an LLVM annotation to keep functions on cache line boundaries, or do thin-BOLT where you re-order small hot functions used together?

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants