LLVM
15.0.0git
|
#include "llvm/Bitcode/BitcodeWriter.h"
#include "ValueEnumerator.h"
#include "llvm/ADT/APFloat.h"
#include "llvm/ADT/APInt.h"
#include "llvm/ADT/ArrayRef.h"
#include "llvm/ADT/DenseMap.h"
#include "llvm/ADT/None.h"
#include "llvm/ADT/Optional.h"
#include "llvm/ADT/STLExtras.h"
#include "llvm/ADT/SetVector.h"
#include "llvm/ADT/SmallPtrSet.h"
#include "llvm/ADT/SmallString.h"
#include "llvm/ADT/SmallVector.h"
#include "llvm/ADT/StringMap.h"
#include "llvm/ADT/StringRef.h"
#include "llvm/ADT/Triple.h"
#include "llvm/Bitcode/BitcodeCommon.h"
#include "llvm/Bitcode/BitcodeReader.h"
#include "llvm/Bitcode/LLVMBitCodes.h"
#include "llvm/Bitstream/BitCodes.h"
#include "llvm/Bitstream/BitstreamWriter.h"
#include "llvm/Config/llvm-config.h"
#include "llvm/IR/Attributes.h"
#include "llvm/IR/BasicBlock.h"
#include "llvm/IR/Comdat.h"
#include "llvm/IR/Constant.h"
#include "llvm/IR/Constants.h"
#include "llvm/IR/DebugInfoMetadata.h"
#include "llvm/IR/DebugLoc.h"
#include "llvm/IR/DerivedTypes.h"
#include "llvm/IR/Function.h"
#include "llvm/IR/GlobalAlias.h"
#include "llvm/IR/GlobalIFunc.h"
#include "llvm/IR/GlobalObject.h"
#include "llvm/IR/GlobalValue.h"
#include "llvm/IR/GlobalVariable.h"
#include "llvm/IR/InlineAsm.h"
#include "llvm/IR/InstrTypes.h"
#include "llvm/IR/Instruction.h"
#include "llvm/IR/Instructions.h"
#include "llvm/IR/LLVMContext.h"
#include "llvm/IR/Metadata.h"
#include "llvm/IR/Module.h"
#include "llvm/IR/ModuleSummaryIndex.h"
#include "llvm/IR/Operator.h"
#include "llvm/IR/Type.h"
#include "llvm/IR/UseListOrder.h"
#include "llvm/IR/Value.h"
#include "llvm/IR/ValueSymbolTable.h"
#include "llvm/MC/StringTableBuilder.h"
#include "llvm/MC/TargetRegistry.h"
#include "llvm/Object/IRSymtab.h"
#include "llvm/Support/AtomicOrdering.h"
#include "llvm/Support/Casting.h"
#include "llvm/Support/CommandLine.h"
#include "llvm/Support/Endian.h"
#include "llvm/Support/Error.h"
#include "llvm/Support/ErrorHandling.h"
#include "llvm/Support/MathExtras.h"
#include "llvm/Support/SHA1.h"
#include "llvm/Support/raw_ostream.h"
#include <algorithm>
#include <cassert>
#include <cstddef>
#include <cstdint>
#include <iterator>
#include <map>
#include <memory>
#include <string>
#include <utility>
#include <vector>
#include "llvm/IR/Metadata.def"
Go to the source code of this file.
Macros | |
#define | HANDLE_MDNODE_LEAF(CLASS) CLASS##AbbrevID, |
#define | HANDLE_MDNODE_LEAF(CLASS) unsigned CLASS##Abbrev = 0; |
#define | HANDLE_MDNODE_LEAF(CLASS) |
Enumerations | |
enum | StringEncoding { SE_Char6, SE_Fixed7, SE_Fixed8 } |
enum | MetadataAbbrev : unsigned { LastPlusOne } |
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 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) |
static uint64_t | getEncodedGVarFlags (GlobalVarSummary::GVarFlags Flags) |
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. More... | |
static uint64_t | getOptimizationFlags (const Value *V) |
static void | emitSignedInt64 (SmallVectorImpl< uint64_t > &Vals, uint64_t V) |
static void | emitWideAPInt (SmallVectorImpl< uint64_t > &Vals, const APInt &A) |
template<typename Fn > | |
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). More... | |
static void | getReferencedTypeIds (FunctionSummary *FS, std::set< GlobalValue::GUID > &ReferencedTypeIds) |
Collect type IDs from type tests used by function. More... | |
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, const std::string &Id, const TypeIdSummary &Summary) |
static void | writeTypeIdCompatibleVtableSummaryRecord (SmallVector< uint64_t, 64 > &NameVals, StringTableBuilder &StrtabBuilder, const std::string &Id, const TypeIdCompatibleVtableInfo &Summary, ValueEnumerator &VE) |
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. More... | |
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. More... | |
static void | writeBitcodeHeader (BitstreamWriter &Stream) |
Helper to write the header common to all bitcode files. More... | |
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 ")) |
FunctionSummary::ForceSummaryHotnessType | ForceSummaryEdgesCold |
#define HANDLE_MDNODE_LEAF | ( | CLASS | ) | CLASS##AbbrevID, |
Definition at line 2158 of file BitcodeWriter.cpp.
#define HANDLE_MDNODE_LEAF | ( | CLASS | ) | unsigned CLASS##Abbrev = 0; |
Definition at line 2158 of file BitcodeWriter.cpp.
#define HANDLE_MDNODE_LEAF | ( | CLASS | ) |
enum MetadataAbbrev : unsigned |
Enumerator | |
---|---|
LastPlusOne |
Definition at line 2157 of file BitcodeWriter.cpp.
enum StringEncoding |
Enumerator | |
---|---|
SE_Char6 | |
SE_Fixed7 | |
SE_Fixed8 |
Definition at line 1207 of file BitcodeWriter.cpp.
|
static |
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 4518 of file BitcodeWriter.cpp.
References llvm::Triple::arm, assert(), llvm::BWH_HeaderSize, llvm::Triple::ppc, llvm::Triple::ppc64, llvm::Triple::thumb, writeInt32ToBuffer(), llvm::Triple::x86, and llvm::Triple::x86_64.
Referenced by llvm::WriteBitcodeToFile().
|
static |
Definition at line 1616 of file BitcodeWriter.cpp.
Referenced by emitWideAPInt(), and writeFunctionTypeMetadataRecords().
|
static |
Definition at line 1623 of file BitcodeWriter.cpp.
References emitSignedInt64(), and i.
|
static |
Definition at line 611 of file BitcodeWriter.cpp.
References llvm::bitc::ATTR_KIND_ALIGNMENT, llvm::bitc::ATTR_KIND_ALLOC_ALIGN, llvm::bitc::ATTR_KIND_ALLOC_SIZE, llvm::bitc::ATTR_KIND_ALLOCATED_POINTER, llvm::bitc::ATTR_KIND_ALWAYS_INLINE, llvm::bitc::ATTR_KIND_ARGMEMONLY, llvm::bitc::ATTR_KIND_BUILTIN, llvm::bitc::ATTR_KIND_BY_VAL, llvm::bitc::ATTR_KIND_BYREF, llvm::bitc::ATTR_KIND_COLD, llvm::bitc::ATTR_KIND_CONVERGENT, 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_HOT, llvm::bitc::ATTR_KIND_IMMARG, llvm::bitc::ATTR_KIND_IN_ALLOCA, llvm::bitc::ATTR_KIND_IN_REG, llvm::bitc::ATTR_KIND_INACCESSIBLEMEM_ONLY, llvm::bitc::ATTR_KIND_INACCESSIBLEMEM_OR_ARGMEMONLY, llvm::bitc::ATTR_KIND_INLINE_HINT, llvm::bitc::ATTR_KIND_JUMP_TABLE, 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_DUPLICATE, 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_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_SIZE, llvm::bitc::ATTR_KIND_OPTIMIZE_NONE, llvm::bitc::ATTR_KIND_PREALLOCATED, 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_THREAD, llvm::bitc::ATTR_KIND_SHADOWCALLSTACK, 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_WRITEONLY, llvm::bitc::ATTR_KIND_Z_EXT, llvm::CallingConv::Cold, llvm::MCID::Convergent, llvm::Attribute::EmptyKey, llvm::Attribute::EndAttrKinds, JumpTable, llvm_unreachable, llvm::Attribute::None, and llvm::Attribute::TombstoneKey.
|
static |
Definition at line 540 of file BitcodeWriter.cpp.
References llvm::MCID::Add, 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, llvm_unreachable, and Mul.
|
static |
Definition at line 514 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.
Definition at line 1138 of file BitcodeWriter.cpp.
References llvm::Comdat::Any, 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.
|
static |
Definition at line 1118 of file BitcodeWriter.cpp.
References llvm::GlobalValue::DefaultStorageClass, llvm::GlobalValue::DLLExportStorageClass, llvm::GlobalValue::DLLImportStorageClass, llvm::GlobalValue::getDLLStorageClass(), and llvm_unreachable.
|
static |
Definition at line 1068 of file BitcodeWriter.cpp.
References llvm::FunctionSummary::FFlags::AlwaysInline, llvm::FunctionSummary::FFlags::HasUnknownCall, llvm::FunctionSummary::FFlags::MayThrow, llvm::FunctionSummary::FFlags::MustBeUnreachable, llvm::FunctionSummary::FFlags::NoInline, llvm::FunctionSummary::FFlags::NoRecurse, llvm::FunctionSummary::FFlags::NoUnwind, llvm::FunctionSummary::FFlags::ReadNone, llvm::FunctionSummary::FFlags::ReadOnly, and llvm::FunctionSummary::FFlags::ReturnDoesNotAlias.
|
static |
|
static |
Definition at line 1085 of file BitcodeWriter.cpp.
References llvm::GlobalValueSummary::GVFlags::CanAutoHide, llvm::GlobalValueSummary::GVFlags::DSOLocal, llvm::GlobalValueSummary::GVFlags::Linkage, llvm::GlobalValueSummary::GVFlags::Live, llvm::GlobalValueSummary::GVFlags::NotEligibleToImport, and llvm::GlobalValueSummary::GVFlags::Visibility.
|
static |
Definition at line 1064 of file BitcodeWriter.cpp.
References getEncodedLinkage(), and llvm::GlobalValue::getLinkage().
|
static |
Definition at line 1036 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().
|
static |
Definition at line 583 of file BitcodeWriter.cpp.
References llvm::Acquire, llvm::AcquireRelease, llvm_unreachable, llvm::Monotonic, llvm::NotAtomic, llvm::bitc::ORDERING_ACQREL, llvm::bitc::ORDERING_ACQUIRE, llvm::bitc::ORDERING_MONOTONIC, llvm::bitc::ORDERING_NOTATOMIC, llvm::bitc::ORDERING_RELEASE, llvm::bitc::ORDERING_SEQCST, llvm::bitc::ORDERING_UNORDERED, llvm::Release, llvm::SequentiallyConsistent, and llvm::Unordered.
|
static |
Definition at line 564 of file BitcodeWriter.cpp.
References llvm::AtomicRMWInst::Add, llvm::AtomicRMWInst::And, llvm::AtomicRMWInst::FAdd, 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_FSUB, llvm::bitc::RMW_MAX, llvm::bitc::RMW_MIN, llvm::bitc::RMW_NAND, llvm::bitc::RMW_OR, llvm::bitc::RMW_SUB, llvm::bitc::RMW_UMAX, llvm::bitc::RMW_UMIN, llvm::bitc::RMW_XCHG, llvm::bitc::RMW_XOR, llvm::AtomicRMWInst::Sub, llvm::AtomicRMWInst::UMax, llvm::AtomicRMWInst::UMin, llvm::AtomicRMWInst::Xchg, and llvm::AtomicRMWInst::Xor.
|
static |
Definition at line 1127 of file BitcodeWriter.cpp.
References llvm::GlobalValue::GeneralDynamicTLSModel, llvm::GlobalValue::getThreadLocalMode(), llvm::GlobalValue::InitialExecTLSModel, llvm_unreachable, llvm::GlobalValue::LocalDynamicTLSModel, llvm::GlobalValue::LocalExecTLSModel, and llvm::GlobalValue::NotThreadLocal.
|
static |
Definition at line 533 of file BitcodeWriter.cpp.
References llvm_unreachable, and llvm::bitc::UNOP_FNEG.
|
static |
Definition at line 1154 of file BitcodeWriter.cpp.
References llvm::GlobalValue::getUnnamedAddr(), llvm::GlobalValue::Global, llvm_unreachable, llvm::GlobalValue::Local, and llvm::GlobalValue::None.
|
static |
Definition at line 1109 of file BitcodeWriter.cpp.
References llvm::GlobalValue::DefaultVisibility, llvm::GlobalValue::getVisibility(), llvm::GlobalValue::HiddenVisibility, llvm_unreachable, and llvm::GlobalValue::ProtectedVisibility.
Definition at line 1471 of file BitcodeWriter.cpp.
References llvm::bitc::AllowContract, llvm::bitc::AllowReassoc, llvm::bitc::AllowReciprocal, llvm::bitc::ApproxFunc, llvm::bitc::NoInfs, llvm::bitc::NoNaNs, llvm::bitc::NoSignedZeros, llvm::bitc::OBO_NO_SIGNED_WRAP, llvm::bitc::OBO_NO_UNSIGNED_WRAP, and llvm::bitc::PEO_EXACT.
|
static |
Collect type IDs from type tests used by function.
Definition at line 3785 of file BitcodeWriter.cpp.
References llvm::X86AS::FS, and llvm::AArch64CC::VC.
Definition at line 4893 of file BitcodeWriter.cpp.
References 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().
Definition at line 4918 of file BitcodeWriter.cpp.
References 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().
|
static |
Determine the encoding to use for the given string name and length.
Definition at line 1210 of file BitcodeWriter.cpp.
References llvm::BitCodeAbbrevOp::isChar6(), SE_Char6, SE_Fixed7, and SE_Fixed8.
|
static |
Helper to write the header common to all bitcode files.
Definition at line 4565 of file BitcodeWriter.cpp.
Referenced by llvm::BitcodeWriter::BitcodeWriter().
|
static |
Write the function type metadata related records that need to appear before a function summary entry (whether per-module or combined).
Definition at line 3709 of file BitcodeWriter.cpp.
References llvm::append_range(), Arg, assert(), emitSignedInt64(), llvm::X86AS::FS, 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::FunctionSummary::ParamAccess::RangeWidth, and llvm::AArch64CC::VC.
|
static |
Create the "IDENTIFICATION_BLOCK_ID" containing a single string with the current llvm version, and a record for the epoch number.
Definition at line 4396 of file BitcodeWriter.cpp.
References llvm::BitCodeAbbrevOp::Array, llvm::bitc::BITCODE_CURRENT_EPOCH, llvm::BitCodeAbbrevOp::Char6, llvm::bitc::IDENTIFICATION_BLOCK_ID, llvm::bitc::IDENTIFICATION_CODE_EPOCH, llvm::bitc::IDENTIFICATION_CODE_STRING, move, llvm::BitCodeAbbrevOp::VBR, and writeStringRecord().
|
static |
Definition at line 4499 of file BitcodeWriter.cpp.
References llvm::support::endian::write32le().
Referenced by emitDarwinBCHeaderAndTrailer().
|
static |
Definition at line 596 of file BitcodeWriter.cpp.
References llvm::BitCodeAbbrevOp::isChar6().
Referenced by writeIdentificationBlock().
|
static |
Definition at line 3855 of file BitcodeWriter.cpp.
References llvm::StringTableBuilder::add(), llvm::ValueEnumerator::getValueID(), and P.
|
static |
Definition at line 3836 of file BitcodeWriter.cpp.
References llvm::StringTableBuilder::add(), llvm::TypeTestResolution::AlignLog2, llvm::TypeTestResolution::BitMask, llvm::TypeTestResolution::InlineBits, llvm::TypeTestResolution::SizeM1, llvm::TypeTestResolution::SizeM1BitWidth, llvm::TypeTestResolution::TheKind, llvm::TypeIdSummary::TTRes, llvm::RISCVFenceField::W, llvm::TypeIdSummary::WPDRes, and writeWholeProgramDevirtResolution().
|
static |
Definition at line 3822 of file BitcodeWriter.cpp.
References llvm::StringTableBuilder::add(), llvm::WholeProgramDevirtResolution::ResByArg, llvm::WholeProgramDevirtResolution::SingleImplName, llvm::WholeProgramDevirtResolution::TheKind, and writeWholeProgramDevirtResolutionByArg().
Referenced by writeTypeIdSummaryRecord().
|
static |
Definition at line 3810 of file BitcodeWriter.cpp.
References llvm::append_range(), llvm::WholeProgramDevirtResolution::ByArg::Bit, llvm::WholeProgramDevirtResolution::ByArg::Byte, llvm::WholeProgramDevirtResolution::ByArg::Info, and llvm::WholeProgramDevirtResolution::ByArg::TheKind.
Referenced by writeWholeProgramDevirtResolution().
|
static |
FunctionSummary::ForceSummaryHotnessType ForceSummaryEdgesCold |
Definition at line 64 of file ModuleSummaryAnalysis.cpp.
Referenced by computeFunctionSummary().
|
static |