On Friday, 7 April 2017 at 20:43:52 UTC, Stefan Koch wrote:
On Thursday, 6 April 2017 at 05:36:52 UTC, Swoorup Joshi wrote:
Self-modifying might be the answer to all sorts of performance problems due to branching.

No it's not! You are throwing away your i-cache AND mess up the branch prediction.

From the opening statement it looks and sounds more like loading and unloading DLL files... rather than self-modifying code.

Self modifying code isn't really that practical anymore, the best example working is compressed executables (UPX and similar), but those only expand optimized code from a compressed cache and then changes the block to executable, it doesn't really modify the code at all.

Perhaps an actual use case for self-modifying code would be to give you a quick & dirty compile for a function, and then work on optimizing it, then switch the calls appropriately to the new function once it's optimized, which is more useful to for say JIT circumstances and emulation, and less in statically known source code.

Reply via email to