Provide reason messages for unviable inlining
authorYevgeny Rouban <yevgeny.rouban@azul.com>
Fri, 1 Feb 2019 10:44:43 +0000 (10:44 +0000)
committerYevgeny Rouban <yevgeny.rouban@azul.com>
Fri, 1 Feb 2019 10:44:43 +0000 (10:44 +0000)
commit15b17d0a7ccdc150e775df5589ebfb67566854f0
treebbe230cabd40dd6ce6f017c800e002a15d09f1f4
parent212833ce766fb9b747672b249667e0161e52968c
Provide reason messages for unviable inlining

InlineCost's isInlineViable() is changed to return InlineResult
instead of bool. This provides messages for failure reasons and
allows to get more specific messages for cases where callsites
are not viable for inlining.

Reviewed By: xbolva00, anemet

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

llvm-svn: 352849
clang/test/Frontend/optimization-remark-with-hotness.c
llvm/include/llvm/Analysis/InlineCost.h
llvm/lib/Analysis/InlineCost.cpp
llvm/lib/Target/AMDGPU/AMDGPUInline.cpp
llvm/lib/Transforms/IPO/AlwaysInliner.cpp
llvm/test/Transforms/Inline/inline-remark.ll