@@ -24,6 +24,10 @@ class Resolver;
2424// / Constructs a call-graph using the given CGResolver to resolve indirect
2525// / calls.
2626// /
27+ // / This overload does not mutate the IRDB. Use
28+ // / buildLLVMBasedCallGraphWithExternCallbackModels() if PhASAR should insert
29+ // / its model functions first.
30+ // /
2731// / Uses a fixpoint iteration, if
2832// / `CGResolver.mutatesHelperAnalysisInformation()` returns true and the
2933// / soundness S is not Soundness::Unsound.
@@ -40,9 +44,24 @@ buildLLVMBasedCallGraph(const LLVMProjectIRDB &IRDB, Resolver &CGResolver,
4044 llvm::ArrayRef<const llvm::Function *> EntryPoints,
4145 Soundness S = Soundness::Soundy);
4246
47+ // / May insert model functions for known external callback brokers before the
48+ // / call-graph is built.
49+ // / If CGResolver owns helper-analysis state that should include generated model
50+ // / functions, rewrite the IRDB before constructing that state or use a CGType
51+ // / overload.
52+ [[nodiscard]] LLVMBasedCallGraph
53+ buildLLVMBasedCallGraphWithExternCallbackModels (
54+ LLVMProjectIRDB &IRDB , Resolver &CGResolver,
55+ llvm::ArrayRef<const llvm::Function *> EntryPoints,
56+ Soundness S = Soundness::Soundy);
57+
4358// / Constructs a call-graph using the given CGResolver to resolve indirect
4459// / calls.
4560// /
61+ // / This overload does not mutate the IRDB. Use
62+ // / buildLLVMBasedCallGraphWithExternCallbackModels() if PhASAR should insert
63+ // / its model functions first.
64+ // /
4665// / Uses a fixpoint iteration, if
4766// / `CGResolver.mutatesHelperAnalysisInformation()` returns true and the
4867// / soundness S is not Soundness::Unsound.
@@ -59,6 +78,27 @@ buildLLVMBasedCallGraph(const LLVMProjectIRDB &IRDB, Resolver &CGResolver,
5978 llvm::ArrayRef<std::string> EntryPoints,
6079 Soundness S = Soundness::Soundy);
6180
81+ // / May insert model functions for known external callback brokers before the
82+ // / call-graph is built.
83+ // / If CGResolver owns helper-analysis state that should include generated model
84+ // / functions, rewrite the IRDB before constructing that state or use a CGType
85+ // / overload.
86+ [[nodiscard]] LLVMBasedCallGraph
87+ buildLLVMBasedCallGraphWithExternCallbackModels (
88+ LLVMProjectIRDB &IRDB , Resolver &CGResolver,
89+ llvm::ArrayRef<std::string> EntryPoints, Soundness S = Soundness::Soundy);
90+
91+ // / Kept for compatibility with LLVMBasedICFG. See the constructor of
92+ // / LLVMBasedICFG::LLVMBasedICFG(LLVMProjectIRDB *, CallGraphAnalysisType,
93+ // / llvm::ArrayRef<std::string>, DIBasedTypeHierarchy *, LLVMAliasInfoRef,
94+ // / Soundness, bool) for more information.
95+ [[nodiscard]] LLVMBasedCallGraph
96+ buildLLVMBasedCallGraph (LLVMProjectIRDB &IRDB , CallGraphAnalysisType CGType,
97+ llvm::ArrayRef<const llvm::Function *> EntryPoints,
98+ DIBasedTypeHierarchy *TH , LLVMVFTableProvider &VTP ,
99+ LLVMAliasInfoRef PT = nullptr ,
100+ Soundness S = Soundness::Soundy);
101+
62102// / Kept for compatibility with LLVMBasedICFG. See the constructor of
63103// / LLVMBasedICFG::LLVMBasedICFG(LLVMProjectIRDB *, CallGraphAnalysisType,
64104// / llvm::ArrayRef<std::string>, DIBasedTypeHierarchy *, LLVMAliasInfoRef,
@@ -70,6 +110,17 @@ buildLLVMBasedCallGraph(LLVMProjectIRDB &IRDB, CallGraphAnalysisType CGType,
70110 LLVMAliasInfoRef PT = nullptr ,
71111 Soundness S = Soundness::Soundy);
72112
113+ // / Kept for compatibility with LLVMBasedICFG. See the constructor of
114+ // / LLVMBasedICFG::LLVMBasedICFG(LLVMProjectIRDB *, CallGraphAnalysisType,
115+ // / llvm::ArrayRef<std::string>, DIBasedTypeHierarchy *, LLVMAliasInfoRef,
116+ // / Soundness, bool) for more information.
117+ [[nodiscard]] LLVMBasedCallGraph
118+ buildLLVMBasedCallGraph (LLVMProjectIRDB &IRDB , CallGraphAnalysisType CGType,
119+ llvm::ArrayRef<std::string> EntryPoints,
120+ DIBasedTypeHierarchy *TH , LLVMVFTableProvider &VTP ,
121+ LLVMAliasInfoRef PT = nullptr ,
122+ Soundness S = Soundness::Soundy);
123+
73124// / Kept for compatibility with LLVMBasedICFG. See the constructor of
74125// / LLVMBasedICFG::LLVMBasedICFG(LLVMProjectIRDB *, CallGraphAnalysisType,
75126// / llvm::ArrayRef<std::string>, DIBasedTypeHierarchy *, LLVMAliasInfoRef,
0 commit comments