[all-commits] [llvm/llvm-project] 1de716: [MemProf] Support cloning for indirect calls with ...

Teresa Johnson via All-commits all-commits at lists.llvm.org
Fri Oct 11 13:53:56 PDT 2024


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 1de71652fd232163dadfee68e2f2b3f0d6dfb1e1
      https://github.com/llvm/llvm-project/commit/1de71652fd232163dadfee68e2f2b3f0d6dfb1e1
  Author: Teresa Johnson <tejohnson at google.com>
  Date:   2024-10-11 (Fri, 11 Oct 2024)

  Changed paths:
    M llvm/include/llvm/IR/ModuleSummaryIndex.h
    M llvm/include/llvm/Transforms/IPO/MemProfContextDisambiguation.h
    M llvm/lib/Analysis/ModuleSummaryAnalysis.cpp
    M llvm/lib/IR/AsmWriter.cpp
    M llvm/lib/Passes/PassBuilderPipelines.cpp
    M llvm/lib/Transforms/IPO/MemProfContextDisambiguation.cpp
    A llvm/test/ThinLTO/X86/memprof-icp.ll

  Log Message:
  -----------
  [MemProf] Support cloning for indirect calls with ThinLTO (#110625)

This patch enables support for cloning in indirect callsites.

This is done by synthesizing callsite records for each virtual call
target from the profile metadata. In the thin link all the synthesized
records for a particular indirect callsite initially share the same
context node, but support is added to partition the callsites and
outgoing edges based on the callee function, creating a separate node
for each target.

In the LTO backend, when cloning is needed we first perform indirect
call promotion, then change the target of the new direct call to the
desired clone.

Note this is ThinLTO-specific, since for regular LTO indirect call
promotion should have already occurred.



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