LLVM 22.0.0git
CodeGenData.cpp File Reference

Go to the source code of this file.

Namespaces

namespace  llvm
 This is an optimization pass for GlobalISel generic memory operations.
namespace  llvm::IndexedCGData
namespace  llvm::cgdata

Macros

#define DEBUG_TYPE   "cg-data"
#define CG_DATA_SECT_ENTRY(Kind, SectNameCommon, SectNameCoff, Prefix)
#define CG_DATA_SIMPLE_QUOTE(x)
#define CG_DATA_QUOTE(x)
#define CG_DATA_DEFINED
#define CG_DATA_OUTLINE_COMMON   __llvm_outline
#define CG_DATA_MERGE_COMMON   __llvm_merge
#define CG_DATA_OUTLINE_COFF   ".loutline"
#define CG_DATA_MERGE_COFF   ".lmerge"
#define CG_DATA_OUTLINE_SECT_NAME   CG_DATA_QUOTE(CG_DATA_OUTLINE_COMMON)
#define CG_DATA_MERGE_SECT_NAME   CG_DATA_QUOTE(CG_DATA_MERGE_COMMON)
#define CG_DATA_INDEX_VERSION   4
#define CG_DATA_SECT_ENTRY(Kind, SectNameCommon, SectNameCoff, Prefix)
#define CG_DATA_SIMPLE_QUOTE(x)
#define CG_DATA_QUOTE(x)
#define CG_DATA_DEFINED
#define CG_DATA_OUTLINE_COMMON   __llvm_outline
#define CG_DATA_MERGE_COMMON   __llvm_merge
#define CG_DATA_OUTLINE_COFF   ".loutline"
#define CG_DATA_MERGE_COFF   ".lmerge"
#define CG_DATA_OUTLINE_SECT_NAME   CG_DATA_QUOTE(CG_DATA_OUTLINE_COMMON)
#define CG_DATA_MERGE_SECT_NAME   CG_DATA_QUOTE(CG_DATA_MERGE_COMMON)
#define CG_DATA_INDEX_VERSION   4
#define CG_DATA_SECT_ENTRY(Kind, SectNameCommon, SectNameCoff, Prefix)
#define CG_DATA_SIMPLE_QUOTE(x)
#define CG_DATA_QUOTE(x)
#define CG_DATA_DEFINED
#define CG_DATA_OUTLINE_COMMON   __llvm_outline
#define CG_DATA_MERGE_COMMON   __llvm_merge
#define CG_DATA_OUTLINE_COFF   ".loutline"
#define CG_DATA_MERGE_COFF   ".lmerge"
#define CG_DATA_OUTLINE_SECT_NAME   CG_DATA_QUOTE(CG_DATA_OUTLINE_COMMON)
#define CG_DATA_MERGE_SECT_NAME   CG_DATA_QUOTE(CG_DATA_MERGE_COMMON)
#define CG_DATA_INDEX_VERSION   4

Functions

static std::string getCGDataErrString (cgdata_error Err, const std::string &ErrMsg="")
LLVM_ABI std::string llvm::getCodeGenDataSectionName (CGDataSectKind CGSK, Triple::ObjectFormatType OF, bool AddSegmentInfo=true)
LLVM_ABI void llvm::cgdata::warn (Twine Message, StringRef Whence="", StringRef Hint="")
LLVM_ABI void llvm::cgdata::warn (Error E, StringRef Whence="")
LLVM_ABI void llvm::cgdata::saveModuleForTwoRounds (const Module &TheModule, unsigned Task, AddStreamFn AddStream)
 Save TheModule before the first codegen round.
LLVM_ABI std::unique_ptr< Modulellvm::cgdata::loadModuleForTwoRounds (BitcodeModule &OrigModule, unsigned Task, LLVMContext &Context, ArrayRef< StringRef > IRFiles)
 Load the optimized bitcode module for the second codegen round.
LLVM_ABI Expected< stable_hashllvm::cgdata::mergeCodeGenData (ArrayRef< StringRef > ObjectFiles)
 Merge the codegen data from the scratch objects ObjectFiles from the first codegen round.

Variables

static cl::opt< boolCodeGenDataGenerate ("codegen-data-generate", cl::init(false), cl::Hidden, cl::desc("Emit CodeGen Data into custom sections"))
static cl::opt< std::stringCodeGenDataUsePath ("codegen-data-use-path", cl::init(""), cl::Hidden, cl::desc("File path to where .cgdata file is read"))
cl::opt< boolCodeGenDataThinLTOTwoRounds ("codegen-data-thinlto-two-rounds", cl::init(false), cl::Hidden, cl::desc("Enable two-round ThinLTO code generation. The first round " "emits codegen data, while the second round uses the emitted " "codegen data for further optimizations."))

Macro Definition Documentation

◆ CG_DATA_DEFINED [1/3]

#define CG_DATA_DEFINED

◆ CG_DATA_DEFINED [2/3]

#define CG_DATA_DEFINED

◆ CG_DATA_DEFINED [3/3]

#define CG_DATA_DEFINED

◆ CG_DATA_INDEX_VERSION [1/3]

#define CG_DATA_INDEX_VERSION   4

◆ CG_DATA_INDEX_VERSION [2/3]

#define CG_DATA_INDEX_VERSION   4

◆ CG_DATA_INDEX_VERSION [3/3]

#define CG_DATA_INDEX_VERSION   4

◆ CG_DATA_MERGE_COFF [1/3]

#define CG_DATA_MERGE_COFF   ".lmerge"

◆ CG_DATA_MERGE_COFF [2/3]

#define CG_DATA_MERGE_COFF   ".lmerge"

◆ CG_DATA_MERGE_COFF [3/3]

#define CG_DATA_MERGE_COFF   ".lmerge"

◆ CG_DATA_MERGE_COMMON [1/3]

#define CG_DATA_MERGE_COMMON   __llvm_merge

◆ CG_DATA_MERGE_COMMON [2/3]

#define CG_DATA_MERGE_COMMON   __llvm_merge

◆ CG_DATA_MERGE_COMMON [3/3]

#define CG_DATA_MERGE_COMMON   __llvm_merge

◆ CG_DATA_MERGE_SECT_NAME [1/3]

#define CG_DATA_MERGE_SECT_NAME   CG_DATA_QUOTE(CG_DATA_MERGE_COMMON)

◆ CG_DATA_MERGE_SECT_NAME [2/3]

#define CG_DATA_MERGE_SECT_NAME   CG_DATA_QUOTE(CG_DATA_MERGE_COMMON)

◆ CG_DATA_MERGE_SECT_NAME [3/3]

#define CG_DATA_MERGE_SECT_NAME   CG_DATA_QUOTE(CG_DATA_MERGE_COMMON)

◆ CG_DATA_OUTLINE_COFF [1/3]

#define CG_DATA_OUTLINE_COFF   ".loutline"

◆ CG_DATA_OUTLINE_COFF [2/3]

#define CG_DATA_OUTLINE_COFF   ".loutline"

◆ CG_DATA_OUTLINE_COFF [3/3]

#define CG_DATA_OUTLINE_COFF   ".loutline"

◆ CG_DATA_OUTLINE_COMMON [1/3]

#define CG_DATA_OUTLINE_COMMON   __llvm_outline

◆ CG_DATA_OUTLINE_COMMON [2/3]

#define CG_DATA_OUTLINE_COMMON   __llvm_outline

◆ CG_DATA_OUTLINE_COMMON [3/3]

#define CG_DATA_OUTLINE_COMMON   __llvm_outline

◆ CG_DATA_OUTLINE_SECT_NAME [1/3]

#define CG_DATA_OUTLINE_SECT_NAME   CG_DATA_QUOTE(CG_DATA_OUTLINE_COMMON)

◆ CG_DATA_OUTLINE_SECT_NAME [2/3]

#define CG_DATA_OUTLINE_SECT_NAME   CG_DATA_QUOTE(CG_DATA_OUTLINE_COMMON)

◆ CG_DATA_OUTLINE_SECT_NAME [3/3]

#define CG_DATA_OUTLINE_SECT_NAME   CG_DATA_QUOTE(CG_DATA_OUTLINE_COMMON)

◆ CG_DATA_QUOTE [1/3]

#define CG_DATA_QUOTE ( x)
Value:
#define CG_DATA_SIMPLE_QUOTE(x)
Definition CodeGenData.h:51

◆ CG_DATA_QUOTE [2/3]

#define CG_DATA_QUOTE ( x)

◆ CG_DATA_QUOTE [3/3]

#define CG_DATA_QUOTE ( x)

◆ CG_DATA_SECT_ENTRY [1/3]

#define CG_DATA_SECT_ENTRY ( Kind,
SectNameCommon,
SectNameCoff,
Prefix )
Value:
SectNameCommon,

◆ CG_DATA_SECT_ENTRY [2/3]

#define CG_DATA_SECT_ENTRY ( Kind,
SectNameCommon,
SectNameCoff,
Prefix )
Value:
SectNameCoff,

◆ CG_DATA_SECT_ENTRY [3/3]

#define CG_DATA_SECT_ENTRY ( Kind,
SectNameCommon,
SectNameCoff,
Prefix )
Value:
Prefix,

◆ CG_DATA_SIMPLE_QUOTE [1/3]

#define CG_DATA_SIMPLE_QUOTE ( x)
Value:
#x

◆ CG_DATA_SIMPLE_QUOTE [2/3]

#define CG_DATA_SIMPLE_QUOTE ( x)
Value:
#x

◆ CG_DATA_SIMPLE_QUOTE [3/3]

#define CG_DATA_SIMPLE_QUOTE ( x)
Value:
#x

◆ DEBUG_TYPE

#define DEBUG_TYPE   "cg-data"

Definition at line 23 of file CodeGenData.cpp.

Function Documentation

◆ getCGDataErrString()

Variable Documentation

◆ CodeGenDataGenerate

cl::opt< bool > CodeGenDataGenerate("codegen-data-generate", cl::init(false), cl::Hidden, cl::desc("Emit CodeGen Data into custom sections")) ( "codegen-data-generate" ,
cl::init(false) ,
cl::Hidden ,
cl::desc("Emit CodeGen Data into custom sections")  )
static

◆ CodeGenDataThinLTOTwoRounds

cl::opt< bool > CodeGenDataThinLTOTwoRounds("codegen-data-thinlto-two-rounds", cl::init(false), cl::Hidden, cl::desc("Enable two-round ThinLTO code generation. The first round " "emits codegen data, while the second round uses the emitted " "codegen data for further optimizations.")) ( "codegen-data-thinlto-two-rounds" ,
cl::init(false) ,
cl::Hidden ,
cl::desc("Enable two-round ThinLTO code generation. The first round " "emits codegen data, while the second round uses the emitted " "codegen data for further optimizations.")  )

◆ CodeGenDataUsePath

cl::opt< std::string > CodeGenDataUsePath("codegen-data-use-path", cl::init(""), cl::Hidden, cl::desc("File path to where .cgdata file is read")) ( "codegen-data-use-path" ,
cl::init("") ,
cl::Hidden ,
cl::desc("File path to where .cgdata file is read")  )
static