This has never been worked on and hence archived. The idea is not ditched, so I'm planning to resume it once I have time.
official LLVM BOLT tutorial implemented in nix
.
Seen as the base for optimizing compiler infrastructure easily available out-of-the box.
basically not yet implemented
This is experimental project for the author to hack around in his spare time and comes without any guarantees of project's reaching the state of minimum usability and / or feature completness.
No assumptions currently should be made about contents / availability of this repo. Everything here is a subject to changes or permanent deletion, including this disclaimer, as well as the repo itself might become temporarily or permanently unavailale.
As basically every modern compiler is optimizing, to avoid ambiguity, the scope of this project is well defined and is all about ensuring BOLT support, both:
- for bootstrapping compilers themselves and thus speeding up compilation
- ensuring BOLT is supported by compilers to build other software
With lesser priority, PGO and LTO are also in the scope and will be enabled by default, if that doesn't occur to slow down the development (read "just works", givent the current author's setup).
Apple Silicon
as the first class citizen (thanks to being the author's only machine at the moment; however it's in progress and may not work in the end)x86_64
- make it work to any extent
-
rustc
support -
go 1.18+
support - creation of a collection of
nix-shell
build environments which use optimizing compilers - overriding / overlaying the
nixpkgs
packages which would greately benefit from being built by optimizing compiler [and are not configured this way by default] e.g.: nixpkgs versions of Python