
2012/9/18 haael <haael@interia.pl>:
OK, so where could I start from? Is there for example some list of flow graphs opcodes?
You can use the graphviewer described in the documentation.
In the current approach in a binary there is a compiled machine code, the flow graph representation and the JIT compiler. I think we could get rid of (most) compiled machine code, leaving only some startup code to spawn the JIT compiler. Then, each code path would be compiled by JIT and executed. Loops would run as fast as usual. Non-loop code would run slower, but I think this would be a minor slowdown. Most importantly, as I understand, the binary contains many versions of the same code paths specialized for different types. If we throw it out, the binary would be smaller.
This is not a proposal. It is just a try at understanding things.
It might be technically possible, but it's definitely not within the design goals of the JIT.
haael
-- Regards, Benjamin