Enrich inline messages
authorDavid Bolvansky <david.bolvansky@gmail.com>
Wed, 1 Aug 2018 07:37:16 +0000 (07:37 +0000)
committerDavid Bolvansky <david.bolvansky@gmail.com>
Wed, 1 Aug 2018 07:37:16 +0000 (07:37 +0000)
commit7f36cd9d96b9cc27a14dcf9dc0c2928b0e27998d
treefcac2cdacd55f4ff081b718e25b07b03291d1fee
parentd4590c38ab960bdd7f0fed52a67a6263373a45a8
Enrich inline messages

Summary:
This patch improves Inliner to provide causes/reasons for negative inline decisions.
1. It adds one new message field to InlineCost to report causes for Always and Never instances. All Never and Always instantiations must provide a simple message.
2. Several functions that used to return the inlining results as boolean are changed to return InlineResult which carries the cause for negative decision.
3. Changed remark priniting and debug output messages to provide the additional messages and related inline cost.
4. Adjusted tests for changed printing.

Patch by: yrouban (Yevgeny Rouban)

Reviewers: craig.topper, sammccall, sgraenitz, NutshellySima, shchenz, chandlerc, apilipenko, javed.absar, tejohnson, dblaikie, sanjoy, eraman, xbolva00

Reviewed By: tejohnson, xbolva00

Subscribers: xbolva00, llvm-commits, arsenm, mehdi_amini, eraman, haicheng, steven_wu, dexonsmith

Differential Revision: https://reviews.llvm.org/D49412

llvm-svn: 338494
20 files changed:
llvm/include/llvm/Analysis/InlineCost.h
llvm/include/llvm/IR/DiagnosticInfo.h
llvm/include/llvm/Transforms/Utils/Cloning.h
llvm/lib/Analysis/InlineCost.cpp
llvm/lib/Target/AMDGPU/AMDGPUInline.cpp
llvm/lib/Transforms/IPO/AlwaysInliner.cpp
llvm/lib/Transforms/IPO/Inliner.cpp
llvm/lib/Transforms/Utils/InlineFunction.cpp
llvm/test/LTO/Resolution/X86/diagnostic-handler-remarks-with-hotness.ll
llvm/test/LTO/Resolution/X86/diagnostic-handler-remarks.ll
llvm/test/LTO/X86/diagnostic-handler-remarks-with-hotness.ll
llvm/test/LTO/X86/diagnostic-handler-remarks.ll
llvm/test/ThinLTO/X86/diagnostic-handler-remarks-with-hotness.ll
llvm/test/ThinLTO/X86/diagnostic-handler-remarks.ll
llvm/test/Transforms/Inline/ARM/inline-fp.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.ll
llvm/test/tools/gold/X86/opt-remarks.ll