Until 2015, LLVM just unconditionally put the function prologue at the beginning of each function, even when it wasn't needed! A friendly introduction to the shrink-wrap pass here: https://reviews.llvm.org/D9210
Related Posts
I'm never sure how to convert words with hyphens into SCREAMING_SNAKE_CASE. For example, should built-in function be BUILT_IN_FUNCTION or BUILTIN_FUNCTION?
I've been building an 'extract function' refactor feature. It's surprisingly nuanced.
Where do you put the extracted function? Once you've done the static analysis, what order do you use for the parameters?
Playing with optional type signatures in Python, I realise that the return type is the most important to me.
I'd much rather have a function with only a return type instead of a function with only parameter types. It's often quick to add too.