3 ms·
How is this different than gollvm? And how does it combat the problems from the Go FAQ: > At the beginning of the project we considered using LLVM for gc but d
by sethammons 7y ago
How is this different than gollvm? And how does it combat the problems from the Go FAQ:
> At the beginning of the project we considered using LLVM for gc but decided it was too large and slow to meet our performance goals. More important in retrospect, starting with LLVM would have made it harder to introduce some of the ABI and related changes, such as stack management, that Go requires but not are not part of the standard C setup. A new LLVM implementation is starting to come together now, however.
- danielparks 7y agohttps://go.googlesource.com/gollvm/ https://go.googlesource.com/gollvm/
- aykevl 7y agoThere are 3 LLVM-based Go compilers that I'm aware of: gollvm, llgo, and tinygo. Of those, only TinyGo reimplements the runtime that causes lots of (code size) overhead in the other compilers. There is more to a toolchain than translating source code to machine code. I'm sure the others do that job just as well, but only TinyGo combines that with a reimplemented runtime that optimizes size over speed and allows it to be used directly on bare metal hardware: binaries of just a few kB are not uncommon.