Un intérprete en ensamblador supera al compilador
Beating the Compiler
Matt Keeter escribe un intérprete para la CPU Uxn en AArch64 que supera al generado por el compilador. Al mantener los índices de pila y el puntero a RAM en registros y usar threaded code para eliminar el bucle de despacho, logra un rendimiento superior. El artículo analiza el ensamblador generado, identifica ineficiencias como el branch indirecto impredecible y muestra la implementación manual de 2400 líneas.
Los compiladores son malos generando código para intérpretes, y es posible superarlos escribiendo tu intérprete en ensamblador.