InlineCostAnnotationPrinter: Fix constructing random TargetTransformInfo (#133637)
Query the correct TTI for the current target instead of constructing
some random default one. Also query the pass manager for
ProfileSummaryInfo.
This should only change the printing, not the actual result.
diff --git a/llvm/lib/Analysis/InlineCost.cpp b/llvm/lib/Analysis/InlineCost.cpp
index e42b2bd..9f193b6 100644
--- a/llvm/lib/Analysis/InlineCost.cpp
+++ b/llvm/lib/Analysis/InlineCost.cpp
@@ -3295,9 +3295,12 @@
[&](Function &F) -> AssumptionCache & {
return FAM.getResult<AssumptionAnalysis>(F);
};
- Module *M = F.getParent();
- ProfileSummaryInfo PSI(*M);
- TargetTransformInfo TTI(M->getDataLayout());
+
+ auto &MAMProxy = FAM.getResult<ModuleAnalysisManagerFunctionProxy>(F);
+ ProfileSummaryInfo *PSI =
+ MAMProxy.getCachedResult<ProfileSummaryAnalysis>(*F.getParent());
+ const TargetTransformInfo &TTI = FAM.getResult<TargetIRAnalysis>(F);
+
// FIXME: Redesign the usage of InlineParams to expand the scope of this pass.
// In the current implementation, the type of InlineParams doesn't matter as
// the pass serves only for verification of inliner's decisions.
@@ -3312,7 +3315,7 @@
continue;
OptimizationRemarkEmitter ORE(CalledFunction);
InlineCostCallAnalyzer ICCA(*CalledFunction, *CB, Params, TTI,
- GetAssumptionCache, nullptr, nullptr, &PSI,
+ GetAssumptionCache, nullptr, nullptr, PSI,
&ORE);
ICCA.analyze();
OS << " Analyzing call of " << CalledFunction->getName()