always-inline heuristic

I see that we do not inline a function marked as “always-inline” if it contains indirect branches ? what are the reasons behind this criterion ?


Because we can’t reliably inline functions with indirect branches.


There have been extensive discussions about this on about 8 month ago on the mailing list. You’ll also find some comments in the code. We first have to improve points-to analysis before we think about revisiting inlining functions with indirect branches.

Always-inline just means inline when the compiler can determine that it is safe to so.