MIR stuff
-
What is all this I'm seeing in the commits lately?
-
@d-healey I'm currently rewriting the SNEX compiler to use another code generation backend - currently it's using ASMJit which is awesome, but I had to manually write the entire code generation logic for x86 CPUs which is the reason why HISE needs to run in Rosetta on macOS (as I don't see myself learning another assembly instruction set...).
The MIR JIT compiler project (which @sletz pointed me to) is a bit more high level since it uses an intermediate language to define the instructions and then generates the CPU instructions for each backend automatically, so this allows me to ditch the entire "HISE has to run in Rosetta" on macOS, which removes a few hiccups.
It's a rather large task though (about 30% of the entire SNEX compiler code has to be rewritten), but this makes it much more future proof as we don't know when Apple is phasing out Rosetta.
I'll also take this as an opportunity to clean up the SNEX code - I realised most things I did for optimisation the compiler output are rather pointless because performance is actually not a critical factor for the SNEX compiler.