summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--llvm/lib/Transforms/Utils/EntryExitInstrumenter.cpp3
-rw-r--r--llvm/test/Transforms/CountingFunctionInserter/mcount.ll5
2 files changed, 7 insertions, 1 deletions
diff --git a/llvm/lib/Transforms/Utils/EntryExitInstrumenter.cpp b/llvm/lib/Transforms/Utils/EntryExitInstrumenter.cpp
index bdcd3d4cc04..064d7d003a9 100644
--- a/llvm/lib/Transforms/Utils/EntryExitInstrumenter.cpp
+++ b/llvm/lib/Transforms/Utils/EntryExitInstrumenter.cpp
@@ -29,7 +29,8 @@ static void insertCall(Function &CurFn, StringRef Func,
Func == "\01_mcount" ||
Func == "\01mcount" ||
Func == "__mcount" ||
- Func == "_mcount") {
+ Func == "_mcount" ||
+ Func == "__cyg_profile_func_enter_bare") {
Constant *Fn = M.getOrInsertFunction(Func, Type::getVoidTy(C));
CallInst::Create(Fn, "", InsertionPt);
return;
diff --git a/llvm/test/Transforms/CountingFunctionInserter/mcount.ll b/llvm/test/Transforms/CountingFunctionInserter/mcount.ll
index 6d9aaab18c6..50e6b1321bb 100644
--- a/llvm/test/Transforms/CountingFunctionInserter/mcount.ll
+++ b/llvm/test/Transforms/CountingFunctionInserter/mcount.ll
@@ -73,6 +73,10 @@ define void @f6() #6 { entry: ret void }
; CHECK-LABEL: define void @f6
; CHECK: call void @_mcount
+define void @f7() #7 { entry: ret void }
+; CHECK-LABEL: define void @f7
+; CHECK: call void @__cyg_profile_func_enter_bare
+
; The attributes are "consumed" when the instrumentation is inserted.
; CHECK: attributes
@@ -84,3 +88,4 @@ attributes #3 = { "instrument-function-entry-inlined"="\01_mcount" }
attributes #4 = { "instrument-function-entry-inlined"="\01mcount" }
attributes #5 = { "instrument-function-entry-inlined"="__mcount" }
attributes #6 = { "instrument-function-entry-inlined"="_mcount" }
+attributes #7 = { "instrument-function-entry-inlined"="__cyg_profile_func_enter_bare" }
OpenPOWER on IntegriCloud