summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Transforms/Scalar/TailRecursionElimination.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/lib/Transforms/Scalar/TailRecursionElimination.cpp')
-rw-r--r--llvm/lib/Transforms/Scalar/TailRecursionElimination.cpp18
1 files changed, 12 insertions, 6 deletions
diff --git a/llvm/lib/Transforms/Scalar/TailRecursionElimination.cpp b/llvm/lib/Transforms/Scalar/TailRecursionElimination.cpp
index 62fb552cb08..23768675555 100644
--- a/llvm/lib/Transforms/Scalar/TailRecursionElimination.cpp
+++ b/llvm/lib/Transforms/Scalar/TailRecursionElimination.cpp
@@ -255,8 +255,10 @@ static bool markTails(Function &F, bool &AllCallsAreTailCalls,
}
if (SafeToTail) {
using namespace ore;
- ORE->emit(OptimizationRemark(DEBUG_TYPE, "tailcall-readnone", CI)
- << "marked as tail call candidate (readnone)");
+ ORE->emit([&]() {
+ return OptimizationRemark(DEBUG_TYPE, "tailcall-readnone", CI)
+ << "marked as tail call candidate (readnone)";
+ });
CI->setTailCall();
Modified = true;
continue;
@@ -301,8 +303,10 @@ static bool markTails(Function &F, bool &AllCallsAreTailCalls,
if (Visited[CI->getParent()] != ESCAPED) {
// If the escape point was part way through the block, calls after the
// escape point wouldn't have been put into DeferredTails.
- ORE->emit(OptimizationRemark(DEBUG_TYPE, "tailcall", CI)
- << "marked as tail call candidate");
+ ORE->emit([&]() {
+ return OptimizationRemark(DEBUG_TYPE, "tailcall", CI)
+ << "marked as tail call candidate";
+ });
CI->setTailCall();
Modified = true;
} else {
@@ -554,8 +558,10 @@ static bool eliminateRecursiveTailCall(CallInst *CI, ReturnInst *Ret,
Function *F = BB->getParent();
using namespace ore;
- ORE->emit(OptimizationRemark(DEBUG_TYPE, "tailcall-recursion", CI)
- << "transforming tail recursion into loop");
+ ORE->emit([&]() {
+ return OptimizationRemark(DEBUG_TYPE, "tailcall-recursion", CI)
+ << "transforming tail recursion into loop";
+ });
// OK! We can transform this tail call. If this is the first one found,
// create the new entry block, allowing us to branch back to the old entry.
OpenPOWER on IntegriCloud