[all-commits] [llvm/llvm-project] 26a866: [MemProf] Handle missing tail call frames (#75823)

Teresa Johnson via All-commits all-commits at lists.llvm.org
Thu Jan 11 06:58:00 PST 2024


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 26a8664ed4573ef1559c4edc7b254a10d186d428
      https://github.com/llvm/llvm-project/commit/26a8664ed4573ef1559c4edc7b254a10d186d428
  Author: Teresa Johnson <tejohnson at google.com>
  Date:   2024-01-11 (Thu, 11 Jan 2024)

  Changed paths:
    M llvm/include/llvm/IR/ModuleSummaryIndex.h
    M llvm/lib/Bitcode/Writer/BitcodeWriter.cpp
    M llvm/lib/Transforms/IPO/MemProfContextDisambiguation.cpp
    A llvm/test/ThinLTO/X86/memprof-tailcall-nonunique.ll
    A llvm/test/ThinLTO/X86/memprof-tailcall.ll
    A llvm/test/Transforms/MemProfContextDisambiguation/tailcall-nonunique.ll
    A llvm/test/Transforms/MemProfContextDisambiguation/tailcall.ll

  Log Message:
  -----------
  [MemProf] Handle missing tail call frames (#75823)

If tail call optimization was not disabled for the profiled binary, the
call contexts will be missing frames for tail calls. Handle this by
performing a limited search through tail call edges for the profiled
callee when a discontinuity is detected. The search depth is adjustable
but defaults to 5.

If we are able to identify a short sequence of tail calls, update the
graph for those calls. In the case of ThinLTO, synthesize the necessary
CallsiteInfos for carrying the cloning information to the backends.




More information about the All-commits mailing list