diff options
author | Mircea Trofin <mtrofin@google.com> | 2020-11-16 14:01:53 -0800 |
---|---|---|
committer | Mircea Trofin <mtrofin@google.com> | 2020-11-30 12:03:39 -0800 |
commit | 5fe10263ab39be96e316f37272b85a72596a7928 (patch) | |
tree | 9cd42685a6c1c338363e12131380bfefd2e2048a /llvm/test/Other/new-pm-lto-defaults.ll | |
parent | [DL] Inline getAlignmentInfo() implementation (NFC) (diff) | |
download | llvm-project-5fe10263ab39be96e316f37272b85a72596a7928.tar.gz llvm-project-5fe10263ab39be96e316f37272b85a72596a7928.tar.bz2 llvm-project-5fe10263ab39be96e316f37272b85a72596a7928.zip |
[llvm][inliner] Reuse the inliner pass to implement 'always inliner'
Enable performing mandatory inlinings upfront, by reusing the same logic
as the full inliner, instead of the AlwaysInliner. This has the
following benefits:
- reduce code duplication - one inliner codebase
- open the opportunity to help the full inliner by performing additional
function passes after the mandatory inlinings, but before th full
inliner. Performing the mandatory inlinings first simplifies the problem
the full inliner needs to solve: less call sites, more contextualization, and,
depending on the additional function optimization passes run between the
2 inliners, higher accuracy of cost models / decision policies.
Note that this patch does not yet enable much in terms of post-always
inline function optimization.
Differential Revision: https://reviews.llvm.org/D91567
Diffstat (limited to 'llvm/test/Other/new-pm-lto-defaults.ll')
-rw-r--r-- | llvm/test/Other/new-pm-lto-defaults.ll | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/llvm/test/Other/new-pm-lto-defaults.ll b/llvm/test/Other/new-pm-lto-defaults.ll index 0fc58088d0cf..236b93df8fad 100644 --- a/llvm/test/Other/new-pm-lto-defaults.ll +++ b/llvm/test/Other/new-pm-lto-defaults.ll @@ -67,7 +67,12 @@ ; CHECK-O2-NEXT: Running pass: ModuleInlinerWrapperPass ; CHECK-O2-NEXT: Running analysis: InlineAdvisorAnalysis ; CHECK-O2-NEXT: Starting llvm::Module pass manager run. -; CHECK-O2-NEXT: Running pass: AlwaysInlinerPass +; CHECK-O2-NEXT: Starting CGSCC pass manager run. +; CHECK-O2-NEXT: Running pass: InlinerPass +; CHECK-O2-NEXT: Finished CGSCC pass manager run. +; CHECK-O2-NEXT: Finished llvm::Module pass manager run. +; CHECK-O2-NEXT: Running pass: ModuleInlinerWrapperPass +; CHECK-O2-NEXT: Starting llvm::Module pass manager run. ; CHECK-O2-NEXT: Starting CGSCC pass manager run. ; CHECK-O2-NEXT: Running pass: InlinerPass ; CHECK-O2-NEXT: Finished CGSCC pass manager run. |