The resulting assembler code runs on standard Go movable stacks. This is another way how to avoid the cost of CGo GoC context switch. However, as no silver bullets exist, the cost of running on movable stacks is not gone in full. It have shifted to the additional handling of goroutine-local allocations for addressable local variables.

The purpose of this experiment is to compare the modernc.org/ccgo/v4 and qbecc approaches with respect to resulting performance differences, if any.

The proof of concept has reached v0.1.0.

Show HN: Qbecc is a C compiler producing Go(Golang) ABI0 assembler
pkg.go.dev