karelklic / canal

Abstract interpreter for real-world application programs
https://github.com/karelklic/canal/wiki
Other
32 stars 2 forks source link

Just-in-time compilation of basic block fixpoint calculation #93

Closed xbrukner closed 11 years ago

xbrukner commented 11 years ago

When basic block is executed, Canal iterates over all the instruction in this basic block and executes the instructions on abstract domains. This may be slow since it requires to make a few functions calls (which are not inlined, since they are all in different object files) and all the data might be on different positions in memory, which makes slow cachewise. It might be possible to make this faster via just-in-time code generation that would do this - have all the domains as local variables and execute functions directly on these local variables, and then just copy the result into Canal variable tree.

LLVM JIT compiler might a good solution for this problem.

karelklic commented 11 years ago

It is not clear what kind of performance issues we will have in future, so I am closing this for now.