We can mark functions to always inline early in the opt. Since we do not have
call support this early inlining creates opportunities for inter-procedural
optimizations which would not occur otherwise.
Details
Details
Diff Detail
Diff Detail
- Repository
- rL LLVM
Event Timeline
Comment Actions
I'm not sure we should immediately inline. Some level of simplification should occur on the individual functions first. Otherwise the code size is growing and increasing compile time everywhere. AlwaysInline doesn't immediately inline the function though. When after is the inliner actually run?
Comment Actions
Right, we do not immediately inline, we just immediately mark all functions for inlining. The inliner pass runs in its regular place in opt. Also module passes work after function passes, so function simplifications happen.