tinygo/compiler
Ayke van Laethem 9a54ee4241 compiler: allow larger-than-int values to be sent across a channel
Instead of storing the value to send/receive in the coroutine promise,
store only a pointer in the promise. This simplifies the code a lot and
allows larger value sizes to be sent across a channel.

Unfortunately, this new system has a code size impact. For example,
compiling testdata/channel.go for the BBC micro:bit, there is an
increase in code size from 4776 bytes to 4856 bytes. However, the
improved flexibility and simplicity of the code should be worth it. If
this becomes an issue, we can always refactor the code at a later time.
2019-05-05 16:46:50 +02:00
..
asserts.go compiler: fix MakeSlice bounds check and casting 2019-04-10 20:21:33 +02:00
calls.go compiler: simplify code around getZeroValue 2019-04-26 08:52:10 +02:00
channel.go compiler: allow larger-than-int values to be sent across a channel 2019-05-05 16:46:50 +02:00
compiler.go compiler: allow larger-than-int values to be sent across a channel 2019-05-05 16:46:50 +02:00
defer.go compiler: mark all GEPs as inbounds 2019-04-26 09:17:52 +02:00
errors.go all: improve compiler error handling 2019-04-26 08:52:10 +02:00
func-lowering.go compiler: lower func values to switch + direct call 2019-04-17 23:12:59 +02:00
func.go compiler: refactor packing of word-sized values in integers 2019-05-01 12:12:30 +02:00
goroutine-lowering.go compiler: allow larger-than-int values to be sent across a channel 2019-05-05 16:46:50 +02:00
inlineasm.go compiler: refactor parseExpr 2019-04-26 08:52:10 +02:00
interface-lowering.go compiler: avoid bitcast when replacing a method call with a direct call 2019-05-01 12:12:30 +02:00
interface.go compiler: refactor packing of word-sized values in integers 2019-05-01 12:12:30 +02:00
llvm.go compiler: allow larger-than-int values to be sent across a channel 2019-05-05 16:46:50 +02:00
map.go all: improve compiler error handling 2019-04-26 08:52:10 +02:00
optimizer.go compiler: simplify code around getZeroValue 2019-04-26 08:52:10 +02:00
reflect.go reflect: add limited support for all type kinds 2019-02-05 17:11:09 +01:00
sizes.go compiler: allow larger-than-int values to be sent across a channel 2019-05-05 16:46:50 +02:00
syscall.go compiler: refactor parseExpr 2019-04-26 08:52:10 +02:00
wordpack.go compiler: refactor packing of word-sized values in integers 2019-05-01 12:12:30 +02:00