[PATCH] D104546: [CSSPGO][llvm-profgen] Handle return to external transition.
Hongtao Yu via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Tue Jun 22 16:25:15 PDT 2021
This revision was landed with ongoing or failed builds.
This revision was automatically updated to reflect the committed changes.
Closed by commit rG5c8659801a49: [CSSPGO][llvm-profgen] Handle return to external transition. (authored by hoy).
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D104546/new/
https://reviews.llvm.org/D104546
Files:
llvm/tools/llvm-profgen/PerfReader.cpp
Index: llvm/tools/llvm-profgen/PerfReader.cpp
===================================================================
--- llvm/tools/llvm-profgen/PerfReader.cpp
+++ llvm/tools/llvm-profgen/PerfReader.cpp
@@ -460,6 +460,16 @@
// they are likely in different contexts.
break;
}
+
+ if (Binary->addressIsReturn(Src)) {
+ // In a callback case, a return from internal code, say A, to external
+ // runtime can happen. The external runtime can then call back to
+ // another internal routine, say B. Making an artificial branch that
+ // looks like a return from A to B can confuse the unwinder to treat
+ // the instruction before B as the call instruction.
+ break;
+ }
+
// For transition to external code, group the Source with the next
// availabe transition target.
Dst = PrevTrDst;
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D104546.353817.patch
Type: text/x-patch
Size: 878 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20210622/d2946548/attachment.bin>
More information about the llvm-commits
mailing list