tinygo/compiler
Ayke van Laethem a7794de99d compiler: fix interface lowering miscompilation with reflect
When using reflect, arbitrary types can be synthesized. This invalidates
a few assumptions in the interface-lowering pass, that think they can
see all types that are in use in a program and optimize accordingly.

The file size impact depends on the specific program. Sometimes it's
nonexistent, sometimes it's rather hefty (up to 30% bigger). Especially
the samd21 targets seem to be affected, with a 2000-6000 bytes increase
in code size. A moderately large case (the stdlib test) increases by
4%/6%/15% depending on the target.

I hope that this increase could be mitigated, but I don't see an obvious
way to do that.
2019-10-25 09:35:05 -04:00
..
asserts.go compiler: support constant indices with a named type 2019-10-01 21:31:00 +02:00
calls.go Improved blocking (#513) 2019-09-22 17:58:00 +02:00
channel.go Improved blocking (#513) 2019-09-22 17:58:00 +02:00
check.go fix bugs found by LLVM assertions 2019-09-16 18:31:33 +02:00
compiler.go fix miscompile of function nil panics 2019-10-16 15:57:25 +02:00
defer.go fix bugs found by LLVM assertions 2019-09-16 18:31:33 +02:00
errors.go all: improve compiler error handling 2019-04-26 08:52:10 +02:00
func-lowering.go fix bugs found by LLVM assertions 2019-09-16 18:31:33 +02:00
func.go compiler: add support for 'go' on func values 2019-08-17 11:51:43 +02:00
gc.go fix bugs found by LLVM assertions 2019-09-16 18:31:33 +02:00
goroutine-lowering.go fix goroutine lowering type errors 2019-10-16 16:04:37 +02:00
goroutine.go fix bugs found by LLVM assertions 2019-09-16 18:31:33 +02:00
inlineasm.go all: add HiFive1 rev B board with RISC-V architecture 2019-07-07 14:03:24 +02:00
interface-lowering.go compiler: fix interface lowering miscompilation with reflect 2019-10-25 09:35:05 -04:00
interface.go fix bugs found by LLVM assertions 2019-09-16 18:31:33 +02:00
llvm.go fix goroutine lowering type errors 2019-10-16 16:04:37 +02:00
map.go compiler: add support for pointers as map keys 2019-06-08 21:48:05 +02:00
optimizer.go Improved blocking (#513) 2019-09-22 17:58:00 +02:00
reflect.go reflect: delete incorrect optimization 2019-09-24 16:13:19 +02:00
sizes.go compiler: allow larger-than-int values to be sent across a channel 2019-05-05 16:46:50 +02:00
symbol.go compiler: add //go:align pragma 2019-09-18 20:15:17 +02:00
syscall.go fix bugs found by LLVM assertions 2019-09-16 18:31:33 +02:00
volatile.go compiler: implement volatile operations as compiler builtins 2019-05-14 12:24:01 +02:00
wordpack.go compiler: rename getZeroValue to llvm.ConstNull 2019-09-15 19:09:10 +02:00