LLVM: lib/Bitcode/Writer/BitcodeWriter.cpp File Reference (original) (raw)

Go to the source code of this file.

Namespaces
namespace llvm
This is an optimization pass for GlobalISel generic memory operations.
Macros
#define HANDLE_MDNODE_LEAF(CLASS) CLASS##AbbrevID,
#define HANDLE_MDNODE_LEAF(CLASS) unsigned CLASS##Abbrev = 0;
#define HANDLE_MDNODE_LEAF(CLASS)
Functions
static unsigned getEncodedCastOpcode (unsigned Opcode)
static unsigned getEncodedUnaryOpcode (unsigned Opcode)
static unsigned getEncodedBinaryOpcode (unsigned Opcode)
static unsigned getEncodedRMWOperation (AtomicRMWInst::BinOp Op)
static unsigned getEncodedOrdering (AtomicOrdering Ordering)
static void writeStringRecord (BitstreamWriter &Stream, unsigned Code, StringRef Str, unsigned AbbrevToUse)
static uint64_t getAttrKindEncoding (Attribute::AttrKind Kind)
static void emitSignedInt64 (SmallVectorImpl< uint64_t > &Vals, uint64_t V)
static void emitWideAPInt (SmallVectorImpl< uint64_t > &Vals, const APInt &A)
static void emitConstantRange (SmallVectorImpl< uint64_t > &Record, const ConstantRange &CR, bool EmitBitWidth)
static unsigned getEncodedLinkage (const GlobalValue::LinkageTypes Linkage)
static unsigned getEncodedLinkage (const GlobalValue &GV)
static uint64_t getEncodedFFlags (FunctionSummary::FFlags Flags)
static uint64_t getEncodedGVSummaryFlags (GlobalValueSummary::GVFlags Flags, bool ImportAsDecl=false)
static uint64_t getEncodedGVarFlags (GlobalVarSummary::GVarFlags Flags)
static uint64_t getEncodedHotnessCallEdgeInfo (const CalleeInfo &CI)
static uint64_t getEncodedRelBFCallEdgeInfo (const CalleeInfo &CI)
static unsigned getEncodedVisibility (const GlobalValue &GV)
static unsigned getEncodedDLLStorageClass (const GlobalValue &GV)
static unsigned getEncodedThreadLocalMode (const GlobalValue &GV)
static unsigned getEncodedComdatSelectionKind (const Comdat &C)
static unsigned getEncodedUnnamedAddr (const GlobalValue &GV)
static StringEncoding getStringEncoding (StringRef Str)
Determine the encoding to use for the given string name and length.
static unsigned serializeSanitizerMetadata (const GlobalValue::SanitizerMetadata &Meta)
static uint64_t getOptimizationFlags (const Value *V)
template
static void writeFunctionTypeMetadataRecords (BitstreamWriter &Stream, FunctionSummary *FS, Fn GetValueID)
Write the function type metadata related records that need to appear before a function summary entry (whether per-module or combined).
static void getReferencedTypeIds (FunctionSummary *FS, std::set< GlobalValue::GUID > &ReferencedTypeIds)
Collect type IDs from type tests used by function.
static void writeWholeProgramDevirtResolutionByArg (SmallVector< uint64_t, 64 > &NameVals, const std::vector< uint64_t > &args, const WholeProgramDevirtResolution::ByArg &ByArg)
static void writeWholeProgramDevirtResolution (SmallVector< uint64_t, 64 > &NameVals, StringTableBuilder &StrtabBuilder, uint64_t Id, const WholeProgramDevirtResolution &Wpd)
static void writeTypeIdSummaryRecord (SmallVector< uint64_t, 64 > &NameVals, StringTableBuilder &StrtabBuilder, StringRef Id, const TypeIdSummary &Summary)
static void writeTypeIdCompatibleVtableSummaryRecord (SmallVector< uint64_t, 64 > &NameVals, StringTableBuilder &StrtabBuilder, StringRef Id, const TypeIdCompatibleVtableInfo &Summary, ValueEnumerator &VE)
static void collectMemProfCallStacks (FunctionSummary *FS, std::function< LinearFrameId(unsigned)> GetStackIndex, MapVector< CallStackId, llvm::SmallVector< LinearFrameId > > &CallStacks)
static DenseMap< CallStackId, LinearCallStackId > writeMemoryProfileRadixTree (MapVector< CallStackId, llvm::SmallVector< LinearFrameId > > &&CallStacks, BitstreamWriter &Stream, unsigned RadixAbbrev)
static void writeFunctionHeapProfileRecords (BitstreamWriter &Stream, FunctionSummary *FS, unsigned CallsiteAbbrev, unsigned AllocAbbrev, unsigned ContextIdAbbvId, bool PerModule, std::function< unsigned(const ValueInfo &VI)> GetValueID, std::function< unsigned(unsigned)> GetStackIndex, bool WriteContextSizeInfoIndex, DenseMap< CallStackId, LinearCallStackId > &CallStackPos, CallStackId &CallStackCount)
static void writeIdentificationBlock (BitstreamWriter &Stream)
Create the "IDENTIFICATION_BLOCK_ID" containing a single string with the current llvm version, and a record for the epoch number.
static void writeInt32ToBuffer (uint32_t Value, SmallVectorImpl< char > &Buffer, uint32_t &Position)
static void emitDarwinBCHeaderAndTrailer (SmallVectorImpl< char > &Buffer, const Triple &TT)
If generating a bc file on darwin, we have to emit a header and trailer to make it compatible with the system archiver.
static void writeBitcodeHeader (BitstreamWriter &Stream)
Helper to write the header common to all bitcode files.
static const char * getSectionNameForBitcode (const Triple &T)
static const char * getSectionNameForCommandline (const Triple &T)
Variables
static cl::opt< unsigned > IndexThreshold ("bitcode-mdindex-threshold", cl::Hidden, cl::init(25), cl::desc("Number of metadatas above which we emit an index " "to enable lazy-loading"))
static cl::opt< uint32_t > FlushThreshold ("bitcode-flush-threshold", cl::Hidden, cl::init(512), cl::desc("The threshold (unit M) for flushing LLVM bitcode."))
static cl::opt< bool > WriteRelBFToSummary ("write-relbf-to-summary", cl::Hidden, cl::init(false), cl::desc("Write relative block frequency to function summary "))
bool WriteNewDbgInfoFormatToBitcode
llvm:🆑:opt< bool > UseNewDbgInfoFormat

â—† HANDLE_MDNODE_LEAF [1/3]

| #define HANDLE_MDNODE_LEAF | ( | | CLASS | ) | CLASS##AbbrevID, | | ---------------------------- | - | | ----- | - | ---------------- |

â—† HANDLE_MDNODE_LEAF [2/3]

| #define HANDLE_MDNODE_LEAF | ( | | CLASS | ) | unsigned CLASS##Abbrev = 0; | | ---------------------------- | - | | ----- | - | ------------------------------------------------- |

â—† HANDLE_MDNODE_LEAF [3/3]

| #define HANDLE_MDNODE_LEAF | ( | | CLASS | ) | | ---------------------------- | - | | ----- | - |

Value:

case Metadata::CLASS##Kind: \

if (MDAbbrevs) \

(*MDAbbrevs)[MetadataAbbrev::CLASS##AbbrevID]); \

else \

write##CLASS(cast(N), Record, CLASS##Abbrev); \

continue;

Error write(MCStreamer &Out, ArrayRef< std::string > Inputs, OnCuIndexOverflow OverflowOptValue)

Definition at line 2394 of file BitcodeWriter.cpp.

â—† MetadataAbbrev

â—† StringEncoding

â—† collectMemProfCallStacks()

â—† emitConstantRange()

â—† emitDarwinBCHeaderAndTrailer()

If generating a bc file on darwin, we have to emit a header and trailer to make it compatible with the system archiver.

To do this we emit the following header, and then emit a trailer that pads the file out to be a multiple of 16 bytes.

struct bc_header { uint32_t Magic; // 0x0B17C0DE uint32_t Version; // Version, currently always 0. uint32_t BitcodeOffset; // Offset to traditional bitcode file. uint32_t BitcodeSize; // Size of traditional bitcode file. uint32_t CPUType; // CPU specifier. ... potentially more later ... };

Definition at line 5209 of file BitcodeWriter.cpp.

References llvm::Triple::arm, assert(), llvm::BWH_HeaderSize, llvm::Triple::ppc, llvm::Triple::ppc64, llvm::SmallVectorTemplateBase< T, bool >::push_back(), llvm::SmallVectorBase< Size_T >::size(), llvm::Triple::thumb, writeInt32ToBuffer(), llvm::Triple::x86, and llvm::Triple::x86_64.

Referenced by llvm::WriteBitcodeToFile().

â—† emitSignedInt64()

â—† emitWideAPInt()

â—† getAttrKindEncoding()

Definition at line 715 of file BitcodeWriter.cpp.

References llvm::bitc::ATTR_KIND_ALIGNMENT, llvm::bitc::ATTR_KIND_ALLOC_ALIGN, llvm::bitc::ATTR_KIND_ALLOC_KIND, llvm::bitc::ATTR_KIND_ALLOC_SIZE, llvm::bitc::ATTR_KIND_ALLOCATED_POINTER, llvm::bitc::ATTR_KIND_ALWAYS_INLINE, llvm::bitc::ATTR_KIND_BUILTIN, llvm::bitc::ATTR_KIND_BY_VAL, llvm::bitc::ATTR_KIND_BYREF, llvm::bitc::ATTR_KIND_CAPTURES, llvm::bitc::ATTR_KIND_COLD, llvm::bitc::ATTR_KIND_CONVERGENT, llvm::bitc::ATTR_KIND_CORO_ELIDE_SAFE, llvm::bitc::ATTR_KIND_CORO_ONLY_DESTROY_WHEN_COMPLETE, llvm::bitc::ATTR_KIND_DEAD_ON_UNWIND, llvm::bitc::ATTR_KIND_DEREFERENCEABLE, llvm::bitc::ATTR_KIND_DEREFERENCEABLE_OR_NULL, llvm::bitc::ATTR_KIND_DISABLE_SANITIZER_INSTRUMENTATION, llvm::bitc::ATTR_KIND_ELEMENTTYPE, llvm::bitc::ATTR_KIND_FNRETTHUNK_EXTERN, llvm::bitc::ATTR_KIND_HOT, llvm::bitc::ATTR_KIND_HYBRID_PATCHABLE, llvm::bitc::ATTR_KIND_IMMARG, llvm::bitc::ATTR_KIND_IN_ALLOCA, llvm::bitc::ATTR_KIND_IN_REG, llvm::bitc::ATTR_KIND_INITIALIZES, llvm::bitc::ATTR_KIND_INLINE_HINT, llvm::bitc::ATTR_KIND_JUMP_TABLE, llvm::bitc::ATTR_KIND_MEMORY, llvm::bitc::ATTR_KIND_MIN_SIZE, llvm::bitc::ATTR_KIND_MUSTPROGRESS, llvm::bitc::ATTR_KIND_NAKED, llvm::bitc::ATTR_KIND_NEST, llvm::bitc::ATTR_KIND_NO_ALIAS, llvm::bitc::ATTR_KIND_NO_BUILTIN, llvm::bitc::ATTR_KIND_NO_CALLBACK, llvm::bitc::ATTR_KIND_NO_CAPTURE, llvm::bitc::ATTR_KIND_NO_DIVERGENCE_SOURCE, llvm::bitc::ATTR_KIND_NO_DUPLICATE, llvm::bitc::ATTR_KIND_NO_EXT, llvm::bitc::ATTR_KIND_NO_IMPLICIT_FLOAT, llvm::bitc::ATTR_KIND_NO_INLINE, llvm::bitc::ATTR_KIND_NO_MERGE, llvm::bitc::ATTR_KIND_NO_PROFILE, llvm::bitc::ATTR_KIND_NO_RECURSE, llvm::bitc::ATTR_KIND_NO_RED_ZONE, llvm::bitc::ATTR_KIND_NO_RETURN, llvm::bitc::ATTR_KIND_NO_SANITIZE_BOUNDS, llvm::bitc::ATTR_KIND_NO_SANITIZE_COVERAGE, llvm::bitc::ATTR_KIND_NO_UNWIND, llvm::bitc::ATTR_KIND_NOCF_CHECK, llvm::bitc::ATTR_KIND_NOFPCLASS, llvm::bitc::ATTR_KIND_NOFREE, llvm::bitc::ATTR_KIND_NON_LAZY_BIND, llvm::bitc::ATTR_KIND_NON_NULL, llvm::bitc::ATTR_KIND_NOSYNC, llvm::bitc::ATTR_KIND_NOUNDEF, llvm::bitc::ATTR_KIND_NULL_POINTER_IS_VALID, llvm::bitc::ATTR_KIND_OPT_FOR_FUZZING, llvm::bitc::ATTR_KIND_OPTIMIZE_FOR_DEBUGGING, llvm::bitc::ATTR_KIND_OPTIMIZE_FOR_SIZE, llvm::bitc::ATTR_KIND_OPTIMIZE_NONE, llvm::bitc::ATTR_KIND_PREALLOCATED, llvm::bitc::ATTR_KIND_PRESPLIT_COROUTINE, llvm::bitc::ATTR_KIND_RANGE, llvm::bitc::ATTR_KIND_READ_NONE, llvm::bitc::ATTR_KIND_READ_ONLY, llvm::bitc::ATTR_KIND_RETURNED, llvm::bitc::ATTR_KIND_RETURNS_TWICE, llvm::bitc::ATTR_KIND_S_EXT, llvm::bitc::ATTR_KIND_SAFESTACK, llvm::bitc::ATTR_KIND_SANITIZE_ADDRESS, llvm::bitc::ATTR_KIND_SANITIZE_HWADDRESS, llvm::bitc::ATTR_KIND_SANITIZE_MEMORY, llvm::bitc::ATTR_KIND_SANITIZE_MEMTAG, llvm::bitc::ATTR_KIND_SANITIZE_NUMERICAL_STABILITY, llvm::bitc::ATTR_KIND_SANITIZE_REALTIME, llvm::bitc::ATTR_KIND_SANITIZE_REALTIME_BLOCKING, llvm::bitc::ATTR_KIND_SANITIZE_THREAD, llvm::bitc::ATTR_KIND_SANITIZE_TYPE, llvm::bitc::ATTR_KIND_SHADOWCALLSTACK, llvm::bitc::ATTR_KIND_SKIP_PROFILE, llvm::bitc::ATTR_KIND_SPECULATABLE, llvm::bitc::ATTR_KIND_SPECULATIVE_LOAD_HARDENING, llvm::bitc::ATTR_KIND_STACK_ALIGNMENT, llvm::bitc::ATTR_KIND_STACK_PROTECT, llvm::bitc::ATTR_KIND_STACK_PROTECT_REQ, llvm::bitc::ATTR_KIND_STACK_PROTECT_STRONG, llvm::bitc::ATTR_KIND_STRICT_FP, llvm::bitc::ATTR_KIND_STRUCT_RET, llvm::bitc::ATTR_KIND_SWIFT_ASYNC, llvm::bitc::ATTR_KIND_SWIFT_ERROR, llvm::bitc::ATTR_KIND_SWIFT_SELF, llvm::bitc::ATTR_KIND_UW_TABLE, llvm::bitc::ATTR_KIND_VSCALE_RANGE, llvm::bitc::ATTR_KIND_WILLRETURN, llvm::bitc::ATTR_KIND_WRITABLE, llvm::bitc::ATTR_KIND_WRITEONLY, llvm::bitc::ATTR_KIND_Z_EXT, llvm::Attribute::EmptyKey, llvm::Attribute::EndAttrKinds, llvm_unreachable, llvm::Attribute::None, and llvm::Attribute::TombstoneKey.

â—† getEncodedBinaryOpcode()

Definition at line 634 of file BitcodeWriter.cpp.

References llvm::bitc::BINOP_ADD, llvm::bitc::BINOP_AND, llvm::bitc::BINOP_ASHR, llvm::bitc::BINOP_LSHR, llvm::bitc::BINOP_MUL, llvm::bitc::BINOP_OR, llvm::bitc::BINOP_SDIV, llvm::bitc::BINOP_SHL, llvm::bitc::BINOP_SREM, llvm::bitc::BINOP_SUB, llvm::bitc::BINOP_UDIV, llvm::bitc::BINOP_UREM, llvm::bitc::BINOP_XOR, and llvm_unreachable.

â—† getEncodedCastOpcode()

Definition at line 608 of file BitcodeWriter.cpp.

References llvm::bitc::CAST_ADDRSPACECAST, llvm::bitc::CAST_BITCAST, llvm::bitc::CAST_FPEXT, llvm::bitc::CAST_FPTOSI, llvm::bitc::CAST_FPTOUI, llvm::bitc::CAST_FPTRUNC, llvm::bitc::CAST_INTTOPTR, llvm::bitc::CAST_PTRTOINT, llvm::bitc::CAST_SEXT, llvm::bitc::CAST_SITOFP, llvm::bitc::CAST_TRUNC, llvm::bitc::CAST_UITOFP, llvm::bitc::CAST_ZEXT, and llvm_unreachable.

â—† getEncodedComdatSelectionKind()

Definition at line 1344 of file BitcodeWriter.cpp.

References llvm::Comdat::Any, llvm::CallingConv::C, llvm::bitc::COMDAT_SELECTION_KIND_ANY, llvm::bitc::COMDAT_SELECTION_KIND_EXACT_MATCH, llvm::bitc::COMDAT_SELECTION_KIND_LARGEST, llvm::bitc::COMDAT_SELECTION_KIND_NO_DUPLICATES, llvm::bitc::COMDAT_SELECTION_KIND_SAME_SIZE, llvm::Comdat::ExactMatch, llvm::Comdat::Largest, llvm_unreachable, llvm::Comdat::NoDeduplicate, and llvm::Comdat::SameSize.

â—† getEncodedDLLStorageClass()

â—† getEncodedFFlags()

â—† getEncodedGVarFlags()

â—† getEncodedGVSummaryFlags()

â—† getEncodedHotnessCallEdgeInfo()

â—† getEncodedLinkage() [1/2]

â—† getEncodedLinkage() [2/2]

Definition at line 1220 of file BitcodeWriter.cpp.

References llvm::GlobalValue::AppendingLinkage, llvm::GlobalValue::AvailableExternallyLinkage, llvm::GlobalValue::CommonLinkage, llvm::GlobalValue::ExternalLinkage, llvm::GlobalValue::ExternalWeakLinkage, llvm::GlobalValue::InternalLinkage, llvm::GlobalValue::LinkOnceAnyLinkage, llvm::GlobalValue::LinkOnceODRLinkage, llvm_unreachable, llvm::GlobalValue::PrivateLinkage, llvm::GlobalValue::WeakAnyLinkage, and llvm::GlobalValue::WeakODRLinkage.

Referenced by getEncodedLinkage().

â—† getEncodedOrdering()

â—† getEncodedRelBFCallEdgeInfo()

â—† getEncodedRMWOperation()

Definition at line 658 of file BitcodeWriter.cpp.

References llvm::AtomicRMWInst::Add, llvm::AtomicRMWInst::And, llvm::AtomicRMWInst::FAdd, llvm::AtomicRMWInst::FMax, llvm::AtomicRMWInst::FMin, llvm::AtomicRMWInst::FSub, llvm_unreachable, llvm::AtomicRMWInst::Max, llvm::AtomicRMWInst::Min, llvm::AtomicRMWInst::Nand, llvm::AtomicRMWInst::Or, llvm::bitc::RMW_ADD, llvm::bitc::RMW_AND, llvm::bitc::RMW_FADD, llvm::bitc::RMW_FMAX, llvm::bitc::RMW_FMIN, llvm::bitc::RMW_FSUB, llvm::bitc::RMW_MAX, llvm::bitc::RMW_MIN, llvm::bitc::RMW_NAND, llvm::bitc::RMW_OR, llvm::bitc::RMW_SUB, llvm::bitc::RMW_UDEC_WRAP, llvm::bitc::RMW_UINC_WRAP, llvm::bitc::RMW_UMAX, llvm::bitc::RMW_UMIN, llvm::bitc::RMW_USUB_COND, llvm::bitc::RMW_USUB_SAT, llvm::bitc::RMW_XCHG, llvm::bitc::RMW_XOR, llvm::AtomicRMWInst::Sub, llvm::AtomicRMWInst::UDecWrap, llvm::AtomicRMWInst::UIncWrap, llvm::AtomicRMWInst::UMax, llvm::AtomicRMWInst::UMin, llvm::AtomicRMWInst::USubCond, llvm::AtomicRMWInst::USubSat, llvm::AtomicRMWInst::Xchg, and llvm::AtomicRMWInst::Xor.

â—† getEncodedThreadLocalMode()

â—† getEncodedUnaryOpcode()

â—† getEncodedUnnamedAddr()

â—† getEncodedVisibility()

â—† getOptimizationFlags()

Definition at line 1688 of file BitcodeWriter.cpp.

References llvm::bitc::AllowContract, llvm::bitc::AllowReassoc, llvm::bitc::AllowReciprocal, llvm::bitc::ApproxFunc, GEP, llvm::bitc::GEP_INBOUNDS, llvm::bitc::GEP_NUSW, llvm::bitc::GEP_NUW, llvm::bitc::ICMP_SAME_SIGN, llvm::bitc::NoInfs, llvm::bitc::NoNaNs, llvm::bitc::NoSignedZeros, llvm::bitc::OBO_NO_SIGNED_WRAP, llvm::bitc::OBO_NO_UNSIGNED_WRAP, llvm::bitc::PDI_DISJOINT, llvm::bitc::PEO_EXACT, llvm::bitc::PNNI_NON_NEG, llvm::bitc::TIO_NO_SIGNED_WRAP, and llvm::bitc::TIO_NO_UNSIGNED_WRAP.

â—† getReferencedTypeIds()

â—† getSectionNameForBitcode()

Definition at line 5593 of file BitcodeWriter.cpp.

References llvm::Triple::AMD, llvm::Triple::COFF, llvm::Triple::DXContainer, llvm::Triple::ELF, llvm::Triple::GOFF, llvm_unreachable, llvm::Triple::MachO, llvm::Triple::SPIRV, llvm::Triple::UnknownObjectFormat, llvm::Triple::Wasm, and llvm::Triple::XCOFF.

Referenced by llvm::embedBitcodeInModule().

â—† getSectionNameForCommandline()

Definition at line 5620 of file BitcodeWriter.cpp.

References llvm::Triple::AMD, llvm::Triple::COFF, llvm::Triple::DXContainer, llvm::Triple::ELF, llvm::Triple::GOFF, llvm_unreachable, llvm::Triple::MachO, llvm::Triple::SPIRV, llvm::Triple::UnknownObjectFormat, llvm::Triple::Wasm, and llvm::Triple::XCOFF.

Referenced by llvm::embedBitcodeInModule().

â—† getStringEncoding()

â—† serializeSanitizerMetadata()

â—† writeBitcodeHeader()

â—† writeFunctionHeapProfileRecords()

static void writeFunctionHeapProfileRecords ( BitstreamWriter & Stream, FunctionSummary * FS, unsigned CallsiteAbbrev, unsigned AllocAbbrev, unsigned ContextIdAbbvId, bool PerModule, std::function< unsigned(const ValueInfo &VI)> GetValueID, std::function< unsigned(unsigned)> GetStackIndex, bool WriteContextSizeInfoIndex, DenseMap< CallStackId, LinearCallStackId > & CallStackPos, CallStackId & CallStackCount ) static

Definition at line 4252 of file BitcodeWriter.cpp.

References assert(), llvm::BitstreamWriter::EmitRecord(), llvm::bitc::FS_ALLOC_CONTEXT_IDS, llvm::bitc::FS_COMBINED_ALLOC_INFO, llvm::bitc::FS_COMBINED_CALLSITE_INFO, llvm::bitc::FS_PERMODULE_ALLOC_INFO, llvm::bitc::FS_PERMODULE_CALLSITE_INFO, llvm::SmallVectorTemplateBase< T, bool >::push_back(), llvm::SmallVectorImpl< T >::reserve(), and llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::size().

â—† writeFunctionTypeMetadataRecords()

Write the function type metadata related records that need to appear before a function summary entry (whether per-module or combined).

Definition at line 4049 of file BitcodeWriter.cpp.

References llvm::append_range(), assert(), llvm::BitstreamWriter::EmitRecord(), emitSignedInt64(), llvm::bitc::FS_PARAM_ACCESS, llvm::bitc::FS_TYPE_CHECKED_LOAD_CONST_VCALL, llvm::bitc::FS_TYPE_CHECKED_LOAD_VCALLS, llvm::bitc::FS_TYPE_TEST_ASSUME_CONST_VCALL, llvm::bitc::FS_TYPE_TEST_ASSUME_VCALLS, llvm::bitc::FS_TYPE_TESTS, llvm::ConstantRange::getLower(), llvm::APInt::getNumWords(), llvm::APInt::getRawData(), llvm::ConstantRange::getUpper(), Range, llvm::FunctionSummary::ParamAccess::RangeWidth, and llvm::ConstantRange::sextOrTrunc().

â—† writeIdentificationBlock()

Create the "IDENTIFICATION_BLOCK_ID" containing a single string with the current llvm version, and a record for the epoch number.

Definition at line 5085 of file BitcodeWriter.cpp.

References llvm::BitCodeAbbrevOp::Array, llvm::bitc::BITCODE_CURRENT_EPOCH, llvm::BitCodeAbbrevOp::Char6, llvm::BitstreamWriter::EmitAbbrev(), llvm::BitstreamWriter::EmitRecord(), llvm::BitstreamWriter::EnterSubblock(), llvm::BitstreamWriter::ExitBlock(), llvm::bitc::IDENTIFICATION_BLOCK_ID, llvm::bitc::IDENTIFICATION_CODE_EPOCH, llvm::bitc::IDENTIFICATION_CODE_STRING, llvm::BitCodeAbbrevOp::VBR, and writeStringRecord().

â—† writeInt32ToBuffer()

â—† writeMemoryProfileRadixTree()

â—† writeStringRecord()

â—† writeTypeIdCompatibleVtableSummaryRecord()

â—† writeTypeIdSummaryRecord()

â—† writeWholeProgramDevirtResolution()

â—† writeWholeProgramDevirtResolutionByArg()

â—† FlushThreshold

cl::opt< uint32_t > FlushThreshold("bitcode-flush-threshold", cl::Hidden, cl::init(512), cl::desc("The threshold (unit M) for flushing LLVM bitcode.")) ( "bitcode-flush-threshold" , cl::Hidden , cl::init(512) , cl::desc("The threshold (unit M) for flushing LLVM bitcode.") ) static

â—† IndexThreshold

cl::opt< unsigned > IndexThreshold("bitcode-mdindex-threshold", cl::Hidden, cl::init(25), cl::desc("Number of metadatas above which we emit an index " "to enable lazy-loading")) ( "bitcode-mdindex-threshold" , cl::Hidden , cl::init(25) , cl::desc("Number of metadatas above which we emit an index " "to enable lazy-loading") ) static

â—† UseNewDbgInfoFormat

â—† WriteNewDbgInfoFormatToBitcode

bool WriteNewDbgInfoFormatToBitcode extern

â—† WriteRelBFToSummary

cl::opt< bool > WriteRelBFToSummary("write-relbf-to-summary", cl::Hidden, cl::init(false), cl::desc("Write relative block frequency to function summary ")) ( "write-relbf-to-summary" , cl::Hidden , cl::init(false) , cl::desc("Write relative block frequency to function summary ") ) static