[PATCH] D104546: [CSSPGO][llvm-profgen] Handle reurn to external transition.
    Wenlei He via Phabricator via llvm-commits 
    llvm-commits at lists.llvm.org
       
    Mon Jun 21 17:29:46 PDT 2021
    
    
  
wenlei added inline comments.
================
Comment at: llvm/tools/llvm-profgen/PerfReader.cpp:464
+
+      if (Binary->addressIsReturn(Src)) {
+        // In a callback case, a return from internal code, say A, to external
----------------
If we have a transition from A to B, which is in the form of A calling <external> and <external> calling B, we would form artificial branch from A to B as well. But the same issue with unwinder still exists, right?
So IIUC, the bail out condition should be A and B are not the same frame/function? In order for artificial branch to work with unwinder, the original execution flow can't involve extra external frames. 
Repository:
  rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D104546/new/
https://reviews.llvm.org/D104546
    
    
More information about the llvm-commits
mailing list