[llvm] Add interface to drive inlining decision using ML model
authorMircea Trofin <mtrofin@google.com>
Tue, 28 Apr 2020 20:25:15 +0000 (13:25 -0700)
committerMircea Trofin <mtrofin@google.com>
Wed, 13 May 2020 20:27:29 +0000 (13:27 -0700)
commitd6695e18763a05b30cb336c18157175277da8f4b
tree79ecd81e74c7503364bff25c846110f03c0c6f6d
parent028bfdd8913616f7a3e57e8ef5c2a9990e528ff0
[llvm] Add interface to drive inlining decision using ML model

Summary:

This change introduces InliningAdvisor (and related APIs), the interface
that abstracts decision making away from the inlining pass. We will use
this interface to delegate decision making to a trained ML model,
subsequently (see referenced RFC).

RFC: http://lists.llvm.org/pipermail/llvm-dev/2020-April/140763.html

Reviewers: davidxl, eraman, dblaikie

Subscribers: mgorny, hiraditya, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D79042
26 files changed:
llvm/include/llvm/Analysis/InlineAdvisor.h
llvm/include/llvm/Passes/PassBuilder.h
llvm/include/llvm/Transforms/IPO/Inliner.h
llvm/lib/Analysis/InlineAdvisor.cpp
llvm/lib/Passes/PassBuilder.cpp
llvm/lib/Passes/PassRegistry.def
llvm/lib/Transforms/IPO/Inliner.cpp
llvm/test/Other/new-pm-defaults.ll
llvm/test/Other/new-pm-lto-defaults.ll
llvm/test/Other/new-pm-thinlto-defaults.ll
llvm/test/Other/new-pm-thinlto-postlink-pgo-defaults.ll
llvm/test/Other/new-pm-thinlto-postlink-samplepgo-defaults.ll
llvm/test/Other/new-pm-thinlto-prelink-pgo-defaults.ll
llvm/test/Other/new-pm-thinlto-prelink-samplepgo-defaults.ll
llvm/test/Other/scc-deleted-printer.ll
llvm/test/Other/scc-pass-printer.ll
llvm/test/Transforms/Inline/inline_stats.ll
llvm/test/Transforms/Inline/inlining-advisor-default.ll [new file with mode: 0644]
llvm/test/Transforms/Inline/internal-scc-members.ll
llvm/test/Transforms/Inline/module-inlining.ll
llvm/test/Transforms/Inline/monster_scc.ll
llvm/test/Transforms/Inline/optimization-remarks-hotness-threshold.ll
llvm/test/Transforms/Inline/optimization-remarks-passed-yaml.ll
llvm/test/Transforms/Inline/optimization-remarks-with-hotness.ll
llvm/test/Transforms/Inline/optimization-remarks-yaml.ll
llvm/test/Transforms/Inline/optimization-remarks.ll