LLVM  8.0.1
Enumerations | Functions | Variables
BitcodeReader.cpp File Reference
#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/Optional.h"
#include "llvm/ADT/STLExtras.h"
#include "llvm/ADT/SmallString.h"
#include "llvm/ADT/SmallVector.h"
#include "llvm/ADT/StringRef.h"
#include "llvm/ADT/Triple.h"
#include "llvm/ADT/Twine.h"
#include "llvm/Bitcode/BitstreamReader.h"
#include "llvm/Bitcode/LLVMBitCodes.h"
#include "llvm/Config/llvm-config.h"
#include "llvm/IR/Argument.h"
#include "llvm/IR/Attributes.h"
#include "llvm/IR/AutoUpgrade.h"
#include "llvm/IR/BasicBlock.h"
#include "llvm/IR/CallSite.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/GlobalAlias.h"
#include "llvm/IR/GlobalIFunc.h"
#include "llvm/IR/GlobalIndirectSymbol.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/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/ManagedStatic.h"
#include "llvm/Support/MathExtras.h"
#include "llvm/Support/MemoryBuffer.h"
#include "llvm/Support/raw_ostream.h"
#include <algorithm>
#include <cassert>
#include <cstddef>
#include <cstdint>
#include <deque>
#include <map>
#include <memory>
#include <set>
#include <string>
#include <system_error>
#include <tuple>
#include <utility>
#include <vector>

Go to the source code of this file.

Enumerations

enum  
 

Functions

static Error error (const Twine &Message)
 
static bool hasValidBitcodeHeader (BitstreamCursor &Stream)
 Helper to read the header common to all bitcode files. More...
 
static Expected< BitstreamCursorinitStream (MemoryBufferRef Buffer)
 
template<typename StrTy >
static bool convertToString (ArrayRef< uint64_t > Record, unsigned Idx, StrTy &Result)
 Convert a string from a record into an std::string, return true on failure. More...
 
static void stripTBAA (Module *M)
 
static Expected< std::string > readIdentificationBlock (BitstreamCursor &Stream)
 Read the "IDENTIFICATION_BLOCK_ID" block, do some basic enforcement on the "epoch" encoded in the bitcode, and return the producer name if any. More...
 
static Expected< std::string > readIdentificationCode (BitstreamCursor &Stream)
 
static Expected< boolhasObjCCategoryInModule (BitstreamCursor &Stream)
 
static Expected< boolhasObjCCategory (BitstreamCursor &Stream)
 
static Expected< std::string > readModuleTriple (BitstreamCursor &Stream)
 
static Expected< std::string > readTriple (BitstreamCursor &Stream)
 
static bool hasImplicitComdat (size_t Val)
 
static GlobalValue::LinkageTypes getDecodedLinkage (unsigned Val)
 
static FunctionSummary::FFlags getDecodedFFlags (uint64_t RawFlags)
 
static GlobalValueSummary::GVFlags getDecodedGVSummaryFlags (uint64_t RawFlags, uint64_t Version)
 Decode the flags for GlobalValue in the summary. More...
 
static GlobalVarSummary::GVarFlags getDecodedGVarFlags (uint64_t RawFlags)
 
static GlobalValue::VisibilityTypes getDecodedVisibility (unsigned Val)
 
static GlobalValue::DLLStorageClassTypes getDecodedDLLStorageClass (unsigned Val)
 
static bool getDecodedDSOLocal (unsigned Val)
 
static GlobalVariable::ThreadLocalMode getDecodedThreadLocalMode (unsigned Val)
 
static GlobalVariable::UnnamedAddr getDecodedUnnamedAddrType (unsigned Val)
 
static int getDecodedCastOpcode (unsigned Val)
 
static int getDecodedUnaryOpcode (unsigned Val, Type *Ty)
 
static int getDecodedBinaryOpcode (unsigned Val, Type *Ty)
 
static AtomicRMWInst::BinOp getDecodedRMWOperation (unsigned Val)
 
static AtomicOrdering getDecodedOrdering (unsigned Val)
 
static Comdat::SelectionKind getDecodedComdatSelectionKind (unsigned Val)
 
static FastMathFlags getDecodedFastMathFlags (unsigned Val)
 
static void upgradeDLLImportExportLinkage (GlobalValue *GV, unsigned Val)
 
static uint64_t getRawAttributeMask (Attribute::AttrKind Val)
 
static void addRawAttributeValue (AttrBuilder &B, uint64_t Val)
 
static void decodeLLVMAttributesForBitcode (AttrBuilder &B, uint64_t EncodedAttrs)
 This fills an AttrBuilder object with the LLVM attributes that have been decoded from the given integer. More...
 
static Attribute::AttrKind getAttrFromCode (uint64_t Code)
 
static uint64_t jumpToValueSymbolTable (uint64_t Offset, BitstreamCursor &Stream)
 Helper to note and return the current location, and jump to the given offset. More...
 
static APInt readWideAPInt (ArrayRef< uint64_t > Vals, unsigned TypeBits)
 
static void inferDSOLocal (GlobalValue *GV)
 
static void parseWholeProgramDevirtResolutionByArg (ArrayRef< uint64_t > Record, size_t &Slot, WholeProgramDevirtResolution &Wpd)
 
static void parseWholeProgramDevirtResolution (ArrayRef< uint64_t > Record, StringRef Strtab, size_t &Slot, TypeIdSummary &TypeId)
 
static void parseTypeIdSummaryRecord (ArrayRef< uint64_t > Record, StringRef Strtab, ModuleSummaryIndex &TheIndex)
 
static void setImmutableRefs (std::vector< ValueInfo > &Refs, unsigned Count)
 
static Expected< StringRefreadBlobInRecord (BitstreamCursor &Stream, unsigned Block, unsigned RecordID)
 
static Expected< boolgetEnableSplitLTOUnitFlag (BitstreamCursor &Stream, unsigned ID)
 
static Expected< BitcodeModulegetSingleModule (MemoryBufferRef Buffer)
 

Variables

static cl::opt< boolPrintSummaryGUIDs ("print-summary-global-ids", cl::init(false), cl::Hidden, cl::desc("Print the global id for each value when reading the module summary"))
 
static ManagedStatic< BitcodeErrorCategoryType > ErrorCategory
 

Enumeration Type Documentation

◆ anonymous enum

anonymous enum

Definition at line 98 of file BitcodeReader.cpp.

Function Documentation

◆ addRawAttributeValue()

static void addRawAttributeValue ( AttrBuilder B,
uint64_t  Val 
)
static

◆ convertToString()

template<typename StrTy >
static bool convertToString ( ArrayRef< uint64_t >  Record,
unsigned  Idx,
StrTy &  Result 
)
static

Convert a string from a record into an std::string, return true on failure.

Definition at line 145 of file BitcodeReader.cpp.

References llvm::ArrayRef< T >::size().

Referenced by hasObjCCategoryInModule(), readIdentificationBlock(), readModuleTriple(), and setImmutableRefs().

◆ decodeLLVMAttributesForBitcode()

static void decodeLLVMAttributesForBitcode ( AttrBuilder B,
uint64_t  EncodedAttrs 
)
static

◆ error()

static Error error ( const Twine Message)
static

◆ getAttrFromCode()

static Attribute::AttrKind getAttrFromCode ( uint64_t  Code)
static

Definition at line 1304 of file BitcodeReader.cpp.

References llvm::BitstreamCursor::advanceSkippingSubblocks(), llvm::Attribute::Alignment, llvm::Attribute::AllocSize, llvm::Attribute::AlwaysInline, llvm::Attribute::ArgMemOnly, llvm::bitc::ATTR_KIND_ALIGNMENT, llvm::bitc::ATTR_KIND_ALLOC_SIZE, 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_COLD, llvm::bitc::ATTR_KIND_CONVERGENT, llvm::bitc::ATTR_KIND_DEREFERENCEABLE, llvm::bitc::ATTR_KIND_DEREFERENCEABLE_OR_NULL, 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_NAKED, llvm::bitc::ATTR_KIND_NEST, llvm::bitc::ATTR_KIND_NO_ALIAS, llvm::bitc::ATTR_KIND_NO_BUILTIN, 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_RECURSE, llvm::bitc::ATTR_KIND_NO_RED_ZONE, llvm::bitc::ATTR_KIND_NO_RETURN, llvm::bitc::ATTR_KIND_NO_UNWIND, llvm::bitc::ATTR_KIND_NOCF_CHECK, llvm::bitc::ATTR_KIND_NON_LAZY_BIND, llvm::bitc::ATTR_KIND_NON_NULL, llvm::bitc::ATTR_KIND_OPT_FOR_FUZZING, llvm::bitc::ATTR_KIND_OPTIMIZE_FOR_SIZE, llvm::bitc::ATTR_KIND_OPTIMIZE_NONE, 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_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_ERROR, llvm::bitc::ATTR_KIND_SWIFT_SELF, llvm::bitc::ATTR_KIND_UW_TABLE, llvm::bitc::ATTR_KIND_WRITEONLY, llvm::bitc::ATTR_KIND_Z_EXT, B, llvm::Attribute::Builtin, llvm::Attribute::ByVal, llvm::SmallVectorImpl< T >::clear(), llvm::Attribute::Cold, llvm::Attribute::Convergent, llvm::Attribute::Dereferenceable, llvm::Attribute::DereferenceableOrNull, llvm::BitstreamEntry::EndBlock, llvm::BitstreamCursor::EnterSubBlock(), error(), llvm::BitstreamEntry::Error, llvm::Exponent, llvm::BitstreamEntry::ID, llvm::Attribute::InaccessibleMemOnly, llvm::Attribute::InaccessibleMemOrArgMemOnly, llvm::Attribute::InAlloca, llvm::Attribute::InlineHint, llvm::Attribute::InReg, llvm::Attribute::JumpTable, llvm::BitstreamEntry::Kind, Kind, llvm::Value::MaxAlignmentExponent, llvm::Attribute::MinSize, llvm::Attribute::Naked, llvm::Attribute::Nest, llvm::Attribute::NoAlias, llvm::Attribute::NoBuiltin, llvm::Attribute::NoCapture, llvm::Attribute::NoCfCheck, llvm::Attribute::NoDuplicate, llvm::Attribute::NoImplicitFloat, llvm::Attribute::NoInline, llvm::Attribute::None, llvm::Attribute::NonLazyBind, llvm::Attribute::NonNull, llvm::Attribute::NoRecurse, llvm::Attribute::NoRedZone, llvm::Attribute::NoReturn, llvm::Attribute::NoUnwind, llvm::Attribute::OptForFuzzing, llvm::Attribute::OptimizeForSize, llvm::Attribute::OptimizeNone, llvm::bitc::PARAMATTR_GROUP_BLOCK_ID, llvm::bitc::PARAMATTR_GRP_CODE_ENTRY, parseAttrKind(), llvm::Attribute::ReadNone, llvm::Attribute::ReadOnly, llvm::BitstreamCursor::readRecord(), llvm::BitstreamEntry::Record, llvm::Attribute::Returned, llvm::Attribute::ReturnsTwice, llvm::Attribute::SafeStack, llvm::Attribute::SanitizeAddress, llvm::Attribute::SanitizeHWAddress, llvm::Attribute::SanitizeMemory, llvm::Attribute::SanitizeThread, llvm::Attribute::SExt, llvm::Attribute::ShadowCallStack, llvm::SmallVectorBase::size(), llvm::Attribute::Speculatable, llvm::Attribute::SpeculativeLoadHardening, llvm::Attribute::StackAlignment, llvm::Attribute::StackProtect, llvm::Attribute::StackProtectReq, llvm::Attribute::StackProtectStrong, llvm::Attribute::StrictFP, llvm::Attribute::StructRet, llvm::BitstreamEntry::SubBlock, llvm::Error::success(), llvm::Attribute::SwiftError, llvm::Attribute::SwiftSelf, llvm::Attribute::UWTable, llvm::Attribute::WriteOnly, and llvm::Attribute::ZExt.

◆ getDecodedBinaryOpcode()

static int getDecodedBinaryOpcode ( unsigned  Val,
Type Ty 
)
static

◆ getDecodedCastOpcode()

static int getDecodedCastOpcode ( unsigned  Val)
static

◆ getDecodedComdatSelectionKind()

static Comdat::SelectionKind getDecodedComdatSelectionKind ( unsigned  Val)
static

◆ getDecodedDLLStorageClass()

static GlobalValue::DLLStorageClassTypes getDecodedDLLStorageClass ( unsigned  Val)
static

◆ getDecodedDSOLocal()

static bool getDecodedDSOLocal ( unsigned  Val)
static

Definition at line 925 of file BitcodeReader.cpp.

◆ getDecodedFastMathFlags()

static FastMathFlags getDecodedFastMathFlags ( unsigned  Val)
static

◆ getDecodedFFlags()

static FunctionSummary::FFlags getDecodedFFlags ( uint64_t  RawFlags)
static

◆ getDecodedGVarFlags()

static GlobalVarSummary::GVarFlags getDecodedGVarFlags ( uint64_t  RawFlags)
static

Definition at line 902 of file BitcodeReader.cpp.

Referenced by setImmutableRefs().

◆ getDecodedGVSummaryFlags()

static GlobalValueSummary::GVFlags getDecodedGVSummaryFlags ( uint64_t  RawFlags,
uint64_t  Version 
)
static

Decode the flags for GlobalValue in the summary.

Definition at line 884 of file BitcodeReader.cpp.

Referenced by setImmutableRefs().

◆ getDecodedLinkage()

static GlobalValue::LinkageTypes getDecodedLinkage ( unsigned  Val)
static

◆ getDecodedOrdering()

static AtomicOrdering getDecodedOrdering ( unsigned  Val)
static

◆ getDecodedRMWOperation()

static AtomicRMWInst::BinOp getDecodedRMWOperation ( unsigned  Val)
static

◆ getDecodedThreadLocalMode()

static GlobalVariable::ThreadLocalMode getDecodedThreadLocalMode ( unsigned  Val)
static

◆ getDecodedUnaryOpcode()

static int getDecodedUnaryOpcode ( unsigned  Val,
Type Ty 
)
static

◆ getDecodedUnnamedAddrType()

static GlobalVariable::UnnamedAddr getDecodedUnnamedAddrType ( unsigned  Val)
static

◆ getDecodedVisibility()

static GlobalValue::VisibilityTypes getDecodedVisibility ( unsigned  Val)
static

◆ getEnableSplitLTOUnitFlag()

static Expected<bool> getEnableSplitLTOUnitFlag ( BitstreamCursor Stream,
unsigned  ID 
)
static

◆ getRawAttributeMask()

static uint64_t getRawAttributeMask ( Attribute::AttrKind  Val)
static

Definition at line 1128 of file BitcodeReader.cpp.

References llvm::Attribute::Alignment, llvm::Attribute::AllocSize, llvm::Attribute::AlwaysInline, llvm::Attribute::ArgMemOnly, llvm::Attribute::Builtin, llvm::Attribute::ByVal, llvm::Attribute::Cold, llvm::Attribute::Convergent, llvm::Attribute::Dereferenceable, llvm::Attribute::DereferenceableOrNull, llvm::Attribute::EndAttrKinds, llvm::Attribute::InaccessibleMemOnly, llvm::Attribute::InaccessibleMemOrArgMemOnly, llvm::Attribute::InAlloca, llvm::Attribute::InlineHint, llvm::Attribute::InReg, llvm::Attribute::JumpTable, llvm_unreachable, llvm::Attribute::MinSize, llvm::Attribute::Naked, llvm::Attribute::Nest, llvm::Attribute::NoAlias, llvm::Attribute::NoBuiltin, llvm::Attribute::NoCapture, llvm::Attribute::NoCfCheck, llvm::Attribute::NoDuplicate, llvm::Attribute::NoImplicitFloat, llvm::Attribute::NoInline, llvm::Attribute::None, llvm::Attribute::NonLazyBind, llvm::Attribute::NonNull, llvm::Attribute::NoRecurse, llvm::Attribute::NoRedZone, llvm::Attribute::NoReturn, llvm::Attribute::NoUnwind, llvm::Attribute::OptForFuzzing, llvm::Attribute::OptimizeForSize, llvm::Attribute::OptimizeNone, llvm::Attribute::ReadNone, llvm::Attribute::ReadOnly, llvm::Attribute::Returned, llvm::Attribute::ReturnsTwice, llvm::Attribute::SafeStack, llvm::Attribute::SanitizeAddress, llvm::Attribute::SanitizeHWAddress, llvm::Attribute::SanitizeMemory, llvm::Attribute::SanitizeThread, llvm::Attribute::SExt, llvm::Attribute::ShadowCallStack, llvm::Attribute::Speculatable, llvm::Attribute::SpeculativeLoadHardening, llvm::Attribute::StackAlignment, llvm::Attribute::StackProtect, llvm::Attribute::StackProtectReq, llvm::Attribute::StackProtectStrong, llvm::Attribute::StrictFP, llvm::Attribute::StructRet, llvm::Attribute::SwiftError, llvm::Attribute::SwiftSelf, llvm::Attribute::UWTable, llvm::Attribute::WriteOnly, and llvm::Attribute::ZExt.

Referenced by addRawAttributeValue().

◆ getSingleModule()

static Expected<BitcodeModule> getSingleModule ( MemoryBufferRef  Buffer)
static

◆ hasImplicitComdat()

static bool hasImplicitComdat ( size_t  Val)
static

Definition at line 819 of file BitcodeReader.cpp.

◆ hasObjCCategory()

static Expected<bool> hasObjCCategory ( BitstreamCursor Stream)
static

◆ hasObjCCategoryInModule()

static Expected<bool> hasObjCCategoryInModule ( BitstreamCursor Stream)
static

◆ hasValidBitcodeHeader()

static bool hasValidBitcodeHeader ( BitstreamCursor Stream)
static

Helper to read the header common to all bitcode files.

Definition at line 110 of file BitcodeReader.cpp.

References llvm::SimpleBitstreamCursor::canSkipToPos(), and llvm::SimpleBitstreamCursor::Read().

Referenced by initStream().

◆ inferDSOLocal()

static void inferDSOLocal ( GlobalValue GV)
static

◆ initStream()

static Expected<BitstreamCursor> initStream ( MemoryBufferRef  Buffer)
static

◆ jumpToValueSymbolTable()

static uint64_t jumpToValueSymbolTable ( uint64_t  Offset,
BitstreamCursor Stream 
)
static

◆ parseTypeIdSummaryRecord()

static void parseTypeIdSummaryRecord ( ArrayRef< uint64_t >  Record,
StringRef  Strtab,
ModuleSummaryIndex TheIndex 
)
static

◆ parseWholeProgramDevirtResolution()

static void parseWholeProgramDevirtResolution ( ArrayRef< uint64_t >  Record,
StringRef  Strtab,
size_t &  Slot,
TypeIdSummary TypeId 
)
static

◆ parseWholeProgramDevirtResolutionByArg()

static void parseWholeProgramDevirtResolutionByArg ( ArrayRef< uint64_t >  Record,
size_t &  Slot,
WholeProgramDevirtResolution Wpd 
)
static

◆ readBlobInRecord()

static Expected<StringRef> readBlobInRecord ( BitstreamCursor Stream,
unsigned  Block,
unsigned  RecordID 
)
static

◆ readIdentificationBlock()

static Expected<std::string> readIdentificationBlock ( BitstreamCursor Stream)
static

◆ readIdentificationCode()

static Expected<std::string> readIdentificationCode ( BitstreamCursor Stream)
static

◆ readModuleTriple()

static Expected<std::string> readModuleTriple ( BitstreamCursor Stream)
static

◆ readTriple()

static Expected<std::string> readTriple ( BitstreamCursor Stream)
static

◆ readWideAPInt()

static APInt readWideAPInt ( ArrayRef< uint64_t >  Vals,
unsigned  TypeBits 
)
static

Definition at line 2145 of file BitcodeReader.cpp.

References llvm::MCID::Add, llvm::BitstreamCursor::advanceSkippingSubblocks(), llvm::lltok::APFloat, assert(), llvm::SmallVectorTemplateCommon< T >::back(), llvm::SmallVectorTemplateCommon< T >::begin(), llvm::ArrayRef< T >::begin(), llvm::Function::begin(), llvm::SmallVectorImpl< T >::clear(), llvm::bitc::CONSTANTS_BLOCK_ID, llvm::BasicBlock::Create(), llvm::bitc::CST_CODE_AGGREGATE, llvm::bitc::CST_CODE_BLOCKADDRESS, llvm::bitc::CST_CODE_CE_BINOP, llvm::bitc::CST_CODE_CE_CAST, llvm::bitc::CST_CODE_CE_CMP, llvm::bitc::CST_CODE_CE_EXTRACTELT, llvm::bitc::CST_CODE_CE_GEP, llvm::bitc::CST_CODE_CE_GEP_WITH_INRANGE_INDEX, llvm::bitc::CST_CODE_CE_INBOUNDS_GEP, llvm::bitc::CST_CODE_CE_INSERTELT, llvm::bitc::CST_CODE_CE_SELECT, llvm::bitc::CST_CODE_CE_SHUFFLEVEC, llvm::bitc::CST_CODE_CE_SHUFVEC_EX, llvm::bitc::CST_CODE_CE_UNOP, llvm::bitc::CST_CODE_CSTRING, llvm::bitc::CST_CODE_DATA, llvm::bitc::CST_CODE_FLOAT, llvm::bitc::CST_CODE_INLINEASM, llvm::bitc::CST_CODE_INLINEASM_OLD, llvm::bitc::CST_CODE_INTEGER, llvm::bitc::CST_CODE_NULL, llvm::bitc::CST_CODE_SETTYPE, llvm::bitc::CST_CODE_STRING, llvm::bitc::CST_CODE_UNDEF, llvm::bitc::CST_CODE_WIDE_INTEGER, llvm::dyn_cast(), E, llvm::SmallVectorBase::empty(), llvm::Function::empty(), llvm::SmallVectorTemplateCommon< T >::end(), llvm::Function::end(), llvm::BitstreamEntry::EndBlock, llvm::BitstreamCursor::EnterSubBlock(), error(), llvm::BitstreamEntry::Error, llvm::InlineAsm::get(), llvm::ConstantInt::get(), llvm::ConstantFP::get(), llvm::VectorType::get(), llvm::ConstantArray::get(), llvm::ConstantStruct::get(), llvm::ConstantVector::get(), llvm::ConstantDataArray::get(), llvm::ConstantDataVector::get(), llvm::BlockAddress::get(), llvm::ConstantExpr::get(), llvm::UndefValue::get(), getBitWidth(), llvm::ConstantExpr::getCast(), llvm::SimpleBitstreamCursor::GetCurrentBitNo(), getDecodedBinaryOpcode(), getDecodedCastOpcode(), getDecodedUnaryOpcode(), llvm::SequentialType::getElementType(), llvm::PointerType::getElementType(), llvm::ConstantExpr::getExtractElement(), llvm::ConstantExpr::getFCmp(), llvm::ConstantDataArray::getFP(), llvm::ConstantDataVector::getFP(), llvm::ConstantExpr::getGetElementPtr(), llvm::ConstantExpr::getICmp(), llvm::ConstantExpr::getInsertElement(), llvm::Type::getInt1Ty(), llvm::Type::getInt32Ty(), llvm::Constant::getNullValue(), llvm::SequentialType::getNumElements(), llvm::ConstantExpr::getSelect(), llvm::ConstantExpr::getShuffleVector(), llvm::ConstantDataArray::getString(), getType(), llvm::Value::getType(), llvm::Type::getVoidTy(), I, llvm::BitstreamEntry::ID, llvm::APFloatBase::IEEEdouble(), llvm::APFloatBase::IEEEhalf(), llvm::APFloatBase::IEEEquad(), llvm::APFloatBase::IEEEsingle(), llvm::Type::isDoubleTy(), llvm::PossiblyExactOperator::IsExact, llvm::Type::isFloatTy(), llvm::Type::isFP128Ty(), llvm::Type::isFPOrFPVectorTy(), llvm::Type::isHalfTy(), llvm::Type::isIntegerTy(), llvm::Type::isPPC_FP128Ty(), llvm::Type::isX86_FP80Ty(), llvm::SimpleBitstreamCursor::JumpToBit(), llvm::BitstreamEntry::Kind, LLVM_FALLTHROUGH, llvm::DenseMapBase< SmallDenseMap< KeyT, ValueT, InlineBuckets, KeyInfoT, BucketT >, KeyT, ValueT, KeyInfoT, BucketT >::lookup(), llvm::Value::materialized_uses(), llvm::OverflowingBinaryOperator::NoSignedWrap, llvm::OverflowingBinaryOperator::NoUnsignedWrap, llvm::bitc::OBO_NO_SIGNED_WRAP, llvm::bitc::OBO_NO_UNSIGNED_WRAP, llvm::bitc::PEO_EXACT, llvm::SmallVectorTemplateBase< T >::pop_back(), llvm::APFloatBase::PPCDoubleDouble(), llvm::SmallVectorTemplateBase< T >::push_back(), llvm::BitstreamCursor::readRecord(), llvm::BitstreamEntry::Record, Size, llvm::SmallVectorBase::size(), llvm::DenseMapBase< SmallDenseMap< KeyT, ValueT, InlineBuckets, KeyInfoT, BucketT >, KeyT, ValueT, KeyInfoT, BucketT >::size(), llvm::ArrayRef< T >::size(), llvm::BitstreamCursor::SkipBlock(), llvm::Value::sortUseList(), llvm::BitstreamEntry::SubBlock, llvm::Error::success(), llvm::transform(), llvm::UpgradeBitCastExpr(), llvm::UpgradeInlineAsmString(), llvm::bitc::USELIST_BLOCK_ID, llvm::bitc::USELIST_CODE_BB, llvm::bitc::USELIST_CODE_DEFAULT, and llvm::APFloatBase::x87DoubleExtended().

◆ setImmutableRefs()

static void setImmutableRefs ( std::vector< ValueInfo > &  Refs,
unsigned  Count 
)
static

Definition at line 5227 of file BitcodeReader.cpp.

References llvm::ModuleSummaryIndex::addGlobalValueSummary(), llvm::ModuleSummaryIndex::addModule(), llvm::ModuleSummaryIndex::addOriginalName(), llvm::BitstreamCursor::advanceSkippingSubblocks(), assert(), llvm::SmallVectorTemplateCommon< T >::begin(), llvm::ModuleSummaryIndex::cfiFunctionDecls(), llvm::ModuleSummaryIndex::cfiFunctionDefs(), llvm::SmallVectorImpl< T >::clear(), convertToString(), llvm::CorruptedBitcode, E, llvm::SmallVectorTemplateCommon< T >::end(), llvm::BitstreamEntry::EndBlock, llvm::BitstreamCursor::EnterSubBlock(), error(), llvm::BitstreamEntry::Error, error_category, llvm::ModuleSummaryIndex::findSummaryInModule(), llvm::StringMapEntry< ValueTy >::first(), first, llvm::bitc::FS_ALIAS, llvm::bitc::FS_CFI_FUNCTION_DECLS, llvm::bitc::FS_CFI_FUNCTION_DEFS, llvm::bitc::FS_COMBINED, llvm::bitc::FS_COMBINED_ALIAS, llvm::bitc::FS_COMBINED_GLOBALVAR_INIT_REFS, llvm::bitc::FS_COMBINED_ORIGINAL_NAME, llvm::bitc::FS_COMBINED_PROFILE, llvm::bitc::FS_FLAGS, llvm::bitc::FS_PERMODULE, llvm::bitc::FS_PERMODULE_GLOBALVAR_INIT_REFS, llvm::bitc::FS_PERMODULE_PROFILE, llvm::bitc::FS_PERMODULE_RELBF, llvm::bitc::FS_TYPE_CHECKED_LOAD_CONST_VCALL, llvm::bitc::FS_TYPE_CHECKED_LOAD_VCALLS, llvm::bitc::FS_TYPE_ID, llvm::bitc::FS_TYPE_TEST_ASSUME_CONST_VCALL, llvm::bitc::FS_TYPE_TEST_ASSUME_VCALLS, llvm::bitc::FS_TYPE_TESTS, llvm::bitc::FS_VALUE_GUID, llvm::bitc::FS_VERSION, getDecodedFFlags(), getDecodedGVarFlags(), getDecodedGVSummaryFlags(), llvm::ValueInfo::getGUID(), llvm::ModuleSummaryIndex::getOrInsertValueInfo(), I, llvm::BitstreamEntry::ID, llvm::ARM_PROC::IE, llvm::BitstreamEntry::Kind, llvm_unreachable, llvm::bitc::MODULE_STRTAB_BLOCK_ID, llvm::bitc::MST_CODE_ENTRY, llvm::bitc::MST_CODE_HASH, name, parseTypeIdSummaryRecord(), llvm::BitstreamCursor::readRecord(), llvm::BitstreamEntry::Record, llvm::StringMapEntry< ValueTy >::second, llvm::ModuleSummaryIndex::setEnableSplitLTOUnit(), llvm::ModuleSummaryIndex::setHasSyntheticEntryCounts(), llvm::GlobalValueSummary::setModulePath(), llvm::GlobalValueSummary::setOriginalName(), llvm::ModuleSummaryIndex::setPartiallySplitLTOUnits(), llvm::ModuleSummaryIndex::setSkipModuleByDistributedBackend(), llvm::ModuleSummaryIndex::setWithGlobalValueDeadStripping(), llvm::SmallVectorBase::size(), llvm::BitstreamEntry::SubBlock, llvm::Error::success(), llvm::IndexedInstrProf::Version, and VI.

◆ stripTBAA()

static void stripTBAA ( Module M)
static

Definition at line 156 of file BitcodeReader.cpp.

References F(), I, llvm::instructions(), and llvm::LLVMContext::MD_tbaa.

◆ upgradeDLLImportExportLinkage()

static void upgradeDLLImportExportLinkage ( GlobalValue GV,
unsigned  Val 
)
static

Variable Documentation

◆ ErrorCategory

ManagedStatic<BitcodeErrorCategoryType> ErrorCategory
static

Definition at line 5702 of file BitcodeReader.cpp.

Referenced by llvm::BitcodeErrorCategory().

◆ PrintSummaryGUIDs

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