![]() This has several advantages, among them: - Many passes (heap-to-stack, dead arg elimination, inlining) do not work with function pointer calls. Making them normal function calls improves their effectiveness. - Goroutine lowering to LLVM coroutines does not currently support function pointers. By eliminating function pointers, coroutine lowering gets support for them for free. This is especially useful for WebAssembly. Because of the second point, this work is currently only enabled for the WebAssembly target. |
||
---|---|---|
.. | ||
asserts.go | ||
calls.go | ||
channel.go | ||
compiler.go | ||
defer.go | ||
errors.go | ||
func-lowering.go | ||
func.go | ||
goroutine-lowering.go | ||
inlineasm.go | ||
interface-lowering.go | ||
interface.go | ||
llvm.go | ||
map.go | ||
optimizer.go | ||
reflect.go | ||
sizes.go | ||
syscall.go |