tinygo/compiler
Ayke van Laethem d905476231 all: refactor heap-to-stack transform into the transform package
Also add unit tests.

This is the first of several transformation (optimization/lowering)
passes that I'd like to move to the new transform package. This
separates the compiler from the optimizer.

Also, it finally adds unit tests for the compiler, not just end-to-end
compilation tests. This should improve robustness and should make it
easier to change these transformation passes in the future.
While the heap-to-stack transform is relatively simple, other passes are
much more complex. Adding unit tests not only helps robustness over
time, but also doubles as documentation as to what these transformation
passes do exactly.
2019-09-15 21:26:27 +02:00
..
asserts.go compiler: implement full slice expression 2019-08-04 17:51:16 +02:00
calls.go compiler: rename getZeroValue to llvm.ConstNull 2019-09-15 19:09:10 +02:00
channel.go compiler: rename getZeroValue to llvm.ConstNull 2019-09-15 19:09:10 +02:00
compiler.go compiler: rename getZeroValue to llvm.ConstNull 2019-09-15 19:09:10 +02:00
defer.go compiler: rename getZeroValue to llvm.ConstNull 2019-09-15 19:09:10 +02:00
errors.go all: improve compiler error handling 2019-04-26 08:52:10 +02:00
func-lowering.go compiler: add support for 'go' on func values 2019-08-17 11:51:43 +02:00
func.go compiler: add support for 'go' on func values 2019-08-17 11:51:43 +02:00
gc.go compiler: rename getZeroValue to llvm.ConstNull 2019-09-15 19:09:10 +02:00
goroutine-lowering.go compiler,runtime: fix new task-based scheduler 2019-08-17 08:42:23 +02:00
goroutine.go compiler: add support for 'go' on func values 2019-08-17 11:51:43 +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: refactor named types to create them lazily 2019-06-08 22:17:09 +02:00
interface.go compiler: rename getZeroValue to llvm.ConstNull 2019-09-15 19:09:10 +02:00
llvm.go reflect: add support for linked lists 2019-08-11 15:00:43 +02:00
map.go compiler: add support for pointers as map keys 2019-06-08 21:48:05 +02:00
optimizer.go all: refactor heap-to-stack transform into the transform package 2019-09-15 21:26:27 +02:00
reflect.go reflect: implement support for array types 2019-08-19 11:08:26 +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: rename getZeroValue to llvm.ConstNull 2019-09-15 19:09:10 +02:00
syscall.go Add support for linux/386 syscalls. 2019-08-04 18:15:06 +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