14#ifndef LLVM_TRANSFORMS_UTILS_FUNCTIONIMPORTUTILS_H
15#define LLVM_TRANSFORMS_UTILS_FUNCTIONIMPORTUTILS_H
41 bool HasExportedFunctions =
false;
54 bool ClearDSOLocalOnDeclarations;
66 bool shouldPromoteLocalToGlobal(
const GlobalValue *SGV,
73 bool isNonRenamableLocal(
const GlobalValue &GV)
const;
78 bool isPerformingImport()
const {
return GlobalsToImport !=
nullptr; }
79 bool isModuleExporting()
const {
return HasExportedFunctions; }
87 std::string getPromotedName(
const GlobalValue *SGV);
93 void processGlobalsForThinLTO();
110 bool ClearDSOLocalOnDeclarations);
118 bool ClearDSOLocalOnDeclarations,
ModuleSummaryIndex.h This file contains the declarations the classes that hold the module index and s...
This file implements a set that has insertion order iteration characteristics.
Implements a dense probed hash-table based set.
LLVM_ABI FunctionImportGlobalProcessing(Module &M, const ModuleSummaryIndex &Index, SetVector< GlobalValue * > *GlobalsToImport, bool ClearDSOLocalOnDeclarations)
Function and variable summary information to aid decisions and implementation of importing.
LinkageTypes
An enumeration for the kinds of linkage for global values.
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 vector that has set insertion semantics.
SmallPtrSet - This class implements a set which is optimized for holding SmallSize or less elements.
This is an optimization pass for GlobalISel generic memory operations.
LLVM_ABI void renameModuleForThinLTO(Module &M, const ModuleSummaryIndex &Index, bool ClearDSOLocalOnDeclarations, SetVector< GlobalValue * > *GlobalsToImport=nullptr)
Perform in-place global value handling on the given Module for exported local functions renamed and p...