Talk
Using machine learning to improve inlining in LLVM
Feature embedding (inlining) is an optimization that is based on the heuristics used to make the final decision about feature embedding. These heuristics are designed to make an efficient solution in the general case, but, as a consequence, can lead to far from efficient solutions in different from general cases. To solve this problem, LLVM has added support for using a machine learning model that answers the question, based on analysis of the compiled code, whether a function should be embedded into the call point in question.
In this talk, we'll look at how this mechanism for determining whether a function should be embedded using machine learning works, how it can improve your program, and what its limitations are.