15#ifndef LLVM_TRANSFORMS_IPO_MEMPROF_CONTEXT_DISAMBIGUATION_H
16#define LLVM_TRANSFORMS_IPO_MEMPROF_CONTEXT_DISAMBIGUATION_H
39 bool applyImport(
Module &M);
42 bool initializeIndirectCallPromotionInfo(
Module &M);
46 struct ICallAnalysisData {
48 std::vector<InstrProfValueData> CandidateProfileData;
51 size_t CallsiteInfoStartIndex;
68 ArrayRef<std::unique_ptr<ValueToValueMapTy>> VMaps,
77 std::unique_ptr<ModuleSummaryIndex> ImportSummaryForTesting;
85 std::unique_ptr<InstrProfSymtab> Symtab;
86 std::unique_ptr<ICallPromotionAnalysis> ICallAnalysis;
90 bool isSamplePGO =
false);
This header defines various interfaces for pass management in LLVM.
ModuleSummaryIndex.h This file contains the declarations the classes that hold the module index and s...
ArrayRef - Represent a constant reference to an array (0 or more elements consecutively in memory),...
Base class for all callable instructions (InvokeInst and CallInst) Holds everything related to callin...
Function and variable summary information to aid decisions and implementation of importing.
uint64_t GUID
Declare a type to represent a global unique identifier for a global value.
MemProfContextDisambiguation(const ModuleSummaryIndex *Summary=nullptr, bool isSamplePGO=false)
PreservedAnalyses run(Module &M, ModuleAnalysisManager &AM)
Class to hold module path string table and global value map, and encapsulate methods for operating on...
A Module instance is used to store all the information related to an LLVM module.
A set of analyses that are preserved following a run of a transformation pass.
This is a 'vector' (really, a variable-sized array), optimized for the case when the array is small.
An efficient, type-erasing, non-owning reference to a callable.
This is an optimization pass for GlobalISel generic memory operations.
AnalysisManager< Module > ModuleAnalysisManager
Convenience typedef for the Module analysis manager.
A CRTP mix-in to automatically provide informational APIs needed for passes.