tinygo/compiler
Ayke van Laethem c93ddb630b compiler: skip context parameter when starting regular goroutine
Do not store the context parameter (which is used for closures and
function pointers) in the goroutine start parameter bundle for direct
functions that don't need a context parameter. This avoids storing the
(undef) context parameter and thus makes the IR to start a new goroutine
simpler in most cases.

This reduces code size in the channel.go and goroutines.go tests.
Surprisingly, all test cases (when compiled with -target=microbit) have
a changed binary, I haven't investigated why but I suppose the codegen
is slightly different for the runtime.run function (which starts the
main goroutine).
2021-05-26 20:21:08 +02:00
..
ircheck compiler: move IR checker to separate package 2020-03-21 15:45:25 +01:00
llvmutil compiler: move settings to a separate Config struct 2021-01-29 14:49:58 +01:00
testdata compiler: skip context parameter when starting regular goroutine 2021-05-26 20:21:08 +02:00
asserts.go compiler: do not emit nil checks for loading closure variables 2021-05-26 20:21:08 +02:00
atomic.go compiler: work around an ARM backend bug in LLVM 2021-02-03 14:49:41 +01:00
calls.go compiler: fix "fragment covers entire variable" bug 2021-03-29 10:16:59 +02:00
channel.go compiler: support all kinds of deferred builtins 2021-01-24 09:28:09 +01:00
compiler.go compiler: skip context parameter when starting regular goroutine 2021-05-26 20:21:08 +02:00
compiler_test.go compiler: add tests for starting a goroutine 2021-05-26 20:21:08 +02:00
defer.go builder, compiler: compile and cache packages in parallel 2021-03-21 11:51:35 +01:00
errors.go compiler: remove ir package 2021-01-24 15:39:15 +01:00
func.go compiler: decouple func lowering from interface type codes 2021-04-12 12:07:42 +02:00
gc.go compiler: track the result of string concatenation 2020-04-02 14:04:25 +02:00
goroutine.go compiler: skip context parameter when starting regular goroutine 2021-05-26 20:21:08 +02:00
inlineasm.go arm64: Add support for system calls (SVC) 2020-10-03 20:07:51 +02:00
interface.go reflect: implement New function 2021-04-12 14:49:26 +02:00
interrupt.go Support chained interrupt handlers 2021-05-25 20:44:49 +02:00
intrinsics.go compiler,runtime: translate memzero calls to LLVM memset intrinsics 2020-03-27 21:01:59 +01:00
llvm.go compiler: move settings to a separate Config struct 2021-01-29 14:49:58 +01:00
map.go compiler: refactor map operations to use the builder object 2020-03-25 20:17:46 +01:00
sizes.go reflect: implement Sizeof and Alignof for func values 2021-03-29 01:04:11 +02:00
symbol.go copiler: add function attributes to some runtime calls 2021-04-22 19:53:42 +02:00
syscall.go compiler: move settings to a separate Config struct 2021-01-29 14:49:58 +01:00
volatile.go compiler: do not perform nil checking when indexing slices 2020-03-27 07:38:16 +01:00