tinygo/transform
Ayke van Laethem 25dac32a88 transform: use IPSCCP pass instead of the constant propagation pass
The constant propagation pass is removed in LLVM 12, so this pass needs
to be replaced anyway. The direct replacement would be the SCCP (sparse
conditional constant propagation) pass, but perhaps a better replacement
is the IPSCCP pass, which is an interprocedural version of the SCCP
pass and propagates constants across function calls if possible.

This is not always a code size reduction, but it appears to reduce code
size in a majority of cases. It certainly reduces code size in almost
all WebAssembly tests I did.
2021-04-08 12:31:26 +02:00
..
testdata transform: don't rely on struct name of runtime.typecodeID 2021-04-08 11:40:59 +02:00
allocs.go fix incorrect starting value for optimized allocations in a loop 2019-11-13 16:45:09 +01:00
allocs_test.go all: refactor heap-to-stack transform into the transform package 2019-09-15 21:26:27 +02:00
coroutines.go transform: show better error message in coroutines lowering 2021-03-05 14:42:43 +01:00
errors.go refactor coroutine lowering and tasks 2020-03-17 12:16:10 +01:00
func-lowering.go arm: automatically determine stack sizes 2020-08-27 19:23:22 +02:00
func-lowering_test.go compiler: refactor func lowering to the transform package 2019-12-04 22:19:49 +01:00
gc.go support WASI target (#1373) 2020-09-29 21:58:03 +02:00
gc_test.go compiler: move GC passes to the transform package 2019-11-25 09:14:31 +01:00
globals.go avr: properly support the .rodata section 2020-10-31 21:06:26 +01:00
globals_test.go avr: properly support the .rodata section 2020-10-31 21:06:26 +01:00
goroutine_test.go refactor coroutine lowering and tasks 2020-03-17 12:16:10 +01:00
interface-lowering.go transform: don't rely on struct name of runtime.typecodeID 2021-04-08 11:40:59 +02:00
interface-lowering_test.go builder: add optsize attribute while building the package 2021-04-08 11:40:59 +02:00
interrupt.go builder: add optsize attribute while building the package 2021-04-08 11:40:59 +02:00
interrupt_test.go builder: add optsize attribute while building the package 2021-04-08 11:40:59 +02:00
llvm.go runtime/fe310: add support for PLIC interrupts 2020-01-27 19:58:39 +01:00
maps.go all: move OptimizeMaps to transforms and add tests 2019-09-15 21:26:27 +02:00
maps_test.go all: move OptimizeMaps to transforms and add tests 2019-09-15 21:26:27 +02:00
optimizer.go transform: use IPSCCP pass instead of the constant propagation pass 2021-04-08 12:31:26 +02:00
panic.go compiler: move ReplacePanicsWithTrap pass to transforms 2019-11-16 18:41:28 +01:00
panic_test.go compiler: move ReplacePanicsWithTrap pass to transforms 2019-11-16 18:41:28 +01:00
reflect.go transform: make reflection sidetables constant globals 2019-12-21 22:59:23 +01:00
rtcalls.go transform: optimize reflect.Type Implements() method 2021-03-28 14:00:37 +02:00
rtcalls_test.go transform: optimize reflect.Type Implements() method 2021-03-28 14:00:37 +02:00
stacksize.go arm: automatically determine stack sizes 2020-08-27 19:23:22 +02:00
stacksize_test.go arm: automatically determine stack sizes 2020-08-27 19:23:22 +02:00
transform.go all: refactor heap-to-stack transform into the transform package 2019-09-15 21:26:27 +02:00
transform_test.go main: add initial support for (in-development) LLVM 11 2020-10-13 20:23:50 +02:00
util.go compiler: move OptimizeStringToBytes to transform package 2019-09-22 08:25:50 +02:00
wasm-abi.go builder: add optsize attribute while building the package 2021-04-08 11:40:59 +02:00
wasm-abi_test.go compiler: move wasm ABI workaround to transform package 2020-01-28 19:29:09 +01:00