tinygo/transform
Ayke van Laethem 65d65c1313 wasm: fix GC scanning of allocas
Scanning of allocas was entirely broken on WebAssembly. The code
intended to do this was never run. There were also no tests.

Looking into this further, I found that it is actually not really
necessary to do that: the C stack can be scanned conservatively and in
fact this was already done for goroutine stacks (because they live on
the heap and are always referenced). It wasn't done for the system stack
however.

With these fixes, I believe code should be both faster *and* more
correct.

I found this in my work to get opaque pointers supported in LLVM 15,
because the code that was never reached now finally got run and was
actually quite buggy.
2022-10-19 18:36:53 +02:00
..
testdata transform (MakeGCStackSlots): do not move the stack chain pop earlier 2022-06-10 17:25:02 +02:00
allocs.go builder: free LLVM objects after use 2022-05-30 07:53:28 +02:00
allocs_test.go all: update _test.go files for ioutil changes 2022-08-07 10:32:23 +02:00
errors.go refactor coroutine lowering and tasks 2020-03-17 12:16:10 +01:00
gc.go wasm: fix GC scanning of allocas 2022-10-19 18:36:53 +02:00
gc_test.go gc: drop support for 'precise' globals 2022-06-01 21:21:30 +02:00
globals.go all: remove support for LLVM 11 and LLVM 12 2022-05-07 17:15:35 +02:00
globals_test.go transform: move tests to transform_test package 2021-04-22 19:53:42 +02:00
interface-lowering.go builder: free LLVM objects after use 2022-05-30 07:53:28 +02:00
interface-lowering_test.go compiler: add "target-cpu" and "target-features" attributes 2021-11-10 11:16:13 +01:00
interrupt.go all: format code according to Go 1.19 rules 2022-08-04 12:18:32 +02:00
interrupt_test.go transform: refactor interrupt lowering 2021-11-06 09:40:15 +01:00
llvm.go wasm: fix GC scanning of allocas 2022-10-19 18:36:53 +02:00
maps.go all: move OptimizeMaps to transforms and add tests 2019-09-15 21:26:27 +02:00
maps_test.go all: add LLVM 12 support 2021-11-30 21:53:16 +01:00
optimizer.go gc: drop support for 'precise' globals 2022-06-01 21:21:30 +02:00
panic.go compiler: move ReplacePanicsWithTrap pass to transforms 2019-11-16 18:41:28 +01:00
panic_test.go transform: move tests to transform_test package 2021-04-22 19:53:42 +02:00
reflect.go all: format code according to Go 1.19 rules 2022-08-04 12:18:32 +02:00
reflect_test.go all: format code according to Go 1.19 rules 2022-08-04 12:18:32 +02:00
rtcalls.go all: format code according to Go 1.19 rules 2022-08-04 12:18:32 +02:00
rtcalls_test.go transform: move tests to transform_test package 2021-04-22 19:53:42 +02:00
stacksize.go all: add flag for setting the goroutine stack size 2022-09-15 12:43:51 +02:00
stacksize_test.go all: add flag for setting the goroutine stack size 2022-09-15 12:43:51 +02:00
transform.go compiler: add "target-cpu" and "target-features" attributes 2021-11-10 11:16:13 +01:00
transform_test.go all: update _test.go files for ioutil changes 2022-08-07 10:32:23 +02:00
util.go compiler: move OptimizeStringToBytes to transform package 2019-09-22 08:25:50 +02:00
wasm-abi.go internal/task: remove coroutines 2022-01-19 14:42:02 -05:00
wasm-abi_test.go compiler: add "target-cpu" and "target-features" attributes 2021-11-10 11:16:13 +01:00