I'm very interested in targeting more languages with TARDISgo than just Haxe. To that end, I'd like to make it easier to write a new language back-end. That requires that TARDISgo moves more of the runtime into Go and out of Haxe, and also that the number of instructions for the back-end code to generate is reduced.
As part of that, I'd like to take the SSA representation of the Go program and then emit a new version of the Go code from that SSA form, as a pre-processing stage inside TARDISgo. This would involve automatically rewriting the Go code to simulate goroutines and channels (as
tardisgo does using Haxe) as a first stage in the transpiler.
I'd also like to undertake this rewriting process after some optimization of the SSA form, though I've not yet got a firm plan for how to do that optimization.