diff --git a/llvm/lib/Analysis/InlineCost.cpp b/llvm/lib/Analysis/InlineCost.cpp index 4b5c1bf46a628e..a77dd32f1816ea 100644 --- a/llvm/lib/Analysis/InlineCost.cpp +++ b/llvm/lib/Analysis/InlineCost.cpp @@ -1013,7 +1013,7 @@ class InlineCostCallAnalyzer final : public CallAnalyzer { // Prints the same analysis as dump(), but its definition is not dependent // on the build. - void print(); + void print(raw_ostream &OS); Optional getCostDetails(const Instruction *I) { if (InstructionCostDetailMap.find(I) != InstructionCostDetailMap.end()) @@ -2711,10 +2711,10 @@ InlineResult CallAnalyzer::analyze() { return finalizeAnalysis(); } -void InlineCostCallAnalyzer::print() { -#define DEBUG_PRINT_STAT(x) dbgs() << " " #x ": " << x << "\n" +void InlineCostCallAnalyzer::print(raw_ostream &OS) { +#define DEBUG_PRINT_STAT(x) OS << " " #x ": " << x << "\n" if (PrintInstructionComments) - F.print(dbgs(), &Writer); + F.print(OS, &Writer); DEBUG_PRINT_STAT(NumConstantArgs); DEBUG_PRINT_STAT(NumConstantOffsetPtrArgs); DEBUG_PRINT_STAT(NumAllocaArgs); @@ -2733,7 +2733,7 @@ void InlineCostCallAnalyzer::print() { #if !defined(NDEBUG) || defined(LLVM_ENABLE_DUMP) /// Dump stats about this call's analysis. -LLVM_DUMP_METHOD void InlineCostCallAnalyzer::dump() { print(); } +LLVM_DUMP_METHOD void InlineCostCallAnalyzer::dump() { print(dbgs()); } #endif /// Test that there are no attribute conflicts between Caller and Callee @@ -3127,7 +3127,8 @@ InlineCostAnnotationPrinterPass::run(Function &F, ICCA.analyze(); OS << " Analyzing call of " << CalledFunction->getName() << "... (caller:" << CI->getCaller()->getName() << ")\n"; - ICCA.print(); + ICCA.print(OS); + OS << "\n"; } } } diff --git a/llvm/test/Transforms/Inline/inline-cost-annotation-pass.ll b/llvm/test/Transforms/Inline/inline-cost-annotation-pass.ll index 73b8a0bb0c0b38..17b2e1581e6e7e 100644 --- a/llvm/test/Transforms/Inline/inline-cost-annotation-pass.ll +++ b/llvm/test/Transforms/Inline/inline-cost-annotation-pass.ll @@ -20,6 +20,8 @@ ; CHECK: ContainsNoDuplicateCall: {{.*}} ; CHECK: Cost: {{.*}} ; CHECK: Threshold: {{.*}} +; CHECK-EMPTY: +; CHECK: Analyzing call of foo... (caller:main) define i8 addrspace(1)** @foo() { %1 = inttoptr i64 754974720 to i8 addrspace(1)** @@ -28,5 +30,6 @@ define i8 addrspace(1)** @foo() { define i8 addrspace(1)** @main() { %1 = call i8 addrspace(1)** @foo() + %2 = call i8 addrspace(1)** @foo() ret i8 addrspace(1)** %1 }