tinygo/compiler
Ayke van Laethem c3992bd77b compiler: improve position information
In many cases, position information is not stored in Go SSA instructions
because they don't exit directly in the source code. This includes
implicit type conversions, implicit returns at the end of a function,
the creation of a (hidden) slice when calling a variadic function, and
many other cases. I'm not sure where this information is supposed to
come from, but this patch takes the value (usually) from the value the
instruction refers to. This seems to work well for these implicit
conversions.

I've also added a few extra tests to the heap-to-stack transform pass,
of which one requires this improved position information.
2021-04-26 16:15:57 +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 copiler: add function attributes to some runtime calls 2021-04-22 19:53:42 +02:00
asserts.go compiler: do not emit nil checks for *ssa.Alloc instructions 2021-03-22 11:35:06 +01: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: improve position information 2021-04-26 16:15:57 +02:00
compiler_test.go compiler: add func tests 2021-04-12 12:07:42 +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 builder, compiler: compile and cache packages in parallel 2021-03-21 11:51:35 +01: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 builder, compiler: compile and cache packages in parallel 2021-03-21 11:51:35 +01: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