|
LLVM
4.0.0
|
#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/None.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/IR/Argument.h"#include "llvm/IR/Attributes.h"#include "llvm/IR/AutoUpgrade.h"#include "llvm/IR/BasicBlock.h"#include "llvm/IR/CallingConv.h"#include "llvm/IR/CallSite.h"#include "llvm/IR/Comdat.h"#include "llvm/IR/Constant.h"#include "llvm/IR/Constants.h"#include "llvm/IR/DebugInfo.h"#include "llvm/IR/DebugInfoMetadata.h"#include "llvm/IR/DebugLoc.h"#include "llvm/IR/DerivedTypes.h"#include "llvm/IR/DiagnosticInfo.h"#include "llvm/IR/DiagnosticPrinter.h"#include "llvm/IR/Function.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/GVMaterializer.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/Module.h"#include "llvm/IR/ModuleSummaryIndex.h"#include "llvm/IR/OperandTraits.h"#include "llvm/IR/Operator.h"#include "llvm/IR/TrackingMDRef.h"#include "llvm/IR/Type.h"#include "llvm/IR/ValueHandle.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/ManagedStatic.h"#include "llvm/Support/MemoryBuffer.h"#include "llvm/Support/raw_ostream.h"#include <algorithm>#include <cassert>#include <cstddef>#include <cstdint>#include <deque>#include <limits>#include <map>#include <memory>#include <string>#include <system_error>#include <tuple>#include <utility>#include <vector>Go to the source code of this file.
Enumerations | |
| enum | |
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 ManagedStatic < BitcodeErrorCategoryType > | ErrorCategory |
| anonymous enum |
Definition at line 98 of file BitcodeReader.cpp.
|
static |
Definition at line 1086 of file BitcodeReader.cpp.
References A, llvm::AttrBuilder::addAlignmentAttr(), llvm::AttrBuilder::addAttribute(), llvm::AttrBuilder::addStackAlignmentAttr(), getRawAttributeMask(), I, and llvm::None.
Referenced by decodeLLVMAttributesForBitcode().
|
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 1110 of file BitcodeReader.cpp.
References llvm::AttrBuilder::addAlignmentAttr(), addRawAttributeValue(), assert(), and llvm::isPowerOf2_32().
|
static |
Definition at line 1185 of file BitcodeReader.cpp.
References 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_NON_LAZY_BIND, llvm::bitc::ATTR_KIND_NON_NULL, 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_MEMORY, llvm::bitc::ATTR_KIND_SANITIZE_THREAD, 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_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, llvm::CallingConv::Cold, llvm::MCID::Convergent, llvm::ISD::JumpTable, llvm::NoAlias, llvm::None, AMDGPU::RuntimeMD::KernelArg::ReadOnly, and AMDGPU::RuntimeMD::KernelArg::WriteOnly.
Definition at line 870 of file BitcodeReader.cpp.
References llvm::MCID::Add, llvm::APIntOps::And(), 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(), llvm::Type::isIntOrIntVectorTy(), llvm::APIntOps::Or(), and llvm::APIntOps::Xor().
|
static |
Definition at line 851 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 946 of file BitcodeReader.cpp.
References llvm::SystemZICMP::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, and llvm::bitc::COMDAT_SELECTION_KIND_SAME_SIZE.
|
static |
Definition at line 822 of file BitcodeReader.cpp.
|
static |
Definition at line 962 of file BitcodeReader.cpp.
References llvm::FastMathFlags::setAllowReciprocal(), llvm::FastMathFlags::setNoInfs(), llvm::FastMathFlags::setNoNaNs(), llvm::FastMathFlags::setNoSignedZeros(), and llvm::FastMathFlags::setUnsafeAlgebra().
|
static |
Decode the flags for GlobalValue in the summary.
Definition at line 797 of file BitcodeReader.cpp.
|
static |
Definition at line 754 of file BitcodeReader.cpp.
|
static |
Definition at line 925 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 908 of file BitcodeReader.cpp.
References llvm::MCID::Add, llvm::APIntOps::And(), fuzzer::Max(), fuzzer::Min(), llvm::APIntOps::Or(), llvm::bitc::RMW_ADD, llvm::bitc::RMW_AND, 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, and llvm::APIntOps::Xor().
|
static |
Definition at line 938 of file BitcodeReader.cpp.
References llvm::CrossThread, llvm::SingleThread, llvm::bitc::SYNCHSCOPE_CROSSTHREAD, and llvm::bitc::SYNCHSCOPE_SINGLETHREAD.
|
static |
Definition at line 831 of file BitcodeReader.cpp.
|
static |
Definition at line 842 of file BitcodeReader.cpp.
References AMDGPU::RuntimeMD::KernelArg::Global, AMDGPU::RuntimeMD::KernelArg::Local, and llvm::None.
|
static |
Definition at line 812 of file BitcodeReader.cpp.
|
static |
Definition at line 1015 of file BitcodeReader.cpp.
References llvm::CallingConv::Cold, llvm::MCID::Convergent, llvm::ISD::JumpTable, llvm_unreachable, llvm::NoAlias, llvm::None, AMDGPU::RuntimeMD::KernelArg::ReadOnly, and AMDGPU::RuntimeMD::KernelArg::WriteOnly.
Referenced by addRawAttributeValue().
|
static |
Definition at line 5316 of file BitcodeReader.cpp.
References error(), llvm::getBitcodeModuleList(), and llvm::Expected< T >::takeError().
Referenced by llvm::getLazyBitcodeModule(), llvm::getModuleSummaryIndex(), llvm::hasGlobalValueSummary(), and llvm::parseBitcodeFile().
|
static |
Definition at line 742 of file BitcodeReader.cpp.
|
static |
Helper to note and return the current location, and jump to the given offset.
Definition at line 1709 of file BitcodeReader.cpp.
References llvm::BitstreamCursor::advance(), assert(), llvm::SimpleBitstreamCursor::GetCurrentBitNo(), llvm::BitstreamEntry::ID, llvm::SimpleBitstreamCursor::JumpToBit(), llvm::BitstreamEntry::Kind, and llvm::bitc::VALUE_SYMTAB_BLOCK_ID.
Definition at line 1935 of file BitcodeReader.cpp.
References llvm::ArrayRef< T >::begin(), llvm::ArrayRef< T >::size(), and llvm::transform().
|
static |
Definition at line 977 of file BitcodeReader.cpp.
References llvm::GlobalValue::setDLLStorageClass().
|
static |
Definition at line 5145 of file BitcodeReader.cpp.
Referenced by llvm::BitcodeErrorCategory().
1.8.6