tinygo/transform
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
..
testdata transform: optimize string comparisons against "" 2021-03-18 17:22:00 +01:00
allocs.go fix incorrect starting value for optimized allocations in a loop 2019-11-13 16:45:09 +01:00
allocs_test.go all: refactor heap-to-stack transform into the transform package 2019-09-15 21:26:27 +02:00
coroutines.go transform: show better error message in coroutines lowering 2021-03-05 14:42:43 +01:00
errors.go refactor coroutine lowering and tasks 2020-03-17 12:16:10 +01:00
func-lowering.go arm: automatically determine stack sizes 2020-08-27 19:23:22 +02:00
func-lowering_test.go compiler: refactor func lowering to the transform package 2019-12-04 22:19:49 +01:00
gc.go support WASI target (#1373) 2020-09-29 21:58:03 +02:00
gc_test.go compiler: move GC passes to the transform package 2019-11-25 09:14:31 +01:00
globals.go avr: properly support the .rodata section 2020-10-31 21:06:26 +01:00
globals_test.go avr: properly support the .rodata section 2020-10-31 21:06:26 +01:00
goroutine_test.go refactor coroutine lowering and tasks 2020-03-17 12:16:10 +01:00
interface-lowering.go builder, compiler: compile and cache packages in parallel 2021-03-21 11:51:35 +01:00
interface-lowering_test.go transform: replace panics with source locations 2020-03-24 15:07:55 +01:00
interrupt.go runtime/fe310: add support for PLIC interrupts 2020-01-27 19:58:39 +01:00
interrupt_test.go all: add compiler support for interrupts 2020-01-20 21:19:12 +01:00
llvm.go runtime/fe310: add support for PLIC interrupts 2020-01-27 19:58:39 +01:00
maps.go all: move OptimizeMaps to transforms and add tests 2019-09-15 21:26:27 +02:00
maps_test.go all: move OptimizeMaps to transforms and add tests 2019-09-15 21:26:27 +02:00
optimizer.go transform: optimize string comparisons against "" 2021-03-18 17:22:00 +01:00
panic.go compiler: move ReplacePanicsWithTrap pass to transforms 2019-11-16 18:41:28 +01:00
panic_test.go compiler: move ReplacePanicsWithTrap pass to transforms 2019-11-16 18:41:28 +01:00
reflect.go transform: make reflection sidetables constant globals 2019-12-21 22:59:23 +01:00
rtcalls.go transform: optimize string comparisons against "" 2021-03-18 17:22:00 +01:00
rtcalls_test.go transform: optimize string comparisons against "" 2021-03-18 17:22:00 +01:00
stacksize.go arm: automatically determine stack sizes 2020-08-27 19:23:22 +02:00
stacksize_test.go arm: automatically determine stack sizes 2020-08-27 19:23:22 +02:00
transform.go all: refactor heap-to-stack transform into the transform package 2019-09-15 21:26:27 +02:00
transform_test.go main: add initial support for (in-development) LLVM 11 2020-10-13 20:23:50 +02:00
util.go compiler: move OptimizeStringToBytes to transform package 2019-09-22 08:25:50 +02:00
wasm-abi.go transform: wasm-abi: create temporary allocas in the entry block 2020-01-28 19:29:09 +01:00
wasm-abi_test.go compiler: move wasm ABI workaround to transform package 2020-01-28 19:29:09 +01:00