[all-commits] [llvm/llvm-project] e7aed2: [ctxprof] Handle instrumenting functions with `mus...

Mircea Trofin via All-commits all-commits at lists.llvm.org
Mon Apr 14 10:01:46 PDT 2025


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: e7aed23d32cb3a1082c5ce9bbe16eb2b56ebe55f
      https://github.com/llvm/llvm-project/commit/e7aed23d32cb3a1082c5ce9bbe16eb2b56ebe55f
  Author: Mircea Trofin <mtrofin at google.com>
  Date:   2025-04-14 (Mon, 14 Apr 2025)

  Changed paths:
    M compiler-rt/lib/ctx_profile/CtxInstrContextNode.h
    M compiler-rt/lib/ctx_profile/CtxInstrProfiling.cpp
    M compiler-rt/lib/ctx_profile/CtxInstrProfiling.h
    M compiler-rt/lib/ctx_profile/RootAutoDetector.cpp
    M compiler-rt/lib/ctx_profile/tests/CtxInstrProfilingTest.cpp
    M llvm/include/llvm/ProfileData/CtxInstrContextNode.h
    M llvm/lib/Transforms/Instrumentation/PGOCtxProfLowering.cpp
    M llvm/test/Transforms/PGOProfile/ctx-instrumentation.ll

  Log Message:
  -----------
  [ctxprof] Handle instrumenting functions with `musttail` calls (#135121)

Functions with `musttail` calls can't be roots because we can't instrument their `ret` to release the context. This patch tags their `CtxRoot` field in their `FunctionData`. In compiler-rt we then know not to allow such functions become roots, and also not confuse `CtxRoot == 0x1` with there being a context root.

Currently we also lose the context tree under such cases. We can, in a subsequent patch, have the root detector search past these functions.



To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications


More information about the All-commits mailing list