tinygo/builder
Ayke van Laethem e2f532709f builder, compiler: compile and cache packages in parallel
This commit switches from the previous behavior of compiling the whole
program at once, to compiling every package in parallel and linking the
LLVM bitcode files together for further whole-program optimization.
This is a small performance win, but it has several advantages in the
future:

  - There are many more things that can be done per package in parallel,
    avoiding the bottleneck at the end of the compiler phase. This
    should speed up the compiler futher.
  - This change is a necessary step towards a non-LTO build mode for
    fast incremental builds that only rebuild the changed package, when
    compiler speed is more important than binary size.
  - This change refactors the compiler in such a way that it will be
    easier to inspect the IR for one package only. Inspecting this IR
    will be very helpful for compiler developers.
2021-03-21 11:51:35 +01:00
..
ar.go builder: write a symbol table when writing out the compiler-rt lib 2019-11-13 13:52:20 +01:00
build.go builder, compiler: compile and cache packages in parallel 2021-03-21 11:51:35 +01:00
buildcache.go builder: remove unused cacheKey parameter 2021-02-11 10:50:29 +01:00
builtins.go builder: make sure -fshort-enums is used consistently 2020-04-07 16:17:10 +02:00
cc1as.cpp all: switch to LLVM 11 for static builds 2020-12-10 07:01:32 +01:00
cc1as.h main: switch to LLVM 10 2020-04-09 20:23:51 +02:00
clang.cpp all: switch to LLVM 11 for static builds 2020-12-10 07:01:32 +01:00
commands.go main: switch to LLVM 10 2020-04-09 20:23:51 +02:00
config.go all: remove support for Go 1.11 and 1.12 2021-03-09 18:15:49 +01:00
env.go Make lib64 clang include path check more robust. 2020-11-04 00:04:33 +01:00
error.go compiler: add location information to the IR checker 2019-12-21 20:49:51 +01:00
esp.go esp8266: add support for this chip 2020-09-09 19:17:11 +02:00
jobs.go builder: wait for running jobs to finish 2021-02-11 19:43:46 +01:00
library.go builder: add -mcpu flag while building libraries 2021-02-11 10:50:29 +01:00
lld.cpp main: switch to LLVM 10 2020-04-09 20:23:51 +02:00
objcopy.go main: add initial support for (in-development) LLVM 11 2020-10-13 20:23:50 +02:00
picolibc.go builder: fix picolibc include path 2020-04-29 15:41:08 +02:00
sizes.go builder: work around a bug in ld.lld in LLVM 10 2020-04-09 20:23:51 +02:00
tools-builtin.go builder: run tools (clang, ...) as separate processes 2020-04-03 12:41:44 +02:00
tools-external.go builder: run tools (clang, ...) as separate processes 2020-04-03 12:41:44 +02:00
tools.go builder: run tools (clang, ...) as separate processes 2020-04-03 12:41:44 +02:00
uf2.go targets: add target circuitplay-bluefruit 2020-01-06 09:23:39 +01:00