Files
Ayke van Laethem 2de0635140 builder: add real ThinLTO mode
We use ThinLTO for linking, but we use it in a way that doesn't give
most of its benefits: we merge all the bitcode files into a single LLVM
module and run some optimizations on it before linking. Therefore, this
works more like a traditional "full" LTO link rather than a true thin
link.

This commit adds a new experimental -lto=thin option to do a true
ThinLTO link. The main benefit is that linking will be a lot faster,
especially for large programs consisting of many packages.

At the moment, it only works for programs that don't do interface type
asserts and don't call interface methods. It also probably won't work on
WebAssembly and baremetal systems. But it's part of a larger goal
towards a truly incremental build system:
https://github.com/tinygo-org/tinygo/issues/2870
Once interface type asserts and method calls are converted to a
vtable-like implementation, most programs should just work on
linux/darwin/windows.
2023-02-26 23:49:03 +01:00
..
2023-02-26 23:49:03 +01:00
2022-10-19 22:23:19 +02:00
2023-02-26 23:49:03 +01:00
2023-02-17 22:54:34 +01:00
2021-09-27 15:47:12 +02:00
2022-10-19 22:23:19 +02:00
2023-01-18 08:24:42 +01:00
2023-02-26 23:49:03 +01:00
2023-02-26 23:49:03 +01:00
2023-01-18 08:24:42 +01:00
2022-11-18 18:40:38 +01:00