LLVM 19.0.0git
|
#include "llvm/Bitcode/BitcodeReader.h"
#include "MetadataLoader.h"
#include "ValueList.h"
#include "llvm/ADT/APFloat.h"
#include "llvm/ADT/APInt.h"
#include "llvm/ADT/ArrayRef.h"
#include "llvm/ADT/DenseMap.h"
#include "llvm/ADT/STLExtras.h"
#include "llvm/ADT/SmallString.h"
#include "llvm/ADT/SmallVector.h"
#include "llvm/ADT/StringRef.h"
#include "llvm/ADT/Twine.h"
#include "llvm/Bitcode/BitcodeCommon.h"
#include "llvm/Bitcode/LLVMBitCodes.h"
#include "llvm/Bitstream/BitstreamReader.h"
#include "llvm/Config/llvm-config.h"
#include "llvm/IR/Argument.h"
#include "llvm/IR/AttributeMask.h"
#include "llvm/IR/Attributes.h"
#include "llvm/IR/AutoUpgrade.h"
#include "llvm/IR/BasicBlock.h"
#include "llvm/IR/CallingConv.h"
#include "llvm/IR/Comdat.h"
#include "llvm/IR/Constant.h"
#include "llvm/IR/Constants.h"
#include "llvm/IR/DataLayout.h"
#include "llvm/IR/DebugInfo.h"
#include "llvm/IR/DebugInfoMetadata.h"
#include "llvm/IR/DebugLoc.h"
#include "llvm/IR/DerivedTypes.h"
#include "llvm/IR/Function.h"
#include "llvm/IR/GVMaterializer.h"
#include "llvm/IR/GetElementPtrTypeIterator.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/InstIterator.h"
#include "llvm/IR/InstrTypes.h"
#include "llvm/IR/Instruction.h"
#include "llvm/IR/Instructions.h"
#include "llvm/IR/Intrinsics.h"
#include "llvm/IR/IntrinsicsAArch64.h"
#include "llvm/IR/IntrinsicsARM.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/Value.h"
#include "llvm/IR/Verifier.h"
#include "llvm/Support/AtomicOrdering.h"
#include "llvm/Support/Casting.h"
#include "llvm/Support/CommandLine.h"
#include "llvm/Support/Compiler.h"
#include "llvm/Support/Debug.h"
#include "llvm/Support/Error.h"
#include "llvm/Support/ErrorHandling.h"
#include "llvm/Support/ErrorOr.h"
#include "llvm/Support/MathExtras.h"
#include "llvm/Support/MemoryBuffer.h"
#include "llvm/Support/ModRef.h"
#include "llvm/Support/raw_ostream.h"
#include "llvm/TargetParser/Triple.h"
#include <algorithm>
#include <cassert>
#include <cstddef>
#include <cstdint>
#include <deque>
#include <map>
#include <memory>
#include <optional>
#include <set>
#include <string>
#include <system_error>
#include <tuple>
#include <utility>
#include <vector>
Go to the source code of this file.
Variables | |
static cl::opt< bool > | PrintSummaryGUIDs ("print-summary-global-ids", cl::init(false), cl::Hidden, cl::desc("Print the global id for each value when reading the module summary")) |
static cl::opt< bool > | ExpandConstantExprs ("expand-constant-exprs", cl::Hidden, cl::desc("Expand constant expressions to instructions for testing purposes")) |
cl::opt< cl::boolOrDefault > | LoadBitcodeIntoNewDbgInfoFormat ("load-bitcode-into-experimental-debuginfo-iterators", cl::Hidden, cl::desc("Load bitcode directly into the new debug info format (regardless " "of input format)")) |
Load bitcode directly into RemoveDIs format (use debug records instead of debug intrinsics). | |
cl::opt< cl::boolOrDefault > | PreserveInputDbgFormat |
bool | WriteNewDbgInfoFormatToBitcode |
cl::opt< bool > | WriteNewDbgInfoFormat |
|
static |
Definition at line 1836 of file BitcodeReader.cpp.
References A, B, llvm::Attribute::EndAttrKinds, getRawAttributeMask(), I, llvm::Attribute::isTypeAttrKind(), and llvm::Attribute::None.
Referenced by decodeLLVMAttributesForBitcode().
|
static |
Convert a string from a record into an std::string, return true on failure.
Definition at line 171 of file BitcodeReader.cpp.
References Idx.
Referenced by hasObjCCategoryInModule(), readIdentificationBlock(), and readModuleTriple().
|
static |
This fills an AttrBuilder object with the LLVM attributes that have been decoded from the given integer.
This function must stay in sync with 'encodeLLVMAttributesForBitcode'.
Definition at line 1857 of file BitcodeReader.cpp.
References addRawAttributeValue(), assert(), B, llvm::AttributeList::FunctionIndex, llvm::MemoryEffectsBase< LocationEnum >::inaccessibleMemOnly(), llvm::MemoryEffectsBase< LocationEnum >::inaccessibleOrArgMemOnly(), llvm::isPowerOf2_32(), llvm::MemoryEffectsBase< LocationEnum >::none(), llvm::MemoryEffectsBase< LocationEnum >::readOnly(), llvm::MemoryEffectsBase< LocationEnum >::unknown(), and llvm::MemoryEffectsBase< LocationEnum >::writeOnly().
GlobalValue::SanitizerMetadata deserializeSanitizerMetadata | ( | unsigned | V | ) |
Definition at line 3904 of file BitcodeReader.cpp.
Definition at line 123 of file BitcodeReader.cpp.
References llvm::make_error_code().
|
static |
Definition at line 1970 of file BitcodeReader.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_COLD, llvm::bitc::ATTR_KIND_CONVERGENT, 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_IMMARG, llvm::bitc::ATTR_KIND_IN_ALLOCA, llvm::bitc::ATTR_KIND_IN_REG, 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_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_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_THREAD, 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, and llvm::Attribute::None.
Definition at line 1280 of file BitcodeReader.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, llvm::Type::isFPOrFPVectorTy(), and llvm::Type::isIntOrIntVectorTy().
|
static |
Definition at line 1247 of file BitcodeReader.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, and llvm::bitc::CAST_ZEXT.
|
static |
Definition at line 1210 of file BitcodeReader.cpp.
References llvm::CodeModel::Kernel, llvm::CodeModel::Large, llvm::CodeModel::Medium, llvm::CodeModel::Small, and llvm::CodeModel::Tiny.
|
static |
Definition at line 1356 of file BitcodeReader.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::Comdat::NoDeduplicate, and llvm::Comdat::SameSize.
|
static |
Definition at line 1193 of file BitcodeReader.cpp.
References llvm::GlobalValue::DefaultStorageClass, llvm::GlobalValue::DLLExportStorageClass, and llvm::GlobalValue::DLLImportStorageClass.
Definition at line 1202 of file BitcodeReader.cpp.
|
static |
Definition at line 1372 of file BitcodeReader.cpp.
References llvm::bitc::AllowContract, llvm::bitc::AllowReassoc, llvm::bitc::AllowReciprocal, llvm::bitc::ApproxFunc, llvm::bitc::NoInfs, llvm::bitc::NoNaNs, llvm::bitc::NoSignedZeros, llvm::FastMathFlags::setAllowContract(), llvm::FastMathFlags::setAllowReassoc(), llvm::FastMathFlags::setAllowReciprocal(), llvm::FastMathFlags::setApproxFunc(), llvm::FastMathFlags::setFast(), llvm::FastMathFlags::setNoInfs(), llvm::FastMathFlags::setNoNaNs(), llvm::FastMathFlags::setNoSignedZeros(), and llvm::bitc::UnsafeAlgebra.
|
static |
Definition at line 1119 of file BitcodeReader.cpp.
|
static |
Definition at line 1160 of file BitcodeReader.cpp.
|
static |
Definition at line 1138 of file BitcodeReader.cpp.
References Live.
|
static |
Definition at line 1168 of file BitcodeReader.cpp.
|
static |
Definition at line 1077 of file BitcodeReader.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::GlobalValue::PrivateLinkage, llvm::GlobalValue::WeakAnyLinkage, and llvm::GlobalValue::WeakODRLinkage.
|
static |
Definition at line 1343 of file BitcodeReader.cpp.
References llvm::bitc::ORDERING_ACQREL, llvm::bitc::ORDERING_ACQUIRE, llvm::bitc::ORDERING_MONOTONIC, llvm::bitc::ORDERING_NOTATOMIC, llvm::bitc::ORDERING_RELEASE, llvm::bitc::ORDERING_SEQCST, and llvm::bitc::ORDERING_UNORDERED.
|
static |
Definition at line 1175 of file BitcodeReader.cpp.
References llvm::CalleeInfo::RelBlockFreqBits.
|
static |
Definition at line 1318 of file BitcodeReader.cpp.
References llvm::AtomicRMWInst::Add, llvm::AtomicRMWInst::And, llvm::AtomicRMWInst::BAD_BINOP, llvm::AtomicRMWInst::FAdd, llvm::AtomicRMWInst::FMax, llvm::AtomicRMWInst::FMin, llvm::AtomicRMWInst::FSub, 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_XCHG, llvm::bitc::RMW_XOR, llvm::AtomicRMWInst::Sub, llvm::AtomicRMWInst::UDecWrap, llvm::AtomicRMWInst::UIncWrap, llvm::AtomicRMWInst::UMax, llvm::AtomicRMWInst::UMin, llvm::AtomicRMWInst::Xchg, and llvm::AtomicRMWInst::Xor.
|
static |
Definition at line 1227 of file BitcodeReader.cpp.
Definition at line 1266 of file BitcodeReader.cpp.
References llvm::Type::isFPOrFPVectorTy(), llvm::Type::isIntOrIntVectorTy(), and llvm::bitc::UNOP_FNEG.
|
static |
Definition at line 1238 of file BitcodeReader.cpp.
|
static |
Definition at line 1183 of file BitcodeReader.cpp.
References llvm::GlobalValue::DefaultVisibility, llvm::GlobalValue::HiddenVisibility, and llvm::GlobalValue::ProtectedVisibility.
|
static |
Definition at line 8303 of file BitcodeReader.cpp.
References llvm::BitstreamCursor::advanceSkippingSubblocks(), assert(), llvm::BitstreamEntry::EndBlock, llvm::BitstreamCursor::EnterSubBlock(), llvm::BitstreamEntry::Error, error, llvm::bitc::FS_FLAGS, llvm::Expected< T >::get(), llvm_unreachable, llvm::BitstreamCursor::readRecord(), llvm::BitstreamEntry::Record, llvm::BitstreamEntry::SubBlock, and llvm::Expected< T >::takeError().
Referenced by llvm::BitcodeModule::getLTOInfo().
|
static |
Definition at line 1758 of file BitcodeReader.cpp.
References llvm::Attribute::EmptyKey, llvm::Attribute::EndAttrKinds, llvm_unreachable, llvm::Attribute::None, and llvm::Attribute::TombstoneKey.
Referenced by addRawAttributeValue().
|
static |
Definition at line 8413 of file BitcodeReader.cpp.
References error, llvm::getBitcodeModuleList(), and llvm::Expected< T >::takeError().
Referenced by llvm::getBitcodeLTOInfo(), llvm::getLazyBitcodeModule(), llvm::getModuleSummaryIndex(), llvm::parseBitcodeFile(), and llvm::readModuleSummaryIndex().
|
static |
Definition at line 1065 of file BitcodeReader.cpp.
|
static |
Definition at line 128 of file BitcodeReader.cpp.
References llvm::CallingConv::C, llvm::BitstreamCursor::canSkipToPos(), llvm::createStringError(), llvm::BitstreamCursor::Read(), and llvm::Error::success().
Referenced by initStream().
|
static |
Definition at line 320 of file BitcodeReader.cpp.
References llvm::BitstreamCursor::advance(), llvm::BitstreamEntry::EndBlock, llvm::BitstreamEntry::Error, error, hasObjCCategoryInModule(), llvm::bitc::MODULE_BLOCK_ID, llvm::BitstreamEntry::Record, llvm::BitstreamCursor::SkipBlock(), llvm::BitstreamCursor::skipRecord(), and llvm::BitstreamEntry::SubBlock.
Referenced by getObjCClassCategory(), and llvm::isBitcodeContainingObjCCategory().
|
static |
Definition at line 272 of file BitcodeReader.cpp.
References llvm::BitstreamCursor::advanceSkippingSubblocks(), convertToString(), llvm::BitstreamEntry::EndBlock, llvm::BitstreamCursor::EnterSubBlock(), llvm::BitstreamEntry::Error, error, llvm::Expected< T >::get(), llvm_unreachable, llvm::bitc::MODULE_BLOCK_ID, llvm::bitc::MODULE_CODE_SECTIONNAME, llvm::BitstreamCursor::readRecord(), llvm::BitstreamEntry::Record, llvm::BitstreamEntry::SubBlock, and llvm::Expected< T >::takeError().
Referenced by hasObjCCategory().
|
static |
Definition at line 3897 of file BitcodeReader.cpp.
References llvm::GlobalValue::hasDefaultVisibility(), llvm::GlobalValue::hasExternalWeakLinkage(), llvm::GlobalValue::hasLocalLinkage(), and llvm::GlobalValue::setDSOLocal().
|
static |
Definition at line 149 of file BitcodeReader.cpp.
References error, llvm::MemoryBufferRef::getBufferSize(), llvm::MemoryBufferRef::getBufferStart(), hasInvalidBitcodeHeader(), llvm::isBitcodeWrapper(), and llvm::SkipBitcodeWrapperHeader().
Referenced by llvm::getBitcodeFileContents(), llvm::getBitcodeProducerString(), llvm::getBitcodeTargetTriple(), and llvm::isBitcodeContainingObjCCategory().
Definition at line 1462 of file BitcodeReader.cpp.
References ExpandConstantExprs, llvm::Instruction::isBinaryOp(), llvm::Instruction::isCast(), llvm::ConstantExpr::isSupportedBinOp(), llvm::ConstantExpr::isSupportedCastOp(), and llvm::ConstantExpr::isSupportedGetElementPtr().
|
static |
Helper to note and return the current location, and jump to the given offset.
Definition at line 2766 of file BitcodeReader.cpp.
References llvm::BitstreamCursor::advance(), error, llvm::Expected< T >::get(), llvm::BitstreamCursor::GetCurrentBitNo(), llvm::BitstreamCursor::JumpToBit(), llvm::Offset, llvm::BitstreamEntry::SubBlock, llvm::Expected< T >::takeError(), and llvm::bitc::VALUE_SYMTAB_BLOCK_ID.
|
static |
Definition at line 7346 of file BitcodeReader.cpp.
References llvm::TypeTestResolution::AlignLog2, llvm::TypeTestResolution::BitMask, llvm::StringRef::data(), llvm::ModuleSummaryIndex::getOrInsertTypeIdSummary(), llvm::TypeTestResolution::InlineBits, parseWholeProgramDevirtResolution(), llvm::TypeTestResolution::SizeM1, llvm::TypeTestResolution::SizeM1BitWidth, llvm::TypeTestResolution::TheKind, and llvm::TypeIdSummary::TTRes.
|
static |
Definition at line 7330 of file BitcodeReader.cpp.
References llvm::StringRef::data(), I, parseWholeProgramDevirtResolutionByArg(), llvm::WholeProgramDevirtResolution::SingleImplName, llvm::WholeProgramDevirtResolution::TheKind, and llvm::TypeIdSummary::WPDRes.
Referenced by parseTypeIdSummaryRecord().
|
static |
Definition at line 7316 of file BitcodeReader.cpp.
References B, and llvm::WholeProgramDevirtResolution::ResByArg.
Referenced by parseWholeProgramDevirtResolution().
|
static |
Definition at line 8054 of file BitcodeReader.cpp.
References llvm::BitstreamCursor::advance(), llvm::Block, llvm::BitstreamEntry::EndBlock, llvm::BitstreamCursor::EnterSubBlock(), llvm::BitstreamEntry::Error, error, llvm::Expected< T >::get(), llvm::BitstreamCursor::readRecord(), llvm::BitstreamEntry::Record, llvm::BitstreamCursor::SkipBlock(), llvm::BitstreamEntry::SubBlock, and llvm::Expected< T >::takeError().
Referenced by llvm::getBitcodeFileContents().
|
static |
Read the "IDENTIFICATION_BLOCK_ID" block, do some basic enforcement on the "epoch" encoded in the bitcode, and return the producer name if any.
Definition at line 192 of file BitcodeReader.cpp.
References llvm::BitstreamCursor::advance(), llvm::bitc::BITCODE_CURRENT_EPOCH, convertToString(), llvm::BitstreamEntry::EndBlock, llvm::BitstreamCursor::EnterSubBlock(), llvm::BitstreamEntry::Error, error, llvm::Expected< T >::get(), llvm::bitc::IDENTIFICATION_BLOCK_ID, llvm::bitc::IDENTIFICATION_CODE_EPOCH, llvm::bitc::IDENTIFICATION_CODE_STRING, llvm::BitstreamCursor::readRecord(), llvm::BitstreamEntry::Record, and llvm::Expected< T >::takeError().
Referenced by readIdentificationCode().
|
static |
Definition at line 240 of file BitcodeReader.cpp.
References llvm::BitstreamCursor::advance(), llvm::BitstreamCursor::AtEndOfStream(), llvm::BitstreamEntry::EndBlock, llvm::BitstreamEntry::Error, error, llvm::bitc::IDENTIFICATION_BLOCK_ID, readIdentificationBlock(), llvm::BitstreamEntry::Record, llvm::BitstreamCursor::SkipBlock(), llvm::BitstreamCursor::skipRecord(), and llvm::BitstreamEntry::SubBlock.
Referenced by llvm::getBitcodeProducerString().
|
static |
Definition at line 351 of file BitcodeReader.cpp.
References llvm::BitstreamCursor::advanceSkippingSubblocks(), convertToString(), llvm::BitstreamEntry::EndBlock, llvm::BitstreamCursor::EnterSubBlock(), llvm::BitstreamEntry::Error, error, llvm::Expected< T >::get(), llvm_unreachable, llvm::bitc::MODULE_BLOCK_ID, llvm::bitc::MODULE_CODE_TRIPLE, llvm::BitstreamCursor::readRecord(), llvm::BitstreamEntry::Record, llvm::BitstreamEntry::SubBlock, and llvm::Expected< T >::takeError().
Referenced by readTriple().
|
static |
Definition at line 396 of file BitcodeReader.cpp.
References llvm::BitstreamCursor::advance(), llvm::BitstreamEntry::EndBlock, llvm::BitstreamEntry::Error, error, llvm::Expected< T >::get(), llvm::bitc::MODULE_BLOCK_ID, readModuleTriple(), llvm::BitstreamEntry::Record, llvm::BitstreamCursor::SkipBlock(), llvm::BitstreamCursor::skipRecord(), llvm::BitstreamEntry::SubBlock, and llvm::Expected< T >::takeError().
Referenced by llvm::getBitcodeTargetTriple().
|
static |
Definition at line 7421 of file BitcodeReader.cpp.
References assert().
|
static |
Definition at line 181 of file BitcodeReader.cpp.
References F, I, and instructions.
|
static |
Definition at line 1393 of file BitcodeReader.cpp.
References llvm::GlobalValue::DLLExportStorageClass, llvm::GlobalValue::DLLImportStorageClass, llvm::GlobalValue::hasLocalLinkage(), and llvm::GlobalValue::setDLLStorageClass().
|
static |
Definition at line 2172 of file BitcodeReader.cpp.
References llvm::MemoryEffectsBase< LocationEnum >::argMemOnly(), llvm::bitc::ATTR_KIND_ARGMEMONLY, llvm::bitc::ATTR_KIND_INACCESSIBLEMEM_ONLY, llvm::bitc::ATTR_KIND_INACCESSIBLEMEM_OR_ARGMEMONLY, llvm::bitc::ATTR_KIND_READ_NONE, llvm::bitc::ATTR_KIND_READ_ONLY, llvm::bitc::ATTR_KIND_WRITEONLY, llvm::MemoryEffectsBase< LocationEnum >::inaccessibleMemOnly(), llvm::MemoryEffectsBase< LocationEnum >::inaccessibleOrArgMemOnly(), llvm::MemoryEffectsBase< LocationEnum >::none(), llvm::MemoryEffectsBase< LocationEnum >::readOnly(), and llvm::MemoryEffectsBase< LocationEnum >::writeOnly().
|
static |
Referenced by isConstExprSupported().
cl::opt< cl::boolOrDefault > LoadBitcodeIntoNewDbgInfoFormat("load-bitcode-into-experimental-debuginfo-iterators", cl::Hidden, cl::desc("Load bitcode directly into the new debug info format (regardless " "of input format)")) | ( | "load-bitcode-into-experimental-debuginfo-iterators" | , |
cl::Hidden | , | ||
cl::desc("Load bitcode directly into the new debug info format (regardless " "of input format)") | |||
) |
Load bitcode directly into RemoveDIs format (use debug records instead of debug intrinsics).
UNSET is treated as FALSE, so the default action is to do nothing. Individual tools can override this to incrementally add support for the RemoveDIs format.
|
extern |
|
static |
|
extern |
Definition at line 47 of file BasicBlock.cpp.