tinygo/compiler
Ayke van Laethem e1052f921c compiler: define atomic intrinsic functions directly
This changes the compiler from treating calls to sync/atomic.* functions
as special calls (emitted directly at the call site) to actually
defining their declarations when there is no Go SSA implementation. And
rely on the inliner to inline these very small functions.
This works a bit better in practice. For example, this makes it possible
to use these functions in deferred function calls.

This commit is a bit large because it also needs to refactor a few
things to make it possible to define such intrinsic functions.
2022-06-24 11:10:24 +02:00
..
ircheck Fix incorrect formatting arguments 2022-04-10 22:58:16 +02:00
llvmutil builder: free LLVM objects after use 2022-05-30 07:53:28 +02:00
testdata compiler: update tests after adding new wasm features 2022-06-22 07:50:40 +02:00
alias.go compiler: fix basic block context 2022-06-16 07:59:21 +02:00
asserts.go compiler: insert basic blocks at an appropriate location 2022-06-16 07:59:21 +02:00
atomic.go compiler: define atomic intrinsic functions directly 2022-06-24 11:10:24 +02:00
calls.go compiler: implement recover() built-in function 2022-06-16 07:59:21 +02:00
channel.go compiler: avoid zero-sized alloca in channel operations 2021-09-09 11:24:52 +02:00
compiler.go compiler: define atomic intrinsic functions directly 2022-06-24 11:10:24 +02:00
compiler_go118.go compiler: add support for type parameters (aka generics) 2022-06-11 20:41:16 +02:00
compiler_test.go compiler: implement recover() built-in function 2022-06-16 07:59:21 +02:00
defer.go avr: add support for recover() 2022-06-19 11:51:12 +02:00
errors.go all: fix staticcheck warnings 2021-09-27 15:47:12 +02:00
func.go compiler: remove parentHandle from calling convention 2022-01-19 14:42:02 -05:00
gc.go compiler: track the result of string concatenation 2020-04-02 14:04:25 +02:00
goroutine.go compiler: remove parentHandle from calling convention 2022-01-19 14:42:02 -05:00
inlineasm.go compiler: remove support for memory references in AsmFull 2022-04-21 15:18:18 +02:00
interface.go compiler: insert basic blocks at an appropriate location 2022-06-16 07:59:21 +02:00
interrupt.go transform: refactor interrupt lowering 2021-11-06 09:40:15 +01:00
intrinsics.go compiler: define atomic intrinsic functions directly 2022-06-24 11:10:24 +02:00
llvm.go compiler: implement recover() built-in function 2022-06-16 07:59:21 +02:00
map.go src/runtime: first darft of map growth code 2022-04-28 09:14:45 +02:00
sizes.go compiler: alignof(func) is 1 pointer, not 2 2022-05-25 11:01:00 +02:00
symbol.go compiler: add support for type parameters (aka generics) 2022-06-11 20:41:16 +02:00
syscall.go all: switch to LLVM 13 2022-01-09 11:04:10 +01:00
volatile.go compiler: do not perform nil checking when indexing slices 2020-03-27 07:38:16 +01:00