[Haskell-cafe] Well typed OS
Joachim Durchholz
jo at durchholz.org
Mon Oct 8 18:14:17 UTC 2018
Am 08.10.2018 um 09:08 schrieb Gleb Popov:
>
> Laziness? No problem. If you do tagless/spineless, you'll code the
> evaluation machine anyway. Just add an IR instructions that calls the
> interpreter.
>
> I'm far from expert in this area, but isn't that "interpreter" a simple
> yet slow approach to codegen? My understanding is that when you use,
> say, a global variable as a register for your evaluation machine, it is
> slower than if you somehow pin real hardware register for that purpose.
> I think this is what "registerized" GHC build means.
My impression has been that GHC is compiling everything down to machine
code. FWIW most mentions I saw were of the kind "we replace
tagless/spineless with X", not of the "we build on tagless/spineless
doing Y". Not that I have read many papers - I'm awfully behind on these
topics.
> In LLVM you can't use, say, RSP in a way you want, but it is doomed to
> be "stack pointer register", even if you don't use stack at all.
Actually it seems possible since some version between 3.4 and 3.6.
https://stackoverflow.com/questions/29365198/how-to-use-llvm-intrinsics-llvm-read-register
discusses a way of doing exactly that.
Not sure about ramifications though.
Still, seeing how many wildly varying languages use LLVM for code
generation, it seems to be widely considered to be the most flexible
available one.
If somebody knows of something more flexible, paint me interested :-)
Regards,
Jo
More information about the Haskell-Cafe
mailing list