[Inliner] Pass nullptr for the ORE param of getInlineCost if RemarkEnabled
authorWei Mi <wmi@google.com>
Thu, 21 Feb 2019 02:57:52 +0000 (02:57 +0000)
committerWei Mi <wmi@google.com>
Thu, 21 Feb 2019 02:57:52 +0000 (02:57 +0000)
commit500606f270ffcbdc199ee581fb2147700a7bb139
tree3fe075e7d473dbe207be4db9035af34f90ab04d6
parent2d84c00dfa536e813555da9c7555c1ce5ea52c06
[Inliner] Pass nullptr for the ORE param of getInlineCost if RemarkEnabled
is false.

Right now for inliner and partial inliner, we always pass the address of a
valid ORE object to getInlineCost even if RemarkEnabled is false because of
no -Rpass is specified. Since ComputeFullInlineCost will be set to true if
ORE is non-null in getInlineCost, this introduces the problem that in
getInlineCost we cannot return early even if we already know the cost is
definitely higher than the threshold. It is a general problem for compile
time.

This patch fixes that by pass nullptr as the ORE argument if RemarkEnabled is
false.

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

llvm-svn: 354542
llvm/lib/Transforms/IPO/Inliner.cpp
llvm/lib/Transforms/IPO/PartialInlining.cpp