0x7CFE / llst

LLVM powered Little Smalltalk.
Other
93 stars 10 forks source link

Research use of LLVM's StackMaps for online code patching #55

Open 0x7CFE opened 10 years ago

0x7CFE commented 10 years ago

LLVM provides special API for preallocating patch points in the JIT code which then may be altered without full function recompilation. This is especially useful in polymorphic method caches and dynamic type inferernce. This API is still experimental but already used in Webkit's Javascript engine.

More information may be found here: http://llvm.org/docs/StackMaps.html

P.S.: Known pitfall is that current implementation of StackMaps supports only x64, albeit developers note that it is possible to extend it to x32. Still, it has to be done.