Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

> there's no point in making a function that's only called in one place.

There's nothing wrong with doing that if it helps make your code clearer. The compiler's optimizer will inline it when appropriate so there's no runtime overhead either.



Not only that, the compiler's optimizer might actually do a better job if you split up a big function. Because the smaller functions have less register pressure.


I'm not sure I agree and I think you should try some stuff out on godbolt first. The compiler can see where variables are no longer in use, whereas unless you turn on link time optimization (which is known for being messy so nobody seems to), you'll likely get a lot of unnecessary push/pop between the function calls.


Declare the functions static and the compiler won't export the symbols and it can do more inlining.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: