[PATCH] D82572: [CallGraph] Add support for callback call sites

Sergey Dmitriev via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Jun 25 09:07:42 PDT 2020


sdmitriev created this revision.
sdmitriev added reviewers: jdoerfert, hfinkel.
Herald added subscribers: llvm-commits, sstefan1, kuter, hiraditya.
Herald added a reviewer: sstefan1.
Herald added a reviewer: baziotis.
Herald added a project: LLVM.

This patch changes call graph analysis to recognize callback call sites
and add an artificial 'reference' call record from the broker function
caller to the callback function in the call graph. A presence of such
reference enforces bottom-up traversal order for callback functions in
CG SCC pass manager because callback function logically becomes a callee
of the broker function caller.


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D82572

Files:
  llvm/include/llvm/Analysis/CallGraph.h
  llvm/include/llvm/IR/AbstractCallSite.h
  llvm/lib/Analysis/CallGraph.cpp
  llvm/lib/Analysis/CallGraphSCCPass.cpp
  llvm/lib/Transforms/IPO/SyntheticCountsPropagation.cpp
  llvm/lib/Transforms/Utils/CallGraphUpdater.cpp
  llvm/lib/Transforms/Utils/InlineFunction.cpp
  llvm/test/Analysis/CallGraph/callback-calls.ll
  llvm/test/Analysis/CallGraph/non-leaf-intrinsics.ll
  llvm/test/Transforms/Attributor/IPConstantProp/openmp_parallel_for.ll
  llvm/test/Transforms/Attributor/IPConstantProp/pthreads.ll
  llvm/test/Transforms/Attributor/callbacks.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D82572.273384.patch
Type: text/x-patch
Size: 22662 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20200625/10d4c819/attachment.bin>


More information about the llvm-commits mailing list