logoalt Hacker News

jayd16today at 7:52 PM4 repliesview on HN

Is there a name for duplicating function calls such that different optimizations for the same function can be compiled, but they are not fully duplicated at every call site?


Replies

Someonetoday at 8:06 PM

I think that is called specialization (https://www.linkedin.com/posts/compilers-lab_compiler-progra...).

Even if the compiler doesn’t explicitly do it, it can happen when doing subsequent optimization steps after inlining such as constant folding and dead code elimination.

show 1 reply
khueytoday at 8:09 PM

If I understand what you're asking for correctly, function cloning.

If you have f(x, y) and the compiler realizes the function optimizes nicely when y == 2 it can create a clone of f with a fixed argument y == 2, optimize that, and rewrite the appropriate call sites to call the clone.

taerictoday at 8:08 PM

I think this is what the C++ world calls template specialization?