Index: llvm/lib/Analysis/InlineCost.cpp =================================================================== --- llvm/lib/Analysis/InlineCost.cpp +++ llvm/lib/Analysis/InlineCost.cpp @@ -726,6 +726,10 @@ void dump(); + // Prints the same analysis as dump(), but its definition is not dependent + // on the build. + void print(); + Optional getCostDetails(const Instruction *I) { if (InstructionCostDetailMap.find(I) != InstructionCostDetailMap.end()) return InstructionCostDetailMap[I]; @@ -2167,6 +2171,26 @@ return finalizeAnalysis(); } +void InlineCostCallAnalyzer::print() { +#define PRINT_STAT(x) dbgs() << " " #x ": " << x << "\n" + if (PrintInstructionComments) + F.print(dbgs(), &Writer); + PRINT_STAT(NumConstantArgs); + PRINT_STAT(NumConstantOffsetPtrArgs); + PRINT_STAT(NumAllocaArgs); + PRINT_STAT(NumConstantPtrCmps); + PRINT_STAT(NumConstantPtrDiffs); + PRINT_STAT(NumInstructionsSimplified); + PRINT_STAT(NumInstructions); + PRINT_STAT(SROACostSavings); + PRINT_STAT(SROACostSavingsLost); + PRINT_STAT(LoadEliminationCost); + PRINT_STAT(ContainsNoDuplicateCall); + PRINT_STAT(Cost); + PRINT_STAT(Threshold); +#undef PRINT_STAT +} + #if !defined(NDEBUG) || defined(LLVM_ENABLE_DUMP) /// Dump stats about this call's analysis. LLVM_DUMP_METHOD void InlineCostCallAnalyzer::dump() {