LLVM  8.0.1
Namespaces | Classes | Typedefs | Enumerations | Functions | Variables
llvm Namespace Reference

This class represents lattice values for constants. More...

Namespaces

 AArch64
 
 AArch64_AM
 AArch64_AM - AArch64 Addressing Mode Stuff.
 
 AArch64_MC
 
 AArch64AT
 
 AArch64BTIHint
 
 AArch64CC
 
 AArch64DB
 
 AArch64DC
 
 AArch64ExactFPImm
 
 AArch64IC
 
 AArch64II
 
 AArch64ISB
 
 AArch64ISD
 
 AArch64Layout
 
 AArch64PRCTX
 
 AArch64PRFM
 
 AArch64PSBHint
 
 AArch64PState
 
 AArch64SE
 
 AArch64SVEPredPattern
 
 AArch64SVEPRFM
 
 AArch64SysReg
 
 AArch64TLBI
 
 AArch64TSB
 
 adl_detail
 
 AMDGPU
 
 AMDGPUAsmVariants
 
 AMDGPUISD
 
 amdhsa
 
 APIntOps
 
 ARCCC
 
 ARCISD
 
 ARM
 Define some predicates that are used for node matching.
 
 ARM_AM
 ARM_AM - ARM Addressing Mode Stuff.
 
 ARM_ISB
 
 ARM_MB
 
 ARM_MC
 
 ARM_PROC
 
 ARM_TSB
 
 ARMBankedReg
 
 ARMBuildAttrs
 
 ARMCC
 
 ARMCP
 
 ARMII
 ARMII - This namespace holds all of the target specific flags that instruction info tracks.
 
 ARMISD
 
 ARMRI
 Register allocation hints.
 
 ARMSysReg
 
 AttributeFuncs
 
 AVR
 Contains the AVR backend.
 
 AVRCC
 
 AVRII
 
 AVRISD
 
 bfi_detail
 
 bitc
 
 BitmaskEnumDetail
 
 BPFISD
 
 BTF
 
 CallingConv
 CallingConv Namespace - This namespace contains an enum with a value for the well-known calling conventions.
 
 cfg
 
 cflaa
 
 CGSCCAnalysisManagerModuleProxy
 
 Check
 
 cl
 cl Namespace - This namespace contains all of the command line option processing machinery.
 
 CodeGenOpt
 
 CodeModel
 
 codeview
 
 CodeViewYAML
 
 COFF
 
 COFFYAML
 
 consthoist
 A private "module" namespace for types and utilities used by ConstantHoisting.
 
 coro
 
 coverage
 
 detail
 Implementation details of the pass manager interfaces.
 
 DomTreeBuilder
 
 DOT
 
 dwarf
 
 DWARFFlavour
 Flavour of dwarf regnumbers.
 
 DWARFYAML
 
 ELF
 
 elfabi
 
 ELFYAML
 
 EngineKind
 
 FloatABI
 
 FPDenormal
 
 FPOpFusion
 
 FramePointer
 
 fuzzerop
 
 GCOV
 
 GraphProgram
 
 GVNExpression
 
 hashing
 
 Hexagon
 
 Hexagon_MC
 
 HexagonII
 HexagonII - This namespace holds all of the target specific flags that instruction info tracks.
 
 HexagonISD
 
 HexagonMCInstrInfo
 
 HexStyle
 
 ilist_detail
 
 IndexedInstrProf
 
 InlineConstants
 
 internal
 
 IntervalMapImpl
 IntervalMapImpl - Namespace used for IntervalMap implementation details.
 
 Intrinsic
 This namespace contains an enum with a value for every intrinsic/builtin function known by LLVM.
 
 irsymtab
 
 ISD
 ISD namespace - This namespace contains an enum which represents all of the SelectionDAG node types and value types.
 
 itanium_demangle
 
 json
 
 JumpTable
 
 jumpthreading
 A private "module" namespace for types and utilities used by JumpThreading.
 
 Lanai
 
 LanaiII
 
 LanaiISD
 
 LCOMM
 
 legacy
 
 LegalityPredicates
 
 LegalizeActions
 
 LegalizeMutations
 
 lltok
 
 LLVM_LIBRARY_VISIBILITY
 A private "module" namespace for types and utilities used by GVN.
 
 LoopAnalysisManagerFunctionProxy
 
 lowertypetests
 
 LPAC
 
 LPCC
 
 lto
 
 MachO
 
 MachOYAML
 
 mca
 
 MCD
 
 MCID
 
 MCOI
 
 MCParserUtils
 
 mdconst
 Transitional API for extracting constants from Metadata.
 
 MIPatternMatch
 
 Mips
 
 Mips16HardFloatInfo
 
 MIPS_MC
 
 MipsII
 MipsII - This namespace holds all of the target specific flags that instruction info tracks.
 
 MipsISD
 
 ms_demangle
 
 msf
 
 msgpack
 
 MSP430
 
 MSP430ISD
 
 MSSAHelpers
 
 N86
 Native X86 register numbers.
 
 NVPTX
 
 NVPTXCC
 
 NVPTXII
 
 NVPTXISD
 
 objcarc
 
 object
 
 OMF
 
 opt
 
 optional_detail
 
 orc
 
 ore
 Add a small namespace to avoid name clashes with the classes used in the streaming interface.
 
 outliner
 
 parallel
 
 PatternMatch
 
 PBQP
 
 pdb
 
 pgo
 
 PICLevel
 
 PICStyles
 The X86 backend supports a number of different styles of PIC.
 
 PIELevel
 
 PPC
 Define some predicates that are used for node matching.
 
 PPCII
 PPCII - This namespace holds all of the PowerPC target-specific per-instruction flags.
 
 PPCISD
 
 PredicateInfoClasses
 
 R600
 
 R600InstrFlags
 
 RawInstrProf
 
 rdf
 
 reassociate
 A private "module" namespace for types and utilities used by Reassociate.
 
 RegState
 
 Reloc
 
 RISCV
 
 RISCVFenceField
 
 RISCVFPRndMode
 
 RISCVII
 
 RISCVISD
 
 RISCVMatInt
 
 RISCVSysReg
 
 RTLIB
 
 safestack
 
 sampleprof
 
 ScaledNumbers
 
 Sched
 
 SI
 
 SIInstrFlags
 
 SIIntrinsic
 
 SIOutMods
 
 SISched
 
 SISrcMods
 
 SIStackID
 
 slpvectorizer
 A private "module" namespace for types and utilities used by this pass.
 
 Sparc
 
 SPCC
 
 SPII
 SPII - This namespace holds all of the target specific flags that instruction info tracks.
 
 SPISD
 
 support
 
 symbolize
 
 SymbolRewriter
 
 SyncScope
 
 sys
 
 SystemZ
 
 SystemZCP
 
 SystemZICMP
 
 SystemZII
 
 SystemZISD
 
 SystemZMC
 
 TargetOpcode
 Invariant opcodes: All instruction sets have these as their low opcodes.
 
 tgtok
 
 ThreadModel
 
 TLSModel
 
 trailing_objects_internal
 
 unittest
 
 vfs
 
 VGPRIndexMode
 
 VNCoercion
 
 wasm
 
 WasmYAML
 
 WebAssembly
 
 WebAssemblyII
 
 WebAssemblyISD
 
 wholeprogramdevirt
 
 Win64EH
 
 windows_manifest
 
 WinEH
 
 X86
 Define some predicates that are used for node matching.
 
 X86_MC
 
 X86Disassembler
 
 X86II
 X86II - This namespace holds all of the target specific flags that instruction info tracks.
 
 X86ISD
 
 XCore
 
 XCoreISD
 
 xray
 
 yaml
 
 zlib
 

Classes

class  A57ChainingConstraint
 Add the accumulator chaining constraint to a PBQP graph. More...
 
class  AAEvalLegacyPass
 
class  AAEvaluator
 
class  AAManager
 A manager for alias analyses. More...
 
struct  AAMDNodes
 A collection of metadata nodes that might be associated with a memory access used by the alias-analysis infrastructure. More...
 
class  AArch64_COFFTargetObjectFile
 This implementation is used for AArch64 COFF targets. More...
 
class  AArch64_ELFTargetObjectFile
 This implementation is used for AArch64 ELF targets (Linux in particular). More...
 
class  AArch64_MachoTargetObjectFile
 AArch64_MachoTargetObjectFile - This TLOF implementation is used for Darwin. More...
 
class  AArch64AppleInstPrinter
 
class  AArch64beTargetMachine
 
class  AArch64CallLowering
 
class  AArch64Disassembler
 
class  AArch64ExternalSymbolizer
 
class  AArch64FrameLowering
 
class  AArch64FunctionInfo
 AArch64FunctionInfo - This class is derived from MachineFunctionInfo and contains private AArch64-specific information for each MachineFunction. More...
 
class  AArch64GenRegisterBankInfo
 
class  AArch64InstPrinter
 
class  AArch64InstrInfo
 
class  AArch64LegalizerInfo
 This class provides the information for the target register banks. More...
 
class  AArch64leTargetMachine
 
struct  AArch64MCAsmInfoDarwin
 
struct  AArch64MCAsmInfoELF
 
struct  AArch64MCAsmInfoGNUCOFF
 
struct  AArch64MCAsmInfoMicrosoftCOFF
 
class  AArch64MCExpr
 
class  AArch64MCInstLower
 AArch64MCInstLower - This class is used to lower an MachineInstr into an MCInst. More...
 
class  AArch64RegisterBankInfo
 This class provides the information for the target register banks. More...
 
class  AArch64RegisterInfo
 
class  AArch64SelectionDAGInfo
 
class  AArch64Subtarget
 
class  AArch64TargetELFStreamer
 
class  AArch64TargetLowering
 
class  AArch64TargetMachine
 
class  AArch64TargetStreamer
 
class  AArch64TargetWinCOFFStreamer
 
class  AArch64TTIImpl
 
class  AAResultBase
 A CRTP-driven "mixin" base class to help implement the function alias analysis results concept. More...
 
class  AAResults
 
class  AAResultsWrapperPass
 A wrapper pass to provide the legacy pass manager access to a suitably prepared AAResults object. More...
 
class  AbstractLatticeFunction
 AbstractLatticeFunction - This class is implemented by the dataflow instance to specify what the lattice values are and how they handle merges etc. More...
 
class  AccelTable
 This class holds an abstract representation of an Accelerator Table, consisting of a sequence of buckets, each bucket containint a sequence of HashData entries. More...
 
class  AccelTableBase
 A base class holding non-template-dependant functionality of the AccelTable class. More...
 
class  AccelTableData
 Interface which the different types of accelerator table data have to conform. More...
 
struct  ADCEPass
 A DCE pass that assumes instructions are dead until proven otherwise. More...
 
struct  add_const_past_pointer
 If T is a pointer to X, return a pointer to const X. More...
 
struct  add_const_past_pointer< T, typename std::enable_if< std::is_pointer< T >::value >::type >
 
struct  add_lvalue_reference_if_not_pointer
 If T is a pointer, just return it. If it is not, return T&. More...
 
struct  add_lvalue_reference_if_not_pointer< T, typename std::enable_if< std::is_pointer< T >::value >::type >
 
class  AddDiscriminatorsPass
 
class  AddOperator
 
class  AddressPool
 
class  AddrSpaceCastInst
 This class represents a conversion between pointers from one address space to another. More...
 
class  AddrSpaceCastSDNode
 
class  AggressiveAntiDepBreaker
 
class  AggressiveAntiDepState
 Contains all the state necessary for anti-dep breaking. More...
 
class  AggressiveInstCombinePass
 
class  AliasSet
 
class  AliasSetTracker
 
class  AliasSummary
 Alias summary information. More...
 
struct  AlignedCharArray
 Helper for building an aligned character array type. More...
 
struct  AlignedCharArrayUnion
 This union template exposes a suitably aligned and sized character array member which can hold elements of any of up to ten types. More...
 
struct  AlignmentFromAssumptionsPass
 
struct  AlignTo
 alignTo for contexts where a constant expression is required. More...
 
class  AllAnalysesOn
 This templated class represents "all analyses that operate over \<a particular IR unit\>" (e.g. More...
 
class  AllocaHolder
 
class  AllocaInst
 an instruction to allocate memory on the stack More...
 
class  AllocationOrder
 
class  AllocatorBase
 CRTP base class providing obvious overloads for the core Allocate() methods of LLVM-style allocators. More...
 
class  AllocatorList
 A linked-list with a custom, local allocator. More...
 
class  AlwaysInlinerPass
 Inlines functions marked as "always_inline". More...
 
class  AMDGPUAA
 Analysis pass providing a never-invalidated alias analysis result. More...
 
class  AMDGPUAAResult
 A simple AA result that uses TBAA metadata to answer queries. More...
 
class  AMDGPUAAWrapperPass
 Legacy wrapper pass to provide the AMDGPUAAResult object. More...
 
class  AMDGPUArgumentUsageInfo
 
class  AMDGPUAsmPrinter
 
class  AMDGPUBufferPseudoSourceValue
 
class  AMDGPUCallLowering
 
class  AMDGPUDisassembler
 
class  AMDGPUExternalAAWrapper
 
class  AMDGPUFrameLowering
 Information about the stack frame layout on the AMDGPU targets. More...
 
struct  AMDGPUFunctionArgInfo
 
class  AMDGPUGenRegisterBankInfo
 This class provides the information for the target register banks. More...
 
class  AMDGPUImagePseudoSourceValue
 
class  AMDGPUInstPrinter
 
class  AMDGPUInstrInfo
 
class  AMDGPUInstructionSelector
 
class  AMDGPUIntrinsicInfo
 
class  AMDGPULegalizerInfo
 This class provides the information for the target register banks. More...
 
class  AMDGPULibCalls
 
class  AMDGPULibFunc
 Wrapper class for AMDGPULIbFuncImpl. More...
 
class  AMDGPULibFuncBase
 
class  AMDGPULibFuncImpl
 
class  AMDGPUMachineFunction
 
class  AMDGPUMachineModuleInfo
 
class  AMDGPUMangledLibFunc
 
class  AMDGPUMCAsmInfo
 
class  AMDGPUMCCodeEmitter
 
struct  AMDGPUPerfHintAnalysis
 
class  AMDGPURegisterBankInfo
 
struct  AMDGPURegisterInfo
 
class  AMDGPUSubtarget
 
class  AMDGPUSymbolizer
 
class  AMDGPUTargetAsmStreamer
 
class  AMDGPUTargetELFStreamer
 
class  AMDGPUTargetLowering
 
class  AMDGPUTargetMachine
 
class  AMDGPUTargetObjectFile
 
class  AMDGPUTargetStreamer
 
class  AMDGPUTTIImpl
 
class  AMDGPUUnmangledLibFunc
 
struct  AnalysisCallGraphWrapperPassTraits
 
struct  AnalysisInfoMixin
 A CRTP mix-in that provides informational APIs needed for analysis passes. More...
 
struct  AnalysisKey
 A special type used by analysis passes to provide an address that identifies that particular analysis pass type. More...
 
class  AnalysisManager
 A container for analyses that lazily runs them and caches their results. More...
 
class  AnalysisResolver
 AnalysisResolver - Simple interface used by Pass objects to pull all analysis information out of pass manager that is responsible to manage the pass. More...
 
struct  AnalysisResultsForFn
 Helper struct for bundling up the analysis results per function for IPSCCP. More...
 
struct  AnalysisSetKey
 A special type used to provide an address that identifies a set of related analyses. More...
 
class  AnalysisUsage
 Represent the analysis usage information of a pass. More...
 
struct  AnonStructTypeKeyInfo
 
class  AntiDepBreaker
 This class works in conjunction with the post-RA scheduler to rename registers to break register anti-dependencies (WAR hazards). More...
 
class  Any
 
class  AnyMemCpyInst
 This class represents any memcpy intrinsic i.e. More...
 
class  AnyMemIntrinsic
 
class  AnyMemMoveInst
 This class represents any memmove intrinsic i.e. More...
 
class  AnyMemSetInst
 This class represents any memset intrinsic. More...
 
class  AnyMemTransferInst
 
class  APByteStreamer
 
class  APFloat
 
struct  APFloatBase
 A self-contained host- and target-independent arbitrary-precision floating-point software implementation. More...
 
class  APInt
 Class for arbitrary precision integers. More...
 
class  AppendingBinaryByteStream
 An implementation of WritableBinaryStream which can write at its end causing the underlying data to grow. More...
 
class  AppleAcceleratorTable
 This implements the Apple accelerator table format, a precursor of the DWARF 5 accelerator table format. More...
 
class  AppleAccelTableData
 A base class for different implementations of Data classes for Apple Accelerator Tables. More...
 
class  AppleAccelTableOffsetData
 Accelerator table data implementation for simple Apple accelerator tables with just a DIE reference. More...
 
class  AppleAccelTableStaticOffsetData
 Accelerator table data implementation for simple Apple accelerator tables with a DIE offset but no actual DIE pointer. More...
 
class  AppleAccelTableStaticTypeData
 Accelerator table data implementation for type accelerator tables with a DIE offset but no actual DIE pointer. More...
 
class  AppleAccelTableTypeData
 Accelerator table data implementation for Apple type accelerator tables. More...
 
class  APSInt
 
class  ARCFrameLowering
 
class  ARCFunctionInfo
 ARCFunctionInfo - This class is derived from MachineFunction private ARC target-specific information for each MachineFunction. More...
 
class  ARCInstPrinter
 
class  ARCInstrInfo
 
class  ARCMCAsmInfo
 
class  ARCMCInstLower
 This class is used to lower an MachineInstr into an MCInst. More...
 
struct  ARCRegisterInfo
 
class  ARCSubtarget
 
class  ARCTargetLowering
 
class  ARCTargetMachine
 
class  ARCTargetStreamer
 
class  ARCTTIImpl
 
struct  are_base_of
 traits class for checking whether type T is a base class for all the given types in the variadic list. More...
 
struct  are_base_of< T, U, Ts... >
 
struct  ArgDescriptor
 
class  Argument
 This class represents an incoming formal argument to a Function. More...
 
class  ArgumentPromotionPass
 Argument promotion pass. More...
 
class  ARMAsmBackend
 
class  ARMAsmBackendDarwin
 
class  ARMAsmPrinter
 
class  ARMAttributeParser
 
class  ARMBaseInstrInfo
 
class  ARMBaseRegisterInfo
 
class  ARMBaseTargetMachine
 
class  ARMBETargetMachine
 ARM/Thumb big endian target machine. More...
 
class  ARMCallLowering
 
class  ARMCOFFMCAsmInfoGNU
 
class  ARMCOFFMCAsmInfoMicrosoft
 
class  ARMConstantPoolConstant
 ARMConstantPoolConstant - ARM-specific constant pool values for Constants, Functions, and BlockAddresses. More...
 
class  ARMConstantPoolMBB
 ARMConstantPoolMBB - ARM-specific constantpool value of a machine basic block. More...
 
class  ARMConstantPoolSymbol
 ARMConstantPoolSymbol - ARM-specific constantpool values for external symbols. More...
 
class  ARMConstantPoolValue
 ARMConstantPoolValue - ARM specific constantpool value. More...
 
class  ARMELFMCAsmInfo
 
class  ARMElfTargetObjectFile
 
class  ARMException
 
class  ARMFrameLowering
 
class  ARMFunctionInfo
 ARMFunctionInfo - This class is derived from MachineFunctionInfo and contains private ARM-specific information for each MachineFunction. More...
 
class  ARMGenRegisterBankInfo
 
class  ARMHazardRecognizer
 ARMHazardRecognizer handles special constraints that are not expressed in the scheduling itinerary. More...
 
class  ARMInstPrinter
 
class  ARMInstrInfo
 
class  ARMJITSymbolFlags
 ARM-specific JIT symbol flags. More...
 
class  ARMLegalizerInfo
 This class provides the information for the target register banks. More...
 
class  ARMLETargetMachine
 ARM/Thumb little endian target machine. More...
 
class  ARMMCAsmInfoDarwin
 
class  ARMMCExpr
 
class  ARMRegisterBankInfo
 This class provides the information for the target register banks. More...
 
struct  ARMRegisterInfo
 
class  ARMSelectionDAGInfo
 
class  ARMSubtarget
 
class  ARMTargetLowering
 
class  ARMTargetStreamer
 
class  ARMTTIImpl
 
class  ArrayRecycler
 Recycle small arrays allocated from a BumpPtrAllocator. More...
 
class  ArrayRef
 ArrayRef - Represent a constant reference to an array (0 or more elements consecutively in memory), i.e. More...
 
class  ArrayType
 Class to represent array types. More...
 
struct  ASanStackFrameLayout
 
struct  ASanStackVariableDescription
 
class  AShrOperator
 
class  AsmCommentConsumer
 A callback class which is notified of each comment in an assembly file as it is lexed. More...
 
class  AsmCond
 AsmCond - Class to support conditional assembly. More...
 
class  AsmLexer
 AsmLexer - Lexer class for assembly files. More...
 
class  AsmPrinter
 This class is intended to be used as a driving class for all asm writers. More...
 
class  AsmPrinterHandler
 Collects and handles AsmPrinter objects required to build debug or EH information. More...
 
struct  AsmRewrite
 
class  AsmToken
 Target independent representation for an assembler token. More...
 
class  AssemblerConstantPools
 
class  AssemblyAnnotationWriter
 
class  AssertingVH
 Value handle that asserts if the Value is deleted. More...
 
class  AssumptionAnalysis
 A function analysis which provides an AssumptionCache. More...
 
class  AssumptionCache
 A cache of @llvm.assume calls within a function. More...
 
class  AssumptionCacheTracker
 An immutable pass that tracks lazily created AssumptionCache objects. More...
 
class  AssumptionPrinterPass
 Printer pass for the AssumptionAnalysis results. More...
 
class  AtomicCmpXchgInst
 an instruction that atomically checks whether a specified value is in a memory location, and, if it is, stores a new value there. More...
 
class  AtomicMemCpyInst
 This class represents the atomic memcpy intrinsic i.e. More...
 
class  AtomicMemIntrinsic
 
class  AtomicMemMoveInst
 This class represents the atomic memmove intrinsic i.e. More...
 
class  AtomicMemSetInst
 This class represents atomic memset intrinsic. More...
 
class  AtomicMemTransferInst
 
class  AtomicRMWInst
 an instruction that atomically reads a memory location, combines it with another value, and then stores the result back. More...
 
class  AtomicSDNode
 This is an SDNode representing atomic operations. More...
 
class  AttrBuilder
 
class  Attribute
 
class  AttributeImpl
 
class  AttributeList
 
class  AttributeListImpl
 
class  AttributeSet
 
class  AttributeSetNode
 
class  AVRAsmBackend
 Utilities for manipulating generated AVR machine code. More...
 
class  AVRAsmPrinter
 An AVR assembly code printer. More...
 
class  AVRDAGToDAGISel
 Lowers LLVM IR (in DAG form) to AVR MC instructions (in DAG form). More...
 
struct  AVRDynAllocaSR
 Create the Dynalloca Stack Pointer Save/Restore pass. More...
 
class  AVRELFObjectWriter
 Writes AVR machine code into an ELF32 object file. More...
 
class  AVRELFStreamer
 A target streamer for an AVR ELF object file. More...
 
struct  AVRFrameAnalyzer
 The frame analyzer pass. More...
 
class  AVRFrameLowering
 Utilities for creating function call frames. More...
 
class  AVRInstPrinter
 Prints AVR instructions to a textual stream. More...
 
class  AVRInstrInfo
 Utilities related to the AVR instruction set. More...
 
class  AVRMachineFunctionInfo
 Contains AVR-specific information for each MachineFunction. More...
 
class  AVRMCAsmInfo
 Specifies the format of AVR assembly files. More...
 
class  AVRMCCodeEmitter
 Writes AVR machine code to a stream. More...
 
class  AVRMCELFStreamer
 
class  AVRMCExpr
 A expression in AVR machine code. More...
 
class  AVRMCInstLower
 Lowers MachineInstr objects into MCInst objects. More...
 
class  AVRRegisterInfo
 Utilities relating to AVR registers. More...
 
class  AVRSelectionDAGInfo
 Holds information about the AVR instruction selection DAG. More...
 
class  AVRSubtarget
 A specific AVR target MCU. More...
 
class  AVRTargetAsmStreamer
 A target streamer for textual AVR assembly code. More...
 
class  AVRTargetLowering
 Performs target lowering for the AVR. More...
 
class  AVRTargetMachine
 A generic AVR implementation. More...
 
class  AVRTargetObjectFile
 Lowering for an AVR ELF32 object file. More...
 
class  AVRTargetStreamer
 A generic AVR target output stream. More...
 
class  BaseIndexOffset
 Helper struct to parse and store a memory address as base + index + offset. More...
 
class  BasicAA
 Analysis pass providing a never-invalidated alias analysis result. More...
 
class  BasicAAResult
 This is the AA result object for the basic, local, and stateless alias analysis. More...
 
class  BasicAAWrapperPass
 Legacy wrapper pass to provide the BasicAAResult object. More...
 
class  BasicBlock
 LLVM Basic Block Representation. More...
 
class  BasicBlockEdge
 
struct  BasicBlockInfo
 BasicBlockInfo - Information about the offset and size of a single basic block. More...
 
class  BasicBlockPass
 BasicBlockPass class - This class is used to implement most local optimizations. More...
 
class  BasicBlockSDNode
 
struct  BasicDIEUnit
 
class  BasicTTIImpl
 Concrete BasicTTIImpl that can be used if no further customization is needed. More...
 
class  BasicTTIImplBase
 Base class which can be used to help build a TTI implementation. More...
 
struct  BDCEPass
 
class  bf_iterator
 
class  bf_iterator_storage
 
struct  BFIDOTGraphTraitsBase
 
class  BinaryByteStream
 An implementation of BinaryStream which holds its entire data set in a single contiguous buffer. More...
 
class  BinaryConstantExpr
 BinaryConstantExpr - This class is private to Constants.cpp, and is used behind the scenes to implement binary constant exprs. More...
 
class  BinaryItemStream
 BinaryItemStream represents a sequence of objects stored in some kind of external container but for which it is useful to view as a stream of contiguous bytes. More...
 
struct  BinaryItemTraits
 
struct  BinaryItemTraits< codeview::CVSymbol >
 
struct  BinaryItemTraits< llvm::codeview::CVType >
 
class  BinaryOperator
 
class  BinaryStream
 An interface for accessing data in a stream-like format, but which discourages copying. More...
 
class  BinaryStreamError
 Base class for errors originating when parsing raw PDB files. More...
 
class  BinaryStreamReader
 Provides read only access to a subclass of BinaryStream. More...
 
class  BinaryStreamRef
 BinaryStreamRef is to BinaryStream what ArrayRef is to an Array. More...
 
class  BinaryStreamRefBase
 Common stuff for mutable and immutable StreamRefs. More...
 
class  BinaryStreamWriter
 Provides write only access to a subclass of WritableBinaryStream. More...
 
struct  BinarySubstreamRef
 
class  BinOpInit
 !op (X, Y) - Combine two inits. More...
 
class  BitCastInst
 This class represents a no-op cast from one type to another. More...
 
class  BitCastOperator
 
class  BitCodeAbbrev
 BitCodeAbbrev - This class represents an abbreviation record. More...
 
class  BitCodeAbbrevOp
 BitCodeAbbrevOp - This describes one or more operands in an abbreviation. More...
 
struct  BitcodeFileContents
 
struct  BitcodeLTOInfo
 Basic information extracted from a bitcode module to be used for LTO. More...
 
class  BitcodeModule
 Represents a module in a bitcode file. More...
 
class  BitcodeReaderValueList
 
class  BitcodeWriter
 
class  BitcodeWriterPass
 Pass for writing a module of IR out to a bitcode file. More...
 
class  BitInit
 'true'/'false' - Represent a concrete initializer for a bit. More...
 
class  BitMaskClassIterator
 This class encapuslates the logic to iterate over bitmask returned by the various RegClass related APIs. More...
 
class  BitRecTy
 'bit' - Represent a single bit More...
 
class  BitsInit
 '{ a, b, c }' - Represents an initializer for a BitsRecTy value. More...
 
class  BitsRecTy
 'bits<n>' - Represent a fixed number of bits More...
 
class  BitstreamBlockInfo
 This class maintains the abbreviations read from a block info block. More...
 
class  BitstreamCursor
 This represents a position within a bitcode file, implemented on top of a SimpleBitstreamCursor. More...
 
struct  BitstreamEntry
 When advancing through a bitstream cursor, each advance can discover a few different kinds of entries: More...
 
class  BitstreamWriter
 
struct  BitTracker
 
class  BitVector
 
class  BlockAddress
 The address of a basic block. More...
 
class  BlockAddressSDNode
 
class  BlockFrequency
 
class  BlockFrequencyAnalysis
 Analysis pass which computes BlockFrequencyInfo. More...
 
class  BlockFrequencyInfo
 BlockFrequencyInfo pass uses BlockFrequencyInfoImpl implementation to estimate IR basic block frequencies. More...
 
class  BlockFrequencyInfoImpl
 Shared implementation for block frequency analysis. More...
 
class  BlockFrequencyInfoImplBase
 Base class for BlockFrequencyInfoImpl. More...
 
class  BlockFrequencyInfoWrapperPass
 Legacy analysis pass which computes BlockFrequencyInfo. More...
 
class  BlockFrequencyPrinterPass
 Printer pass for the BlockFrequencyInfo results. More...
 
class  BlotMapVector
 An associative container with fast insertion-order (deterministic) iteration over its elements. More...
 
struct  BoundsCheckingPass
 A pass to instrument code and perform run-time bounds checking on loads, stores, and other memory intrinsics. More...
 
class  BPFFrameLowering
 
class  BPFInstPrinter
 
class  BPFInstrInfo
 
class  BPFMCAsmInfo
 
class  BPFMCInstLower
 
struct  BPFRegisterInfo
 
class  BPFSelectionDAGInfo
 
class  BPFSubtarget
 
class  BPFTargetLowering
 
class  BPFTargetMachine
 
struct  BPIPassTrait
 Simple trait class that provides a mapping between BPI passes and the corresponding BPInfo. More...
 
struct  BPIPassTrait< LazyBranchProbabilityInfoPass >
 
class  BranchFolder
 
class  BranchInst
 Conditional or Unconditional Branch instruction. More...
 
class  BranchProbability
 
class  BranchProbabilityAnalysis
 Analysis pass which computes BranchProbabilityInfo. More...
 
class  BranchProbabilityInfo
 Analysis providing branch probability information. More...
 
class  BranchProbabilityInfoWrapperPass
 Legacy analysis pass which computes BranchProbabilityInfo. More...
 
class  BranchProbabilityPrinterPass
 Printer pass for the BranchProbabilityAnalysis results. More...
 
struct  BreakCriticalEdgesPass
 
class  BreakFalseDeps
 
class  BTFDebug
 Collect and emit BTF information. More...
 
struct  BTFFuncInfo
 Represent one func and its type id. More...
 
struct  BTFLineInfo
 Represent one line info. More...
 
class  BTFStringTable
 String table. More...
 
class  BTFTypeArray
 Handle array type. More...
 
class  BTFTypeBase
 The base class for BTF type generation. More...
 
class  BTFTypeDerived
 Handle several derived types include pointer, const, volatile, typedef and restrict. More...
 
class  BTFTypeEnum
 Handle enumerate type. More...
 
class  BTFTypeFunc
 Handle subprogram. More...
 
class  BTFTypeFuncProto
 Handle function pointer. More...
 
class  BTFTypeFwd
 Handle struct or union forward declaration. More...
 
class  BTFTypeInt
 Handle int type. More...
 
class  BTFTypeStruct
 Handle struct/union type. More...
 
class  buffer_ostream
 
class  BufferByteStreamer
 
struct  build_index_impl
 
struct  build_index_impl< 0, I... >
 
class  BuildVectorSDNode
 A "pseudo-class" with methods for operating on BUILD_VECTORs. More...
 
class  BumpPtrAllocatorImpl
 Allocate memory in an ever growing pool, as if by bump-pointer. More...
 
class  ByteStreamer
 
class  CachedHashString
 A container which contains a string, which it owns, plus a precomputed hash. More...
 
class  CachedHashStringRef
 A container which contains a StringRef plus a precomputed hash. More...
 
struct  CachePruningPolicy
 Policy for the pruneCache() function. More...
 
class  CallbackVH
 Value handle with callbacks on RAUW and destruction. More...
 
class  CallBase
 Base class for all callable instructions (InvokeInst and CallInst) Holds everything related to calling a function. More...
 
class  CalledValuePropagationPass
 
struct  CalleeInfo
 Class to accumulate and hold information about a callee. More...
 
class  CalleeSavedInfo
 The CalleeSavedInfo class tracks the information need to locate where a callee saved register is in the current frame. More...
 
class  CallEntryPseudoSourceValue
 
class  CallGraph
 The basic data container for the call graph of a Module of IR. More...
 
class  CallGraphAnalysis
 An analysis pass to compute the CallGraph for a Module. More...
 
class  CallGraphNode
 A node in the call graph for a module. More...
 
class  CallGraphPrinterPass
 Printer pass for the CallGraphAnalysis results. More...
 
class  CallGraphSCC
 CallGraphSCC - This is a single SCC that a CallGraphSCCPass is run on. More...
 
class  CallGraphSCCPass
 
class  CallGraphWrapperPass
 The ModulePass which wraps up a CallGraph and the logic to build it. More...
 
class  CallInfo
 
class  CallInst
 This class represents a function call, abstracting a target machine's calling convention. More...
 
class  CallLowering
 
class  CallSite
 
class  CallSiteBase
 
struct  CallSiteSplittingPass
 
class  CanonicalizeAliasesPass
 Simple pass that canonicalizes aliases. More...
 
struct  CaptureTracker
 This callback is used in conjunction with PointerMayBeCaptured. More...
 
struct  cast_convert_val
 
struct  cast_convert_val< To, FromTy, FromTy >
 
struct  cast_retty
 
struct  cast_retty_impl
 
struct  cast_retty_impl< To, const From * >
 
struct  cast_retty_impl< To, const From *const >
 
struct  cast_retty_impl< To, const From >
 
struct  cast_retty_impl< To, From * >
 
struct  cast_retty_impl< To, std::unique_ptr< From > >
 
struct  cast_retty_wrap
 
struct  cast_retty_wrap< To, FromTy, FromTy >
 
class  CastInst
 This is the base class for all instructions that perform data casts. More...
 
class  CatchPadInst
 
class  CatchReturnInst
 
class  CatchSwitchInst
 
class  CCState
 CCState - This class holds information needed while lowering arguments and return values. More...
 
class  CCValAssign
 CCValAssign - Represent assignment of one arg/retval to a location. More...
 
class  CFGAnalyses
 Represents analyses that only rely on functions' control flow. More...
 
class  CFGMST
 An union-find based Minimum Spanning Tree for CFG. More...
 
class  CFGOnlyPrinterPass
 
class  CFGOnlyViewerPass
 
class  CFGPrinterPass
 
class  CFGViewerPass
 
struct  CFGViewPredecessors
 
struct  CFGViewSuccessors
 
class  CFLAndersAA
 Analysis pass providing a never-invalidated alias analysis result. More...
 
class  CFLAndersAAResult
 
class  CFLAndersAAWrapperPass
 Legacy wrapper pass to provide the CFLAndersAAResult object. More...
 
class  CFLSteensAA
 Analysis pass providing a never-invalidated alias analysis result. More...
 
class  CFLSteensAAResult
 
class  CFLSteensAAWrapperPass
 Legacy wrapper pass to provide the CFLSteensAAResult object. More...
 
class  CGProfilePass
 
class  CGSCCToFunctionPassAdaptor
 Adaptor that maps from a SCC to its functions. More...
 
struct  CGSCCUpdateResult
 Support structure for SCC passes to communicate updates the call graph back to the CGSCC pass manager infrsatructure. More...
 
struct  CHIArg
 
class  circular_raw_ostream
 circular_raw_ostream - A raw_ostream which can save its data to a circular buffer, or can pass it through directly to an underlying stream if specified with a buffer of zero. More...
 
struct  ClassInfo
 
class  CleanupPadInst
 
class  CleanupReturnInst
 
struct  ClonedCodeInfo
 This struct can be used to capture information about code being cloned, while it is being cloned. More...
 
struct  ClrEHUnwindMapEntry
 
class  CmpInst
 This class is the base class for the comparison instructions. More...
 
class  CoalescerPair
 A helper class for register coalescers. More...
 
class  CodeExtractor
 Utility class for extracting code into a new function. More...
 
class  CodeGenCoverage
 
class  CodeInit
 
struct  CodeMetrics
 Utility to calculate the size and a few similar metrics for a set of basic blocks. More...
 
class  CodeRecTy
 'code' - Represent a code fragment More...
 
class  CodeViewContext
 Holds state from .cv_file and .cv_loc directives for later emission. More...
 
class  CodeViewDebug
 Collects and handles line tables information in a CodeView format. More...
 
class  Combiner
 
class  CombinerHelper
 
class  CombinerInfo
 
class  Comdat
 
struct  CommonHandleTraits
 
class  CompareConstantExpr
 
class  CompositeType
 Common super class of ArrayType, StructType and VectorType. More...
 
class  concat_iterator
 Iterator wrapper that concatenates sequences together. More...
 
class  ConcreteOperator
 A helper template for defining operators for individual opcodes. More...
 
class  CondCodeSDNode
 
struct  conjunction
 
struct  conjunction< B1 >
 
struct  conjunction< B1, Bn... >
 
class  ConnectedVNInfoEqClasses
 ConnectedVNInfoEqClasses - Helper class that can divide VNInfos in a LiveInterval into equivalence clases of connected components. More...
 
struct  const_pointer_or_const_ref
 
struct  const_pointer_or_const_ref< T, typename std::enable_if< std::is_pointer< T >::value >::type >
 
class  const_set_bits_iterator_impl
 ForwardIterator for the bits that are set. More...
 
class  Constant
 This is an important base class in LLVM. More...
 
class  ConstantAggregate
 Base class for aggregate constants (with operands). More...
 
class  ConstantAggregateZero
 All zero aggregate value. More...
 
struct  ConstantAggrKeyType
 
class  ConstantArray
 ConstantArray - Constant Array Declarations. More...
 
class  ConstantAsMetadata
 
class  ConstantData
 Base class for constants with no operands. More...
 
class  ConstantDataArray
 An array constant whose element type is a simple 1/2/4/8-byte integer or float/double, and whose elements are just simple data values (i.e. More...
 
struct  ConstantDataArraySlice
 Represents offset+length into a ConstantDataArray. More...
 
class  ConstantDataSequential
 ConstantDataSequential - A vector or array constant whose element type is a simple 1/2/4/8-byte integer or float/double, and whose elements are just simple data values (i.e. More...
 
class  ConstantDataVector
 A vector constant whose element type is a simple 1/2/4/8-byte integer or float/double, and whose elements are just simple data values (i.e. More...
 
class  ConstantExpr
 A constant value that is initialized with an expression using other constant values. More...
 
struct  ConstantExprKeyType
 
class  ConstantFolder
 ConstantFolder - Create constants with minimum, target independent, folding. More...
 
class  ConstantFoldingMIRBuilder
 An MIRBuilder which does trivial constant folding of binary ops. More...
 
class  ConstantFP
 ConstantFP - Floating Point Values [float, double]. More...
 
class  ConstantFPSDNode
 
class  ConstantHoistingPass
 
struct  ConstantInfo
 
struct  ConstantInfo< ConstantArray >
 
struct  ConstantInfo< ConstantExpr >
 
struct  ConstantInfo< ConstantStruct >
 
struct  ConstantInfo< ConstantVector >
 
struct  ConstantInfo< InlineAsm >
 
class  ConstantInt
 This is the shared class of boolean and integer constants. More...
 
class  ConstantMergePass
 A pass that merges duplicate global constants into a single constant. More...
 
class  ConstantPointerNull
 A constant pointer value that points to null. More...
 
class  ConstantPool
 
struct  ConstantPoolEntry
 
class  ConstantPoolSDNode
 
class  ConstantRange
 This class represents a range of values. More...
 
class  ConstantSDNode
 
class  ConstantStruct
 
class  ConstantTokenNone
 A constant token which is empty. More...
 
class  ConstantUniqueMap
 
class  ConstantVector
 Constant Vector Declarations. More...
 
class  ConstMIBundleOperands
 ConstMIBundleOperands - Iterate over all operands in a const bundle of machine instructions. More...
 
class  ConstMIOperands
 ConstMIOperands - Iterate over operands of a single const instruction. More...
 
class  ConstrainedFPIntrinsic
 This is the common base class for constrained floating point intrinsics. More...
 
class  ContextAndReplaceableUses
 Pointer to the context, with optional RAUW support. More...
 
class  ContextualFoldingSet
 ContextualFoldingSet - This template class is a further refinement of FoldingSet which provides a context argument when calling Profile on its nodes. More...
 
struct  ContextualFoldingSetTrait
 ContextualFoldingSetTrait - Like FoldingSetTrait, but for ContextualFoldingSets. More...
 
class  ControlHeightReductionPass
 
class  ConvergingVLIWScheduler
 ConvergingVLIWScheduler shrinks the unscheduled zone using heuristics to balance the schedule. More...
 
class  CoroAllocInst
 This represents the llvm.coro.alloc instruction. More...
 
class  CoroBeginInst
 This class represents the llvm.coro.begin instruction. More...
 
class  CoroEndInst
 This represents the llvm.coro.end instruction. More...
 
class  CoroFrameInst
 This represents the llvm.coro.frame instruction. More...
 
class  CoroFreeInst
 This represents the llvm.coro.free instruction. More...
 
class  CoroIdInst
 This represents the llvm.coro.alloc instruction. More...
 
class  CoroPromiseInst
 This represents the llvm.coro.promise instruction. More...
 
class  CoroSaveInst
 This represents the llvm.coro.save instruction. More...
 
class  CoroSizeInst
 This represents the llvm.coro.size instruction. More...
 
class  CoroSubFnInst
 This class represents the llvm.coro.subfn.addr instruction. More...
 
class  CoroSuspendInst
 This represents the llvm.coro.suspend instruction. More...
 
struct  CorrelatedValuePropagationPass
 
struct  CostTblEntry
 Cost Table Entry. More...
 
class  CrashRecoveryContext
 Crash recovery helper object. More...
 
class  CrashRecoveryContextCleanup
 Abstract base class of cleanup handlers. More...
 
class  CrashRecoveryContextCleanupBase
 Base class of cleanup handler that controls recovery of resources of the given type. More...
 
class  CrashRecoveryContextCleanupRegistrar
 Helper class for managing resource cleanups. More...
 
class  CrashRecoveryContextDeleteCleanup
 Cleanup handler that reclaims resource by calling 'delete' on it. More...
 
class  CrashRecoveryContextDestructorCleanup
 Cleanup handler that reclaims resource by calling destructor on it. More...
 
class  CrashRecoveryContextReleaseRefCleanup
 Cleanup handler that reclaims resource by calling its method 'Release'. More...
 
class  CriticalAntiDepBreaker
 
struct  CriticalEdgeSplittingOptions
 Option class for critical edge splitting. More...
 
class  CrossDSOCFIPass
 
struct  CryptContextTraits
 
class  CSEConfig
 
class  CSEConfigConstantOnly
 
class  CSEMIRBuilder
 Defines a builder that does CSE of MachineInstructions using GISelCSEInfo. More...
 
struct  CxxUnwindMapEntry
 
class  DAGDeltaAlgorithm
 DAGDeltaAlgorithm - Implements a "delta debugging" algorithm for minimizing directed acyclic graphs using a predicate function. More...
 
class  DagInit
 (v a, b) - Represent a DAG tree value. More...
 
class  DagRecTy
 'dag' - Represent a dag fragment More...
 
class  DAGTypeLegalizer
 This takes an arbitrary SelectionDAG as input and hacks on it until only value types the target machine can handle are left. More...
 
class  DataExtractor
 
class  DataLayout
 A parsed version of the target data layout string in and methods for querying it. More...
 
struct  DataRegionData
 
class  DbgAddrIntrinsic
 This represents the llvm.dbg.addr instruction. More...
 
class  DbgDeclareInst
 This represents the llvm.dbg.declare instruction. More...
 
class  DbgEntity
 This class is defined as the common parent of DbgVariable and DbgLabel such that it could levarage polymorphism to extract common code for DbgVariable and DbgLabel. More...
 
class  DbgInfoIntrinsic
 This is the common base class for debug info intrinsics. More...
 
class  DbgLabel
 This class is used to track label information. More...
 
class  DbgLabelInst
 This represents the llvm.dbg.label instruction. More...
 
class  DbgLabelInstrMap
 For each inlined instance of a source-level label, keep the corresponding DBG_LABEL instruction. More...
 
class  DbgValueHistoryMap
 
class  DbgValueInst
 This represents the llvm.dbg.value instruction. More...
 
class  DbgVariable
 This class is used to track local variable information. More...
 
class  DbgVariableIntrinsic
 This is the common base class for debug info intrinsics for variables. More...
 
struct  DbgVariableLocation
 Represents the location at which a variable is stored. More...
 
class  DCEPass
 Basic Dead Code Elimination pass. More...
 
class  DeadArgumentEliminationPass
 Eliminate dead arguments (and return values) from functions. More...
 
class  DebugCounter
 
class  DebugEpochBase
 A base class for data structure classes wishing to make iterators ("handles") pointing into themselves fail-fast. More...
 
class  DebugHandlerBase
 Base class for debug information backends. More...
 
class  DebugInfoFinder
 Utility to find all debug info in a module. More...
 
class  DebugLoc
 A debug info location. More...
 
class  DebugLocDwarfExpression
 DwarfExpression implementation for .debug_loc entries. More...
 
class  DebugLocEntry
 This struct describes location entries emitted in the .debug_loc section. More...
 
class  DebugLocStream
 Byte stream of .debug_loc entries. More...
 
struct  decimalInfo
 
struct  def_chain_iterator
 Walks the defining accesses of MemoryDefs. More...
 
struct  DefaultAnalysisGraphTraits
 Default traits class for extracting a graph from an analysis pass. More...
 
struct  DefaultContextualFoldingSetTrait
 DefaultContextualFoldingSetTrait - Like DefaultFoldingSetTrait, but for ContextualFoldingSets. More...
 
struct  DefaultDOTGraphTraits
 DefaultDOTGraphTraits - This class provides the default implementations of all of the DOTGraphTraits methods. More...
 
struct  DefaultFoldingSetTrait
 DefaultFoldingSetTrait - This class provides default implementations for FoldingSetTrait implementations. More...
 
class  DefaultVLIWScheduler
 
class  DefInit
 AL - Represent a reference to a 'def' in the description. More...
 
struct  DefsetRecord
 
struct  DelimitedScope
 
class  DeltaAlgorithm
 DeltaAlgorithm - Implements the delta debugging algorithm (A. More...
 
class  DemandedBits
 
class  DemandedBitsAnalysis
 An analysis that produces DemandedBits for a function. More...
 
class  DemandedBitsPrinterPass
 Printer pass for DemandedBits. More...
 
class  DemandedBitsWrapperPass
 
class  DenseMap
 
struct  DenseMapAPFloatKeyInfo
 
struct  DenseMapAPIntKeyInfo
 
class  DenseMapBase
 
struct  DenseMapInfo
 
struct  DenseMapInfo< AAMDNodes >
 
struct  DenseMapInfo< ArrayRef< T > >
 
struct  DenseMapInfo< AssertingVH< T > >
 
struct  DenseMapInfo< AttributeList >
 
struct  DenseMapInfo< AttributeSet >
 
struct  DenseMapInfo< BasicBlockEdge >
 
struct  DenseMapInfo< CachedHashString >
 
struct  DenseMapInfo< CachedHashStringRef >
 
struct  DenseMapInfo< CallSite >
 
struct  DenseMapInfo< CallValue >
 
struct  DenseMapInfo< cflaa::InstantiatedValue >
 
struct  DenseMapInfo< char >
 
struct  DenseMapInfo< CIEKey >
 
struct  DenseMapInfo< codeview::GloballyHashedType >
 
struct  DenseMapInfo< codeview::LocallyHashedType >
 
struct  DenseMapInfo< codeview::TypeIndex >
 
struct  DenseMapInfo< const Expression * >
 
struct  DenseMapInfo< coverage::CounterExpression >
 Provide DenseMapInfo for CounterExpression. More...
 
struct  DenseMapInfo< DivRemMapKey >
 
struct  DenseMapInfo< ExitLimitQuery >
 
struct  DenseMapInfo< FunctionSummary::ConstVCall >
 
struct  DenseMapInfo< FunctionSummary::VFuncId >
 
struct  DenseMapInfo< GVN::Expression >
 
struct  DenseMapInfo< hash_code >
 
struct  DenseMapInfo< ImmutableList< T > >
 
struct  DenseMapInfo< int >
 
struct  DenseMapInfo< LLT >
 
struct  DenseMapInfo< LocationSize >
 
struct  DenseMapInfo< long >
 
struct  DenseMapInfo< long long >
 
struct  DenseMapInfo< LoweredPHIRecord >
 
struct  DenseMapInfo< MachineOperand >
 
struct  DenseMapInfo< MemOpKey >
 
struct  DenseMapInfo< MemoryLocation >
 
struct  DenseMapInfo< MemoryLocOrCall >
 
struct  DenseMapInfo< OffsetInstantiatedValue >
 
struct  DenseMapInfo< OffsetValue >
 
struct  DenseMapInfo< orc::SymbolStringPtr >
 
struct  DenseMapInfo< PointerEmbeddedInt< IntT, Bits > >
 
struct  DenseMapInfo< PointerIntPair< PointerTy, IntBits, IntType > >
 
struct  DenseMapInfo< PointerSumType< TagT, MemberTs... > >
 
struct  DenseMapInfo< PointerUnion< T, U > >
 
struct  DenseMapInfo< PoisoningVH< T > >
 
struct  DenseMapInfo< SDValue >
 
struct  DenseMapInfo< short >
 
struct  DenseMapInfo< SimpleValue >
 
struct  DenseMapInfo< std::pair< T, U > >
 
struct  DenseMapInfo< StringRef >
 
struct  DenseMapInfo< T * >
 
struct  DenseMapInfo< TargetInstrInfo::RegSubRegPair >
 Provide DenseMapInfo for TargetInstrInfo::RegSubRegPair. More...
 
struct  DenseMapInfo< unsigned >
 
struct  DenseMapInfo< unsigned long >
 
struct  DenseMapInfo< unsigned long long >
 
struct  DenseMapInfo< unsigned short >
 
struct  DenseMapInfo< ValueInfo >
 
struct  DenseMapInfo< ValueMapCallbackVH< KeyT, ValueT, Config > >
 
struct  DenseMapInfo< VTableSlot >
 
struct  DenseMapInfo< wasm::WasmGlobalType >
 
struct  DenseMapInfo< wasm::WasmSignature >
 
class  DenseMapIterator
 
class  DenseSet
 Implements a dense probed hash-table based set. More...
 
class  Dependence
 Dependence - This class represents a dependence between two memory memory references in a function. More...
 
class  DependenceAnalysis
 AnalysisPass to compute dependence information in a function. More...
 
struct  DependenceAnalysisPrinterPass
 Printer pass to dump DA results. More...
 
class  DependenceAnalysisWrapperPass
 Legacy pass manager pass to access dependence information. More...
 
class  DependenceInfo
 DependenceInfo - This class is the main dependence-analysis driver. More...
 
struct  deref
 Binary functor that adapts to any other binary functor after dereferencing operands. More...
 
class  DerivedUser
 Extension point for the Value hierarchy. More...
 
struct  DescriptorInfo
 
class  DetectRoundChange
 
struct  DevirtCallSite
 A call site that could be devirtualized. More...
 
class  DevirtSCCRepeatedPass
 A helper that repeats an SCC pass each time an indirect call is refined to a direct call by that pass. More...
 
struct  df_ext_iterator
 
class  df_iterator
 
struct  df_iterator_default_set
 
class  df_iterator_storage
 
class  df_iterator_storage< SetType, true >
 
class  DFAPacketizer
 
class  DFCalculateWorkObject
 
struct  DiagnosticHandler
 This is the base class for diagnostic handling in LLVM. More...
 
class  DiagnosticInfo
 This is the base abstract class for diagnostic reporting in the backend. More...
 
class  DiagnosticInfoDebugMetadataVersion
 Diagnostic information for debug metadata version reporting. More...
 
class  DiagnosticInfoIgnoringInvalidDebugMetadata
 Diagnostic information for stripping invalid debug metadata. More...
 
class  DiagnosticInfoInlineAsm
 Diagnostic information for inline asm reporting. More...
 
class  DiagnosticInfoIROptimization
 Common features for diagnostics dealing with optimization remarks that are used by IR passes. More...
 
class  DiagnosticInfoISelFallback
 Diagnostic information for ISel fallback path. More...
 
class  DiagnosticInfoMIROptimization
 Common features for diagnostics dealing with optimization remarks that are used by machine passes. More...
 
class  DiagnosticInfoMIRParser
 Diagnostic information for machine IR parser. More...
 
class  DiagnosticInfoOptimizationBase
 Common features for diagnostics dealing with optimization remarks that are used by both IR and MIR passes. More...
 
class  DiagnosticInfoOptimizationFailure
 Diagnostic information for optimization failures. More...
 
class  DiagnosticInfoPGOProfile
 Diagnostic information for the PGO profiler. More...
 
class  DiagnosticInfoResourceLimit
 Diagnostic information for stack size etc. More...
 
class  DiagnosticInfoSampleProfile
 Diagnostic information for the sample profiler. More...
 
class  DiagnosticInfoStackSize
 
class  DiagnosticInfoUnsupported
 Diagnostic information for unsupported feature in backend. More...
 
class  DiagnosticInfoWithLocationBase
 Common features for diagnostics with an associated location. More...
 
class  DiagnosticLocation
 
struct  DiagnosticPredicate
 
class  DiagnosticPrinter
 Interface for custom diagnostic printing. More...
 
class  DiagnosticPrinterRawOStream
 Basic diagnostic printer that uses an underlying raw_ostream. More...
 
class  DIBasicType
 Basic type, like 'int' or 'float'. More...
 
class  DIBuilder
 
class  DICompileUnit
 Compile unit. More...
 
class  DICompositeType
 Composite types. More...
 
class  DIContext
 
class  DIDerivedType
 Derived types. More...
 
struct  DIDumpOptions
 Container for dump options that control which debug information will be dumped. More...
 
class  DIE
 A structured debug information entry. More...
 
class  DIEAbbrev
 Dwarf abbreviation, describes the organization of a debug information object. More...
 
class  DIEAbbrevData
 Dwarf abbreviation data, describes one attribute of a Dwarf abbreviation. More...
 
class  DIEAbbrevSet
 Helps unique DIEAbbrev objects and assigns abbreviation numbers. More...
 
class  DIEBlock
 DIEBlock - Represents a block of values. More...
 
class  DIEDelta
 A simple label difference DIE. More...
 
class  DIEDwarfExpression
 DwarfExpression implementation for singular DW_AT_location. More...
 
class  DIEEntry
 A pointer to another debug information entry. More...
 
class  DIEExpr
 An expression DIE. More...
 
class  DIEHash
 An object containing the capability of hashing and adding hash attributes onto a DIE. More...
 
class  DIEInlineString
 A container for inline string values. More...
 
class  DIEInteger
 An integer value DIE. More...
 
class  DIELabel
 A label DIE. More...
 
class  DIELoc
 DIELoc - Represents an expression location. More...
 
class  DIELocList
 Represents a pointer to a location list in the debug_loc section. More...
 
class  DIEnumerator
 Enumeration value. More...
 
class  DIEString
 A container for string pool string values. More...
 
class  DIEUnit
 Represents a compile or type unit. More...
 
class  DIEValue
 
class  DIEValueList
 A list of DIE values. More...
 
class  DIExpression
 DWARF expression. More...
 
class  DIExpressionCursor
 Holds a DIExpression and keeps track of how many operands have been consumed so far. More...
 
class  DIFile
 File. More...
 
struct  DIGlobal
 Container for description of a global variable. More...
 
class  DIGlobalVariable
 Global variables. More...
 
class  DIGlobalVariableExpression
 A pair of DIGlobalVariable and DIExpression. More...
 
class  DIImportedEntity
 An imported module (C++ using directive or similar). More...
 
class  DIInliningInfo
 A format-neutral container for inlined code description. More...
 
class  DILabel
 Label. More...
 
class  DILexicalBlock
 
class  DILexicalBlockBase
 
class  DILexicalBlockFile
 
struct  DILineInfo
 A format-neutral container for source line information. More...
 
struct  DILineInfoSpecifier
 Controls which fields of DILineInfo container should be filled with data. More...
 
class  DILocalScope
 A scope for locals. More...
 
class  DILocalVariable
 Local variable. More...
 
class  DILocation
 Debug location. More...
 
class  DIMacro
 
class  DIMacroFile
 
class  DIMacroNode
 Macro Info DWARF-like metadata node. More...
 
class  DIModule
 A (clang) module that has been imported by the compile unit. More...
 
class  DINamespace
 
class  DINode
 Tagged DWARF-like metadata node. More...
 
class  DIObjCProperty
 
class  DIScope
 Base class for scope-like contexts. More...
 
class  DistinctMDOperandPlaceholder
 Placeholder metadata for operands of distinct MDNodes. More...
 
class  DISubprogram
 Subprogram description. More...
 
class  DISubrange
 Array subrange. More...
 
class  DISubroutineType
 Type array for a subprogram. More...
 
class  DITemplateParameter
 Base class for template parameters. More...
 
class  DITemplateTypeParameter
 
class  DITemplateValueParameter
 
class  DIType
 Base class for types. More...
 
class  DITypeRefArray
 
class  DIVariable
 Base class for variables. More...
 
class  DivergenceAnalysis
 Generic divergence analysis for reducible CFGs. More...
 
struct  DivergencePropagator
 
struct  DivRemMapKey
 
struct  DivRemPairsPass
 Hoist/decompose integer division and remainder instructions to enable CFG improvements and better codegen. More...
 
struct  DomainValue
 A DomainValue is a bit like LiveIntervals' ValNo, but it also keeps track of execution domains. More...
 
class  DominanceFrontier
 
class  DominanceFrontierAnalysis
 Analysis pass which computes a DominanceFrontier. More...
 
class  DominanceFrontierBase
 DominanceFrontierBase - Common base class for computing forward and inverse dominance frontiers for a function. More...
 
class  DominanceFrontierPrinterPass
 Printer pass for the DominanceFrontier. More...
 
class  DominanceFrontierWrapperPass
 
class  DominatorTree
 Concrete subclass of DominatorTreeBase that is used to compute a normal dominator tree. More...
 
class  DominatorTreeAnalysis
 Analysis pass which computes a DominatorTree. More...
 
class  DominatorTreeBase
 Core dominator tree base class. More...
 
class  DominatorTreePrinterPass
 Printer pass for the DominatorTree. More...
 
struct  DominatorTreeVerifierPass
 Verifier pass for the DominatorTree. More...
 
class  DominatorTreeWrapperPass
 Legacy analysis pass which computes a DominatorTree. More...
 
struct  DomTreeGraphTraitsBase
 
class  DomTreeNodeBase
 Base class for the actual dominator tree node. More...
 
class  DomTreeUpdater
 
class  DoNothingMemorySSAWalker
 A MemorySSAWalker that does no alias queries, or anything else. More...
 
struct  DOTGraphTraits
 DOTGraphTraits - Template class that can be specialized to customize how graphs are converted to 'dot' graphs. More...
 
struct  DOTGraphTraits< BlockFrequencyInfo * >
 
struct  DOTGraphTraits< BoUpSLP * >
 
struct  DOTGraphTraits< CallGraph * >
 
struct  DOTGraphTraits< const Function * >
 
struct  DOTGraphTraits< const MachineFunction * >
 
struct  DOTGraphTraits< DominatorTree * >
 
struct  DOTGraphTraits< DomTreeNode * >
 
struct  DOTGraphTraits< MachineBlockFrequencyInfo * >
 
struct  DOTGraphTraits< PGOUseFunc * >
 
struct  DOTGraphTraits< PostDominatorTree * >
 
struct  DOTGraphTraits< RegionInfo * >
 
struct  DOTGraphTraits< RegionNode * >
 
struct  DOTGraphTraits< ScheduleDAG * >
 
struct  DOTGraphTraits< ScheduleDAGMI * >
 
struct  DOTGraphTraits< SelectionDAG * >
 
class  DOTGraphTraitsModulePrinter
 
class  DOTGraphTraitsModuleViewer
 
class  DOTGraphTraitsPrinter
 
class  DOTGraphTraitsViewer
 
class  DSEPass
 This class implements a trivial dead store elimination. More...
 
class  DstOp
 
class  DummyCGSCCPass
 This pass is required by interprocedural register allocation. More...
 
class  DuplexCandidate
 
class  DWARF5AccelTableData
 The Data class implementation for DWARF v5 accelerator table. More...
 
class  DWARF5AccelTableStaticData
 
class  DWARFAbbreviationDeclaration
 
class  DWARFAbbreviationDeclarationSet
 
class  DWARFAcceleratorTable
 The accelerator tables are designed to allow efficient random access (using a symbol name as a key) into debug info by providing an index of the debug info DIEs. More...
 
struct  DWARFAddressRange
 
struct  DWARFAttribute
 Encapsulates a DWARF attribute value and all of the data required to describe the attribute value. More...
 
class  DwarfCFIException
 
class  DwarfCFIExceptionBase
 
class  DwarfCompileUnit
 
class  DWARFCompileUnit
 
class  DWARFContext
 DWARFContext This data structure is the top level entity that deals with dwarf debug information parsing. More...
 
class  DWARFDataExtractor
 A DataExtractor (typically for an in-memory copy of an object-file section) plus a relocation map for that section, if there is one. More...
 
class  DwarfDebug
 Collects and handles dwarf debug information. More...
 
class  DWARFDebugAbbrev
 
class  DWARFDebugAddrTable
 A class representing an address table as specified in DWARF v5. More...
 
class  DWARFDebugAranges
 
class  DWARFDebugArangeSet
 
class  DWARFDebugFrame
 A parsed .debug_frame or .eh_frame section. More...
 
class  DWARFDebugInfoEntry
 DWARFDebugInfoEntry - A DIE with only the minimum required data. More...
 
class  DWARFDebugLine
 
class  DWARFDebugLoc
 
class  DWARFDebugLoclists
 
class  DWARFDebugMacro
 
class  DWARFDebugNames
 .debug_names section consists of one or more units. More...
 
class  DWARFDebugPubTable
 Represents structure for holding and parsing .debug_pub* tables. More...
 
class  DWARFDebugRangeList
 
class  DWARFDebugRnglist
 A class representing a single rangelist. More...
 
class  DWARFDebugRnglistTable
 
class  DWARFDie
 Utility class that carries the DWARF compile/type unit and the debug info entry in an object. More...
 
class  DWARFExpression
 
class  DwarfExpression
 Base class containing the logic for constructing DWARF expressions independently of whether they are emitted into a DIE or into a .debug_loc entry. More...
 
class  DwarfFile
 
class  DWARFFormValue
 
class  DWARFGdbIndex
 
struct  DWARFListEntryBase
 A base class for DWARF list entries, such as range or location list entries. More...
 
class  DWARFListTableBase
 A class representing a table of lists as specified in the DWARF v5 standard for location lists and range lists. More...
 
class  DWARFListTableHeader
 A class representing the header of a list table such as the range list table in the .debug_rnglists section. More...
 
class  DWARFListType
 A base class for lists of entries that are extracted from a particular section, such as range lists or location lists. More...
 
class  DWARFObject
 
struct  DWARFSection
 
class  DwarfStringPool
 
struct  DwarfStringPoolEntry
 Data for a string pool entry. More...
 
class  DwarfStringPoolEntryRef
 String pool entry reference. More...
 
class  DWARFTypeUnit
 
class  DwarfTypeUnit
 
class  DWARFUnit
 
class  DwarfUnit
 This dwarf writer support class manages information associated with a source file. More...
 
class  DWARFUnitHeader
 Base class describing the header of any kind of "unit." Some information is specific to certain unit types. More...
 
class  DWARFUnitIndex
 
class  DWARFUnitVector
 Describe a collection of units. More...
 
class  DWARFVerifier
 A class that verifies DWARF debug information given a DWARF Context. More...
 
class  early_inc_iterator_impl
 A pseudo-iterator adaptor that is designed to implement "early increment" style loops. More...
 
struct  EarlyCSEPass
 A simple and fast domtree-based CSE pass. More...
 
class  ECError
 This class wraps a std::error_code in a Error. More...
 
class  EdgeBundles
 
struct  EfficiencySanitizerOptions
 
class  EHStreamer
 Emits exception handling directives. More...
 
struct  ELFRelocationEntry
 
class  EliminateAvailableExternallyPass
 A pass that transforms external global definitions into declarations. More...
 
class  EngineBuilder
 Builder class for ExecutionEngines. More...
 
struct  EntryExitInstrumenterPass
 
class  EnumAttributeImpl
 
struct  EnumEntry
 
struct  equal
 A functor like C++14's std::equal<void> in its absence. More...
 
class  EquivalenceClasses
 EquivalenceClasses - This represents a collection of equivalence classes and supports three efficient operations: insert an element into a class of its own, union two classes, and find the class for a given element. More...
 
class  Error
 Lightweight error class with error context and mandatory checking. More...
 
class  ErrorAsOutParameter
 Helper for Errors used as out-parameters. More...
 
class  ErrorHandlerTraits
 Helper for testing applicability of, and applying, handlers for ErrorInfo types. More...
 
class  ErrorHandlerTraits< Error(&)(ErrT &)>
 
class  ErrorHandlerTraits< Error(&)(std::unique_ptr< ErrT >)>
 Specialization for functions of the form 'Error (std::unique_ptr<ErrT>)'. More...
 
class  ErrorHandlerTraits< RetT(C::*)(const ErrT &) const >
 
class  ErrorHandlerTraits< RetT(C::*)(const ErrT &)>
 
class  ErrorHandlerTraits< RetT(C::*)(ErrT &) const >
 
class  ErrorHandlerTraits< RetT(C::*)(ErrT &)>
 
class  ErrorHandlerTraits< RetT(C::*)(std::unique_ptr< ErrT >) const >
 Specialization for member functions of the form 'RetT (std::unique_ptr<ErrT>) const'. More...
 
class  ErrorHandlerTraits< RetT(C::*)(std::unique_ptr< ErrT >)>
 Specialization for member functions of the form 'RetT (std::unique_ptr<ErrT>)'. More...
 
class  ErrorHandlerTraits< void(&)(ErrT &)>
 
class  ErrorHandlerTraits< void(&)(std::unique_ptr< ErrT >)>
 Specialization for functions of the form 'void (std::unique_ptr<ErrT>)'. More...
 
class  ErrorInfo
 Base class for user error types. More...
 
class  ErrorInfoBase
 Base class for error info classes. More...
 
class  ErrorList
 Special ErrorInfo subclass representing a list of ErrorInfos. More...
 
class  ErrorOr
 Represents either an error or a value T. More...
 
class  ErrorSuccess
 Subclass of Error for the sole purpose of identifying the success path in the type system. More...
 
class  EscapeEnumerator
 EscapeEnumerator - This is a little algorithm to find all escape points from a function so that "finally"-style code can be inserted. More...
 
class  Evaluator
 This class evaluates LLVM IR, producing the Constant representing each SSA instruction. More...
 
struct  EVT
 Extended Value Type. More...
 
struct  ExactEqualsExpression
 
struct  ExecutionContext
 
class  ExecutionDomainFix
 
class  ExecutionEngine
 Abstract interface for implementation execution of LLVM modules, designed to support both interpreter and just-in-time (JIT) compiler implementations. More...
 
class  ExecutionEngineState
 Helper class for helping synchronize access to the global address map table. More...
 
struct  ExitLimitQuery
 
class  ExitOnError
 Helper for check-and-exit error handling. More...
 
class  ExpandReductionsPass
 
class  Expected
 Tagged union holding either a T or a Error. More...
 
class  ExpectedAsOutParameter
 Helper for Expected<T>s used as out-parameters. More...
 
struct  ExternalAAWrapperPass
 A wrapper pass for external alias analyses. More...
 
class  ExternalSymbolPseudoSourceValue
 A specialized pseudo source value for holding external symbol values. More...
 
class  ExternalSymbolSDNode
 
class  ExtractElementConstantExpr
 ExtractElementConstantExpr - This class is private to Constants.cpp, and is used behind the scenes to implement extractelement constant exprs. More...
 
class  ExtractElementInst
 This instruction extracts a single (scalar) element from a VectorType value. More...
 
class  ExtractValueConstantExpr
 ExtractValueConstantExpr - This class is private to Constants.cpp, and is used behind the scenes to implement extractvalue constant exprs. More...
 
class  ExtractValueInst
 This instruction extracts a struct member or array element value from an aggregate value. More...
 
class  FastFoldingSetNode
 FastFoldingSetNode - This is a subclass of FoldingSetNode which stores a FoldingSetNodeID value rather than requiring the node to recompute it each time it is needed. More...
 
class  FastISel
 This is a fast-path instruction selection class that generates poor code and doesn't support illegal types or non-trivial lowering, but runs quickly. More...
 
class  FastMathFlags
 Convenience struct for specifying and reasoning about fast-math flags. More...
 
class  FaultMapParser
 A parser for the __llvm_faultmaps section generated by the FaultMaps class above. More...
 
class  FaultMaps
 
class  FCmpInst
 This instruction compares its operands according to the predicate given to the constructor. More...
 
class  FeatureBitset
 Container class for subtarget features. More...
 
class  FenceInst
 An instruction for ordering other memory operations. More...
 
class  FieldInit
 X.Y - Represent a reference to a subfield of a variable. More...
 
struct  file_magic
 file_magic - An "enum class" enumeration of file types based on magic (the first N bytes of the file). More...
 
class  FileBufferByteStream
 An implementation of WritableBinaryStream backed by an llvm FileOutputBuffer. More...
 
class  FileCheck
 FileCheck class takes the request and exposes various methods that use information from the request. More...
 
struct  FileCheckDiag
 Summary of a FileCheck diagnostic. More...
 
class  FileCheckPattern
 
struct  FileCheckRequest
 Contains info about various FileCheck options. More...
 
struct  FileCheckString
 A check that we found in the input file. More...
 
class  FileError
 This class wraps a filename and another Error. More...
 
struct  FileHandleTraits
 
class  FileInfo
 
class  FileOutputBuffer
 FileOutputBuffer - This interface provides simple way to create an in-memory buffer which will be written to a file. More...
 
class  FileRemover
 FileRemover - This class is a simple object meant to be stack allocated. More...
 
class  filter_iterator_base
 An iterator adaptor that filters the elements of given inner iterators. More...
 
class  filter_iterator_impl
 Specialization of filter_iterator_base for forward iteration only. More...
 
class  filter_iterator_impl< WrappedIteratorT, PredicateT, std::bidirectional_iterator_tag >
 Specialization of filter_iterator_base for bidirectional iteration. More...
 
class  FilteredPassNameParser
 ===-------------------------------------------------------------------—===// FilteredPassNameParser class - Make use of the pass registration mechanism to automatically add a command line argument to opt for each pass that satisfies a filter criteria. More...
 
struct  FindHandleTraits
 
class  FixAllFDIVSQRT
 
struct  FixedNumOperandTraits
 FixedNumOperandTraits - determine the allocation regime of the Use array when it is a prefix to the User object, and the number of Use objects is known at compile time. More...
 
class  FixedStackPseudoSourceValue
 A specialized PseudoSourceValue for holding FixedStack values, which must include a frame index. More...
 
class  FixedStreamArray
 FixedStreamArray is similar to VarStreamArray, except with each record having a fixed-length. More...
 
class  FixedStreamArrayIterator
 
class  FlagsOp
 
class  FlatIt
 Marker class to iterate over the elements of a Region in flat mode. More...
 
class  Float2IntPass
 
struct  fltSemantics
 
struct  FmtAlign
 
class  FoldingSet
 FoldingSet - This template class is used to instantiate a specialized implementation of the folding set to the node class T. More...
 
class  FoldingSetBase
 FoldingSetBase - Implements the folding set functionality. More...
 
class  FoldingSetBucketIterator
 
class  FoldingSetBucketIteratorImpl
 FoldingSetBucketIteratorImpl - This is the common bucket iterator support shared by all folding sets, which knows how to walk a particular bucket of a folding set hash table. More...
 
class  FoldingSetImpl
 FoldingSetImpl - An implementation detail that lets us share code between FoldingSet and ContextualFoldingSet. More...
 
class  FoldingSetIterator
 
class  FoldingSetIteratorImpl
 FoldingSetIteratorImpl - This is the common iterator support shared by all folding sets, which knows how to walk the folding set hash table. More...
 
class  FoldingSetNodeID
 FoldingSetNodeID - This class is used to gather all the unique data bits of a node. More...
 
class  FoldingSetNodeIDRef
 FoldingSetNodeIDRef - This class describes a reference to an interned FoldingSetNodeID, which can be a useful to store node id data rather than using plain FoldingSetNodeIDs, since the 32-element SmallVector is often much larger than necessary, and the possibility of heap allocation means it requires a non-trivial destructor call. More...
 
class  FoldingSetNodeWrapper
 FoldingSetNodeWrapper - This template class is used to "wrap" arbitrary types in an enclosing object so that they can be inserted into FoldingSets. More...
 
struct  FoldingSetTrait
 FoldingSetTrait - This trait class is used to define behavior of how to "profile" (in the FoldingSet parlance) an object of a given type. More...
 
struct  FoldingSetTrait< SCEV >
 
struct  FoldingSetTrait< SCEVPredicate >
 
struct  FoldingSetTrait< SDVTListNode >
 Specialize FoldingSetTrait for SDVTListNode to avoid computing temp FoldingSetNodeID and hash value. More...
 
struct  FoldingSetTrait< std::pair< T1, T2 > >
 
struct  FoldingSetTrait< T * >
 
class  FoldingSetVector
 FoldingSetVector - This template class combines a FoldingSet and a vector to provide the interface of FoldingSet but with deterministic iteration order based on the insertion order. More...
 
class  FoldOpInit
 !foldl (a, b, expr, start, lst) - Fold over a list. More...
 
struct  ForceFunctionAttrsPass
 Pass which forces specific function attributes into the IR, primarily as a debugging tool. More...
 
struct  ForeachLoop
 ForeachLoop - Record the iteration state associated with a for loop. More...
 
class  format_object
 
class  format_object_base
 This is a helper class used for handling formatted output. More...
 
struct  format_provider
 
struct  format_provider< bool >
 Implementation of format_provider<T> for type bool More...
 
struct  format_provider< codeview::GloballyHashedType >
 
struct  format_provider< codeview::GUID >
 
struct  format_provider< codeview::LocallyHashedType >
 
struct  format_provider< codeview::TypeIndex >
 
struct  format_provider< Enum, typename std::enable_if< dwarf::EnumTraits< Enum >::value >::type >
 Dwarf constants format_provider. More...
 
class  format_provider< llvm::iterator_range< IterT > >
 Implementation of format_provider<T> for ranges. More...
 
struct  format_provider< llvm::json::Value >
 Allow printing json::Value with formatv(). More...
 
struct  format_provider< pdb::PdbRaw_ImplVer >
 
struct  format_provider< std::chrono::duration< Rep, Period > >
 
struct  format_provider< sys::TimePoint<> >
 Format provider for TimePoint<> More...
 
struct  format_provider< T, typename std::enable_if< detail::use_char_formatter< T >::value >::type >
 Implementation of format_provider<T> for characters. More...
 
struct  format_provider< T, typename std::enable_if< detail::use_double_formatter< T >::value >::type >
 Implementation of format_provider<T> for floating point types. More...
 
struct  format_provider< T, typename std::enable_if< detail::use_integral_formatter< T >::value >::type >
 Implementation of format_provider<T> for integral arithmetic types. More...
 
struct  format_provider< T, typename std::enable_if< detail::use_pointer_formatter< T >::value >::type >
 Implementation of format_provider<T> for integral pointer types. More...
 
struct  format_provider< T, typename std::enable_if< detail::use_string_formatter< T >::value >::type >
 Implementation of format_provider<T> for c-style strings and string objects such as std::string and llvm::StringRef. More...
 
struct  format_provider< Twine >
 Implementation of format_provider<T> for llvm::Twine. More...
 
class  FormatAdapter
 
class  formatted_raw_ostream
 formatted_raw_ostream - A raw_ostream that wraps another one and keeps track of line and column position, allowing padding out to specific column boundaries and querying the number of lines written to the stream. More...
 
class  FormattedBytes
 
class  FormattedNumber
 This is a helper class used for format_hex() and format_decimal(). More...
 
class  FormattedString
 This is a helper class for left_justify, right_justify, and center_justify. More...
 
class  formatv_object
 
class  formatv_object_base
 
class  FortifiedLibCallSimplifier
 This class implements simplifications for calls to fortified library functions (__st*cpy_chk, __memcpy_chk, __memmove_chk, __memset_chk), to, when possible, replace them with their non-checking counterparts. More...
 
class  ForwardDominanceFrontierBase
 DominanceFrontier Class - Concrete subclass of DominanceFrontierBase that is used to compute a forward dominator frontiers. More...
 
struct  ForwardedRegister
 Describes a register that needs to be forwarded from the prologue to a musttail call. More...
 
class  FPExtInst
 This class represents an extension of floating point types. More...
 
class  FPMathOperator
 Utility class for floating point operations which can have information about relaxed accuracy requirements attached to them. More...
 
class  FPPassManager
 FPPassManager manages BBPassManagers and FunctionPasses. More...
 
class  FPToSIInst
 This class represents a cast from floating point to signed integer. More...
 
class  FPToUIInst
 This class represents a cast from floating point to unsigned integer. More...
 
class  FPTruncInst
 This class represents a truncation of floating point types. More...
 
class  FrameIndexSDNode
 
struct  FreeDeleter
 
class  FullDependence
 FullDependence - This class represents a dependence between two memory references in a function. More...
 
class  FuncletPadInst
 
class  Function
 
class  function_ref
 An efficient, type-erasing, non-owning reference to a callable. More...
 
class  function_ref< Ret(Params...)>
 
class  FunctionAnalysisManagerCGSCCProxy
 A proxy from a FunctionAnalysisManager to an SCC. More...
 
class  FunctionComparator
 FunctionComparator - Compares two functions to determine whether or not they will generate machine code with the same behaviour. More...
 
class  FunctionImporter
 The function importer is automatically importing function from other modules based on the provided summary informations. More...
 
class  FunctionImportGlobalProcessing
 Class to handle necessary GlobalValue changes required by ThinLTO function importing, including linkage changes and any necessary renaming. More...
 
class  FunctionImportPass
 The function importing pass. More...
 
class  FunctionLoweringInfo
 FunctionLoweringInfo - This contains information that is global to a function that is used when lowering a region of the function. More...
 
class  FunctionPass
 FunctionPass class - This class is used to implement most global optimizations. More...
 
struct  FunctionPointerLikeTypeTraits
 Provide suitable custom traits struct for function pointers. More...
 
class  FunctionSummary
 Function summary information to aid decisions and implementation of importing. More...
 
class  FunctionToLoopPassAdaptor
 Adaptor that maps from a function to its loops. More...
 
class  FunctionType
 Class to represent function types. More...
 
struct  FunctionTypeKeyInfo
 
class  GCFunctionInfo
 Garbage collection metadata for a single function. More...
 
class  GCMetadataPrinter
 GCMetadataPrinter - Emits GC metadata as assembly code. More...
 
class  GCModuleInfo
 An analysis pass which caches information about the entire Module. More...
 
class  GCNDownwardRPTracker
 
class  GCNHazardRecognizer
 
class  GCNIterativeScheduler
 
class  GCNMaxOccupancySchedStrategy
 This is a minimal scheduler strategy. More...
 
struct  GCNRegPressure
 
class  GCNRPTracker
 
class  GCNScheduleDAGMILive
 
class  GCNSubtarget
 
class  GCNTargetMachine
 
class  GCNTTIImpl
 
class  GCNUpwardRPTracker
 
class  GCOVBlock
 GCOVBlock - Collects block information. More...
 
class  GCOVBuffer
 GCOVBuffer - A wrapper around MemoryBuffer to provide GCOV specific read operations. More...
 
struct  GCOVEdge
 GCOVEdge - Collects edge information. More...
 
class  GCOVFile
 GCOVFile - Collects coverage information for one pair of coverage file (.gcno and .gcda). More...
 
class  GCOVFunction
 GCOVFunction - Collects function information. More...
 
struct  GCOVOptions
 
class  GCOVProfilerPass
 The gcov-style instrumentation pass. More...
 
struct  GCPoint
 GCPoint - Metadata for a collector-safe point in machine code. More...
 
class  GCProjectionInst
 Common base class for representing values projected from a statepoint. More...
 
class  GCRelocateInst
 Represents calls to the gc.relocate intrinsic. More...
 
class  GCResultInst
 Represents calls to the gc.result intrinsic. More...
 
struct  GCRoot
 GCRoot - Metadata for a pointer to an object managed by the garbage collector. More...
 
class  GCStrategy
 GCStrategy describes a garbage collector algorithm's code generation requirements, and provides overridable hooks for those needs which cannot be abstractly described. More...
 
class  generic_gep_type_iterator
 
class  GenericDINode
 Generic tagged DWARF-like metadata node. More...
 
class  GenericScheduler
 GenericScheduler shrinks the unscheduled zone using heuristics to balance the schedule. More...
 
class  GenericSchedulerBase
 Base class for GenericScheduler. More...
 
struct  GenericValue
 
class  GEPOperator
 
class  GetElementPtrConstantExpr
 GetElementPtrConstantExpr - This class is private to Constants.cpp, and is used behind the scenes to implement getelementpr constant exprs. More...
 
class  GetElementPtrInst
 an instruction for type-safe pointer arithmetic to access elements of arrays and structs More...
 
class  GISelChangeObserver
 Abstract class that contains various methods for clients to notify about changes. More...
 
class  GISelCSEAnalysisWrapper
 Simple wrapper that does the following. More...
 
class  GISelCSEAnalysisWrapperPass
 The actual analysis pass wrapper. More...
 
class  GISelCSEInfo
 The CSE Analysis object. More...
 
class  GISelInstProfileBuilder
 
class  GISelObserverWrapper
 Simple wrapper observer that takes several observers, and calls each one for each event. More...
 
class  GISelWorkList
 
class  GlobalAddressSDNode
 
class  GlobalAlias
 
class  GlobalDCEPass
 Pass to remove unused function declarations. More...
 
class  GlobalIFunc
 
class  GlobalIndirectSymbol
 
class  GlobalNumberState
 GlobalNumberState assigns an integer to each global value in the program, which is used by the comparison routine to order references to globals. More...
 
class  GlobalObject
 
class  GlobalOptPass
 Optimize globals that never have their address taken. More...
 
class  GlobalsAA
 Analysis pass providing a never-invalidated alias analysis result. More...
 
class  GlobalsAAResult
 An alias analysis result set for globals. More...
 
class  GlobalsAAWrapperPass
 Legacy wrapper pass to provide the GlobalsAAResult object. More...
 
class  GlobalSplitPass
 Pass to perform split of global variables. More...
 
struct  GlobalStatus
 As we analyze each global, keep track of some information about it. More...
 
class  GlobalValue
 
class  GlobalValuePseudoSourceValue
 A specialized pseudo soruce value for holding GlobalValue values. More...
 
class  GlobalValueSummary
 Function and variable summary information to aid decisions and implementation of importing. More...
 
struct  GlobalValueSummaryInfo
 
class  GlobalVariable
 
class  GlobalVarSummary
 Global variable summary information to aid decisions and implementation of importing. More...
 
class  GlobPattern
 
class  GPUDivergenceAnalysis
 Divergence analysis frontend for GPU kernels. More...
 
class  GraphDiff
 
struct  GraphTraits
 
struct  GraphTraits< ArgumentGraph * >
 
struct  GraphTraits< ArgumentGraphNode * >
 
struct  GraphTraits< BasicBlock * >
 
struct  GraphTraits< BlockFrequencyInfo * >
 
struct  GraphTraits< BoUpSLP * >
 
struct  GraphTraits< CallGraph * >
 
struct  GraphTraits< CallGraphNode * >
 
struct  GraphTraits< const BasicBlock * >
 
struct  GraphTraits< const CallGraph * >
 
struct  GraphTraits< const CallGraphNode * >
 
struct  GraphTraits< const DomTreeNode * >
 
struct  GraphTraits< const Function * >
 
struct  GraphTraits< const Loop * >
 
struct  GraphTraits< const MachineBasicBlock * >
 
struct  GraphTraits< const MachineDomTreeNode * >
 
struct  GraphTraits< const MachineFunction * >
 
struct  GraphTraits< const MachineLoop * >
 
struct  GraphTraits< const Type * >
 
struct  GraphTraits< const VPBlockBase * >
 
struct  GraphTraits< const VPDomTreeNode * >
 
struct  GraphTraits< const VPRegionBlock * >
 
struct  GraphTraits< DominatorTree * >
 
struct  GraphTraits< DomTreeNode * >
 
struct  GraphTraits< Function * >
 
struct  GraphTraits< Interval * >
 
struct  GraphTraits< Inverse< BasicBlock * > >
 
struct  GraphTraits< Inverse< const BasicBlock * > >
 
struct  GraphTraits< Inverse< const Function * > >
 
struct  GraphTraits< Inverse< const MachineBasicBlock * > >
 
struct  GraphTraits< Inverse< const MachineFunction * > >
 
struct  GraphTraits< Inverse< Function * > >
 
struct  GraphTraits< Inverse< Interval * > >
 
struct  GraphTraits< Inverse< Inverse< T > > >
 
struct  GraphTraits< Inverse< MachineBasicBlock * > >
 
struct  GraphTraits< Inverse< MachineFunction * > >
 
struct  GraphTraits< Inverse< MemoryAccess * > >
 
struct  GraphTraits< Inverse< VPBlockBase * > >
 
struct  GraphTraits< Inverse< VPRegionBlock * > >
 
struct  GraphTraits< IrreducibleGraph >
 
struct  GraphTraits< LazyCallGraph * >
 
struct  GraphTraits< LazyCallGraph::Node * >
 
struct  GraphTraits< Loop * >
 
struct  GraphTraits< MachineBasicBlock * >
 
struct  GraphTraits< MachineBlockFrequencyInfo * >
 
struct  GraphTraits< MachineDominatorTree * >
 
struct  GraphTraits< MachineDomTreeNode * >
 
struct  GraphTraits< MachineFunction * >
 
struct  GraphTraits< MachineLoop * >
 
struct  GraphTraits< MachineRegionInfo * >
 
struct  GraphTraits< MachineRegionInfoPass * >
 
struct  GraphTraits< MemoryAccess * >
 GraphTraits for a MemoryAccess, which walks defs in the normal case, and uses in the inverse case. More...
 
struct  GraphTraits< ModuleSummaryIndex * >
 
struct  GraphTraits< PGOUseFunc * >
 
struct  GraphTraits< PostDominatorTree * >
 
struct  GraphTraits< RegionInfo * >
 
struct  GraphTraits< RegionInfoPass * >
 
struct  GraphTraits< ScheduleDAG * >
 
struct  GraphTraits< ScheduleDAGMI * >
 
struct  GraphTraits< SDNode * >
 
struct  GraphTraits< SelectionDAG * >
 
struct  GraphTraits< std::pair< const GraphDiff< BasicBlock *, false > *, BasicBlock * > >
 
struct  GraphTraits< std::pair< const GraphDiff< BasicBlock *, false > *, Inverse< BasicBlock * > > >
 
struct  GraphTraits< std::pair< const GraphDiff< BasicBlock *, true > *, BasicBlock * > >
 
struct  GraphTraits< std::pair< const GraphDiff< BasicBlock *, true > *, Inverse< BasicBlock * > > >
 
struct  GraphTraits< SUnit * >
 
struct  GraphTraits< Type * >
 
struct  GraphTraits< ValueInfo >
 GraphTraits definition to build SCC for the index. More...
 
struct  GraphTraits< VPBlockBase * >
 
struct  GraphTraits< VPDomTreeNode * >
 Template specializations of GraphTraits for VPDomTreeNode. More...
 
struct  GraphTraits< VPRegionBlock * >
 
class  GraphWriter
 
struct  greater_ptr
 
struct  GuardWideningPass
 
class  GVMaterializer
 
class  GVN
 The core GVN pass object. More...
 
class  GVNHoist
 
class  GVNHoistLegacyPass
 
struct  GVNHoistPass
 A simple and fast domtree-based GVN pass to hoist common expressions from sibling branches. More...
 
struct  GVNSinkPass
 Uses an "inverted" value numbering to decide the similarity of expressions and sinks similar expressions into successors. More...
 
class  HandleSDNode
 This class is used to form a handle around another node that is persistent and is updated across invocations of replaceAllUsesWith on its operand. More...
 
struct  has_rbegin
 Metafunction to determine if T& or T has a member called rbegin(). More...
 
class  has_rbegin_impl
 Helper to determine if type T has a member called rbegin(). More...
 
class  hash_code
 An opaque object representing a hash code. More...
 
class  HashingByteStreamer
 
class  HasReferenceResolver
 Do not resolve anything, but keep track of whether a given variable was referenced. More...
 
class  HexagonAsmPrinter
 
struct  HexagonBlockRanges
 
class  HexagonCVIResource
 
class  HexagonDAGToDAGISel
 
struct  HexagonEvaluator
 
class  HexagonFrameLowering
 
class  HexagonHazardRecognizer
 
class  HexagonInstPrinter
 Prints bundles as a newline separated list of individual instructions Duplexes are separated by a vertical tab character A trailing line includes bundle properties such as endloop0/1. More...
 
class  HexagonInstr
 
class  HexagonInstrInfo
 
class  HexagonMachineFunctionInfo
 Hexagon target-specific information for each MachineFunction. More...
 
class  HexagonMCAsmInfo
 
class  HexagonMCChecker
 Check for a valid bundle. More...
 
class  HexagonMCCodeEmitter
 
class  HexagonMCELFStreamer
 
class  HexagonMCExpr
 
class  HexagonMCShuffler
 
class  HexagonPacketizerList
 
class  HexagonRegisterInfo
 
class  HexagonResource
 
class  HexagonSelectionDAGInfo
 
class  HexagonShuffler
 
class  HexagonSubtarget
 
class  HexagonTargetLowering
 
class  HexagonTargetMachine
 
class  HexagonTargetObjectFile
 
class  HexagonTargetStreamer
 
class  HexagonTTIImpl
 
struct  HexNumber
 
class  HotColdSplittingPass
 Pass to outline cold regions. More...
 
struct  HungoffOperandTraits
 HungoffOperandTraits - determine the allocation regime of the Use array when it is not a prefix to the User object, but allocated at an unrelated heap address. More...
 
struct  HvxSelector
 
class  ICallPromotionAnalysis
 
class  ICFLoopSafetyInfo
 This implementation of LoopSafetyInfo use ImplicitControlFlowTracking to give precise answers on "may throw" queries. More...
 
class  ICmpInst
 This instruction compares its operands according to the predicate given to the constructor. More...
 
class  IdentifyingPassPtr
 Discriminated union of Pass ID types. More...
 
struct  identity
 
struct  idf_ext_iterator
 
struct  idf_iterator
 
class  IDFCalculator
 Determine the iterated dominance frontier, given a set of defining blocks, and optionally, a set of live-in blocks. More...
 
struct  Idx2MBBCompare
 
struct  ilist_alloc_traits
 Use delete by default for iplist and ilist. More...
 
struct  ilist_alloc_traits< IndexListEntry >
 
struct  ilist_alloc_traits< Instruction >
 
struct  ilist_alloc_traits< MachineBasicBlock >
 
struct  ilist_alloc_traits< MCFragment >
 
struct  ilist_alloc_traits< MemoryAccess >
 
struct  ilist_alloc_traits< SDNode >
 
class  ilist_base
 Implementations of list algorithms using ilist_node_base. More...
 
struct  ilist_callback_traits
 Callbacks do nothing by default in iplist and ilist. More...
 
struct  ilist_callback_traits< MachineBasicBlock >
 
class  ilist_iterator
 Iterator for intrusive lists based on ilist_node. More...
 
struct  ilist_noalloc_traits
 Custom traits to do nothing on deletion. More...
 
class  ilist_node
 
class  ilist_node_base
 Base class for ilist nodes. More...
 
class  ilist_node_base< false >
 
class  ilist_node_base< true >
 
class  ilist_node_impl
 Implementation for an ilist node. More...
 
struct  ilist_node_traits
 A fragment for template traits for intrusive list that provides default node related operations. More...
 
class  ilist_node_with_parent
 An ilist node that can access its parent list. More...
 
class  ilist_sentinel
 
struct  ilist_sentinel_tracking
 Option to choose whether to track sentinels. More...
 
struct  ilist_tag
 Option to specify a tag for the node type. More...
 
struct  ilist_traits
 Template traits for intrusive list. More...
 
struct  ilist_traits< const Ty >
 Const traits should never be instantiated. More...
 
struct  ilist_traits< MachineInstr >
 
struct  ILPValue
 Represent the ILP of the subDAG rooted at a DAG node. More...
 
struct  ImmInstrInfo
 
class  ImmutableCallSite
 Establish a view to a call site for examination. More...
 
class  ImmutableList
 ImmutableList - This class represents an immutable (functional) list. More...
 
class  ImmutableListFactory
 
class  ImmutableListImpl
 
class  ImmutableMap
 
class  ImmutableMapRef
 
class  ImmutablePass
 ImmutablePass class - This class is used to provide information that does not need to be run. More...
 
class  ImmutableSet
 
class  ImmutableSetRef
 
class  ImmutableStatepoint
 A specialization of it's base class for read only access to a gc.statepoint. More...
 
class  ImplicitControlFlowTracking
 This class allows to keep track on instructions with implicit control flow. More...
 
class  ImportedFunctionsInliningStatistics
 Calculate and dump ThinLTO specific inliner stats. More...
 
class  ImutAVLFactory
 
class  ImutAVLTree
 
class  ImutAVLTreeGenericIterator
 
class  ImutAVLTreeInOrderIterator
 
struct  ImutAVLValueIterator
 Generic iterator that wraps a T::TreeTy::iterator and exposes iterator::getValue() on dereference. More...
 
struct  ImutContainerInfo
 ImutContainerInfo - Generic definition of comparison operations for elements of immutable containers that defaults to using std::equal_to<> and std::less<> to perform comparison of elements. More...
 
struct  ImutContainerInfo< T * >
 ImutContainerInfo - Specialization for pointer values to treat pointers as references to unique objects. More...
 
class  ImutIntervalAVLFactory
 
struct  ImutKeyValueInfo
 ImutKeyValueInfo -Traits class used by ImmutableMap. More...
 
struct  ImutProfileInfo
 Generic profile template. More...
 
struct  ImutProfileInfo< bool >
 Profile traits for booleans. More...
 
struct  ImutProfileInfo< T * >
 Generic profile trait for pointer types. More...
 
struct  ImutProfileInteger
 Profile traits for integers. More...
 
struct  index_sequence
 Alias for the common case of a sequence of size_ts. More...
 
struct  index_sequence_for
 Creates a compile-time integer sequence for a parameter pack. More...
 
class  IndexedInstrProfReader
 Reader for the indexed binary instrprof format. More...
 
class  IndexedMap
 
class  IndexListEntry
 This class represents an entry in the slot index list held in the SlotIndexes pass. More...
 
class  IndirectBrInst
 Indirect Branch Instruction. More...
 
struct  IndirectSymbolData
 
class  InductionDescriptor
 A struct for saving information about induction variables. More...
 
class  IndVarSimplifyPass
 
struct  InferFunctionAttrsPass
 A pass which infers function attributes from the names and signatures of function declarations in a module. More...
 
class  Init
 
class  InitLLVM
 
class  InjectorIRStrategy
 Strategy that injects operations into the function. More...
 
class  InlineAsm
 
struct  InlineAsmIdentifierInfo
 
struct  InlineAsmKeyType
 
class  InlineCost
 Represents the cost of inlining a function. More...
 
class  InlineFunctionInfo
 This class captures the data input to the InlineFunction call, and records the auxiliary results produced by it. More...
 
struct  InlineParams
 Thresholds to tune inline cost analysis. More...
 
struct  InlineResult
 InlineResult is basically true or false. More...
 
class  InlinerPass
 The inliner pass for the new pass manager. More...
 
class  InnerAnalysisManagerProxy
 An analysis over an "outer" IR unit that provides access to an analysis manager over an "inner" IR unit. More...
 
class  InnerLoopUnroller
 
class  InnerLoopVectorizer
 InnerLoopVectorizer vectorizes loops which contain only one basic block to a specified vectorization factor (VF). More...
 
class  InsertElementConstantExpr
 InsertElementConstantExpr - This class is private to Constants.cpp, and is used behind the scenes to implement insertelement constant exprs. More...
 
class  InsertElementInst
 This instruction inserts a single (scalar) element into a VectorType value. More...
 
class  InsertNOPLoad
 
class  InsertPointAnalysis
 Determines the latest safe point in a block in which we can insert a split, spill or other instruction related with CurLI. More...
 
class  InsertValueConstantExpr
 InsertValueConstantExpr - This class is private to Constants.cpp, and is used behind the scenes to implement insertvalue constant exprs. More...
 
class  InsertValueInst
 This instruction inserts a struct field of array element value into an aggregate value. More...
 
class  InsnInfo
 
class  InstCombinePass
 
class  InstCombiner
 The core instruction combiner logic. More...
 
class  InstCombineWorklist
 InstCombineWorklist - This is the worklist management logic for InstCombine. More...
 
class  InstDeleterIRStrategy
 
class  InstIterator
 
struct  InstrAspect
 Legalization is decided based on an instruction's opcode, which type slot we're considering, and what the existing type is. More...
 
class  InstrEmitter
 
struct  InstrInfoQuery
 InstrInfoQuery provides an interface to query additional information for instructions like metadata or keywords like nsw, which provides conservative results if the users specified it is safe to use. More...
 
struct  InstrItinerary
 An itinerary represents the scheduling information for an instruction. More...
 
class  InstrItineraryData
 Itinerary data supplied by a subtarget to be used by a target. More...
 
class  InstrProfError
 
class  InstrProfiling
 Instrumentation based profiling lowering pass. More...
 
class  InstrProfIncrementInst
 This represents the llvm.instrprof_increment intrinsic. More...
 
class  InstrProfIncrementInstStep
 
class  InstrProfIterator
 A file format agnostic iterator over profiling data. More...
 
class  InstrProfLookupTrait
 Trait for lookups into the on-disk hash table for the binary instrprof format. More...
 
struct  InstrProfOptions
 Options for the frontend instrumentation based profiling pass. More...
 
class  InstrProfReader
 Base class and interface for reading profiling data of any known instrprof format. More...
 
class  InstrProfReaderIndex
 
struct  InstrProfReaderIndexBase
 
class  InstrProfReaderItaniumRemapper
 A remapper that applies remappings based on a symbol remapping file. More...
 
class  InstrProfReaderRemapper
 Name matcher supporting fuzzy matching of symbol names to names in profiles. More...
 
struct  InstrProfRecord
 Profiling information for a single function. More...
 
class  InstrProfRecordWriterTrait
 
class  InstrProfSummaryBuilder
 
class  InstrProfSymtab
 A symbol table used for function PGO name look-up with keys (such as pointers, md5hash values) to the function. More...
 
class  InstrProfValueProfileInst
 This represents the llvm.instrprof_value_profile intrinsic. More...
 
struct  InstrProfValueSiteRecord
 
class  InstrProfWriter
 
struct  InstrStage
 These values represent a non-pipelined step in the execution of an instruction. More...
 
class  Instruction
 
class  InstructionCombiningPass
 The legacy pass manager's instcombine pass. More...
 
class  InstructionPrecedenceTracking
 
class  InstructionSelect
 This pass is responsible for selecting generic machine instructions to target-specific instructions. More...
 
class  InstructionSelector
 Provides the logic to select generic machine instructions. More...
 
class  InstSimplifyPass
 Run instruction simplification across each instruction in the function. More...
 
class  InstVisitor
 Base class for instruction visitors. More...
 
class  IntAttributeImpl
 
struct  integer_sequence
 Represents a compile-time sequence of integers. More...
 
class  IntegerType
 Class to represent integer types. More...
 
struct  IntelExpr
 
class  IntelJITEventsWrapper
 
class  IntEqClasses
 
class  InterferenceCache
 
class  InterleavedAccessInfo
 Drive the analysis of interleaved memory accesses in the loop. More...
 
class  InterleaveGroup
 The group of interleaved loads/stores sharing the same stride and close to each other. More...
 
class  InternalizePass
 A pass that internalizes all functions and variables other than those that must be preserved according to MustPreserveGV. More...
 
class  Interpreter
 
class  Interval
 Interval Class - An Interval is a set of nodes defined such that every node in the interval has all of its predecessors in the interval (except for the header) More...
 
class  IntervalIterator
 
class  IntervalMap
 
struct  IntervalMapHalfOpenInfo
 
struct  IntervalMapInfo
 
struct  IntervalMapInfo< SlotIndex >
 
class  IntervalMapOverlaps
 IntervalMapOverlaps - Iterate over the overlaps of mapped intervals in two IntervalMaps. More...
 
class  IntervalPartition
 
struct  IntervalPressure
 RegisterPressure computed within a region of instructions delimited by TopIdx and BottomIdx. More...
 
class  IntInit
 '7' - Represent an initialization by a literal integer value. More...
 
class  IntRecTy
 'int' - Represent an integer value of no particular size More...
 
struct  IntrinsicData
 
class  IntrinsicInst
 A wrapper class for inspecting calls to intrinsic functions. More...
 
class  IntrinsicLowering
 
class  IntrusiveBackList
 
struct  IntrusiveBackListBase
 
struct  IntrusiveBackListNode
 
class  IntrusiveRefCntPtr
 A smart pointer to a reference-counted object that inherits from RefCountedBase or ThreadSafeRefCountedBase. More...
 
struct  IntrusiveRefCntPtrInfo
 Class you can specialize to provide custom retain/release functionality for a type. More...
 
class  IntToPtrInst
 This class represents a cast from an integer to a pointer. More...
 
struct  InvalidateAllAnalysesPass
 A utility pass that does nothing, but preserves no analyses. More...
 
struct  InvalidateAnalysisPass
 A no-op pass template which simply forces a specific analysis result to be invalidated. More...
 
struct  Inverse
 
class  InvokeInst
 Invoke instruction. More...
 
class  iplist
 An intrusive list with ownership and callbacks specified/controlled by ilist_traits, only with API safe for polymorphic types. More...
 
class  iplist_impl
 A wrapper around an intrusive list with callbacks and non-intrusive ownership. More...
 
struct  ipo_ext_iterator
 
struct  ipo_iterator
 
class  IPSCCPPass
 Pass to perform interprocedural constant propagation. More...
 
class  IRBuilder
 This provides a uniform API for creating instructions and inserting them into a basic block: either at the end of a BasicBlock, or at a specific iterator location in a block. More...
 
class  IRBuilderBase
 Common base class shared among various IRBuilders. More...
 
class  IRBuilderCallbackInserter
 Provides an 'InsertHelper' that calls a user-provided callback after performing the default insertion. More...
 
class  IRBuilderDefaultInserter
 This provides the default implementation of the IRBuilder 'InsertHelper' method that is called whenever an instruction is created by IRBuilder and needs to be inserted. More...
 
class  IRCEPass
 
class  IRMover
 
class  IRMutationStrategy
 Base class for describing how to mutate a module. More...
 
class  IRMutator
 Entry point for configuring and running IR mutations. More...
 
class  IRTranslator
 
struct  is_bitmask_enum
 Traits class to determine whether an enum has a LLVM_BITMASK_LARGEST_ENUMERATOR enumerator. More...
 
class  is_integral_or_enum
 Metafunction that determines whether the given type is either an integral type or an enumeration type, including enum classes. More...
 
struct  is_one_of
 traits class for checking whether type T is one of any of the given types in the variadic list. More...
 
struct  is_one_of< T, U, Ts... >
 
struct  is_simple_type
 
struct  is_trivially_copy_constructible
 An implementation of std::is_trivially_copy_constructible since we have users with STLs that don't yet include it. More...
 
struct  is_trivially_copy_constructible< T & >
 
struct  is_trivially_copy_constructible< T && >
 
struct  is_trivially_move_constructible
 An implementation of std::is_trivially_move_constructible since we have users with STLs that don't yet include it. More...
 
struct  is_trivially_move_constructible< T & >
 
struct  is_trivially_move_constructible< T && >
 
struct  isa_impl
 
struct  isa_impl< Argument, Value >
 
struct  isa_impl< BasicBlock, Value >
 
struct  isa_impl< Constant, Value >
 
struct  isa_impl< ConstantAggregate, Value >
 
struct  isa_impl< ConstantData, Value >
 
struct  isa_impl< Function, Value >
 
struct  isa_impl< GlobalAlias, Value >
 
struct  isa_impl< GlobalIFunc, Value >
 
struct  isa_impl< GlobalIndirectSymbol, Value >
 
struct  isa_impl< GlobalObject, Value >
 
struct  isa_impl< GlobalValue, Value >
 
struct  isa_impl< GlobalVariable, Value >
 
struct  isa_impl< InlineAsm, Value >
 
struct  isa_impl< Instruction, Value >
 
struct  isa_impl< PointerType, Type >
 
struct  isa_impl< To, From, typename std::enable_if< std::is_base_of< To, From >::value >::type >
 Always allow upcasts, and perform no dynamic check for them. More...
 
struct  isa_impl_cl
 
struct  isa_impl_cl< To, const From * >
 
struct  isa_impl_cl< To, const From *const >
 
struct  isa_impl_cl< To, const From >
 
struct  isa_impl_cl< To, const std::unique_ptr< From > >
 
struct  isa_impl_cl< To, From * >
 
struct  isa_impl_cl< To, From *const >
 
struct  isa_impl_wrap
 
struct  isa_impl_wrap< To, FromTy, FromTy >
 
class  IsAOpInit
 !isa<type>(expr) - Dynamically determine the type of an expression. More...
 
struct  isPodLike
 isPodLike - This is a type trait that is used to determine whether a given type can be copied around with memcpy instead of running ctors etc. More...
 
struct  isPodLike< ArrayRef< T > >
 
struct  isPodLike< AssertingVH< T > >
 
struct  isPodLike< bfi_detail::BlockMass >
 
struct  isPodLike< BitCodeAbbrevOp >
 
struct  isPodLike< IdentifyingPassPtr >
 
struct  isPodLike< ImmutableList< T > >
 
struct  isPodLike< MCOperand >
 
struct  isPodLike< Optional< T > >
 
struct  isPodLike< PointerIntPair< PointerTy, IntBits, IntType > >
 
struct  isPodLike< PoisoningVH< T > >
 
struct  isPodLike< PressureChange >
 
struct  isPodLike< ScaledNumber< T > >
 
struct  isPodLike< SDep >
 
struct  isPodLike< SDValue >
 
struct  isPodLike< Slice >
 
struct  isPodLike< SlotIndex >
 
struct  isPodLike< std::pair< T, U > >
 
struct  isPodLike< StringRef >
 
struct  isPodLike< SuccIterator< T, U > >
 
class  ItaniumManglingCanonicalizer
 Canonicalizer for mangled names. More...
 
struct  ItaniumPartialDemangler
 "Partial" demangler. More...
 
class  iterator_adaptor_base
 CRTP base class for adapting an iterator to a different type. More...
 
class  iterator_facade_base
 CRTP base class which implements the entire standard iterator facade in terms of a minimal subset of the interface. More...
 
class  iterator_range
 A range adaptor for a pair of iterators. More...
 
class  IVStrideUse
 IVStrideUse - Keep track of one use of a strided induction variable. More...
 
class  IVUsers
 
class  IVUsersAnalysis
 Analysis pass that exposes the IVUsers for a loop. More...
 
class  IVUsersPrinterPass
 Printer pass for the IVUsers for a loop. More...
 
class  IVUsersWrapperPass
 
class  IVVisitor
 Interface for visiting interesting IV users that are recognized but not simplified by this utility. More...
 
class  JamCRC
 
class  JITEvaluatedSymbol
 Represents a symbol that has been evaluated to an address already. More...
 
class  JITEventListener
 JITEventListener - Abstract interface for use by the JIT to notify clients about significant events during compilation. More...
 
class  JITSymbol
 Represents a symbol in the JIT. More...
 
class  JITSymbolFlags
 Flags for symbols in the JIT. More...
 
class  JITSymbolResolver
 Symbol resolution interface. More...
 
struct  JobHandleTraits
 
class  JumpTableSDNode
 
class  JumpThreadingPass
 This pass performs 'jump threading', which looks at blocks that have multiple predecessors and multiple successors. More...
 
struct  KnownBits
 
class  LabelSDNode
 
class  LanaiDisassembler
 
class  LanaiFrameLowering
 
class  LanaiInstPrinter
 
class  LanaiInstrInfo
 
class  LanaiMachineFunctionInfo
 
class  LanaiMCAsmInfo
 
class  LanaiMCExpr
 
class  LanaiMCInstLower
 
struct  LanaiRegisterInfo
 
class  LanaiSelectionDAGInfo
 
class  LanaiSubtarget
 
class  LanaiTargetLowering
 
class  LanaiTargetMachine
 
class  LanaiTargetObjectFile
 
class  LanaiTTIImpl
 
struct  LandingPadInfo
 This structure is used to retain landing pad info for the current function. More...
 
class  LandingPadInst
 The landingpad instruction holds all of the information necessary to generate correct exception handling. More...
 
struct  LaneBitmask
 
struct  latency_sort
 Sorting functions for the Available queue. More...
 
class  LatencyPriorityQueue
 
struct  LatticeKeyInfo
 A template for translating between LLVM Values and LatticeKeys. More...
 
struct  LatticeKeyInfo< CVPLatticeKey >
 A specialization of LatticeKeyInfo for CVPLatticeKeys. More...
 
struct  LayoutAlignElem
 Layout alignment element. More...
 
class  LazyBlockFrequencyInfo
 Wraps a BFI to allow lazy computation of the block frequencies. More...
 
class  LazyBlockFrequencyInfoPass
 This is an alternative analysis pass to BlockFrequencyInfoWrapperPass. More...
 
class  LazyBranchProbabilityInfoPass
 This is an alternative analysis pass to BranchProbabilityInfoWrapperPass. More...
 
class  LazyCallGraph
 A lazily constructed view of the call graph of a module. More...
 
class  LazyCallGraphAnalysis
 An analysis pass which computes the call graph for a module. More...
 
class  LazyCallGraphDOTPrinterPass
 A pass which prints the call graph as a DOT file to a raw_ostream. More...
 
class  LazyCallGraphPrinterPass
 A pass which prints the call graph to a raw_ostream. More...
 
class  LazyMachineBlockFrequencyInfoPass
 This is an alternative analysis pass to MachineBlockFrequencyInfo. More...
 
class  LazyValueAnalysis
 Analysis to compute lazy value information. More...
 
class  LazyValueInfo
 This pass computes, caches, and vends lazy value constraint information. More...
 
class  LazyValueInfoWrapperPass
 Wrapper around LazyValueInfo. More...
 
class  LCSSAPass
 Converts loops into loop-closed SSA form. More...
 
struct  LCSSAVerificationPass
 
class  LegacyAARGetter
 This class is a functor to be used in legacy module or SCC passes for computing AA results for a function. More...
 
class  LegacyDivergenceAnalysis
 
struct  LegacyInlinerBase
 This class contains all of the helper code which is used to perform the inlining operations that do not depend on the policy. More...
 
class  LegacyJITSymbolResolver
 Legacy symbol resolution interface. More...
 
struct  LegalityQuery
 The LegalityQuery object bundles together all the information that's needed to decide whether a given operation is legal or not. More...
 
class  LegalizationArtifactCombiner
 
struct  LegalizeActionStep
 The result of a query. More...
 
class  Legalizer
 
class  LegalizerHelper
 
class  LegalizerInfo
 
class  LegalizeRule
 A single rule in a legalizer info ruleset. More...
 
class  LegalizeRuleSet
 
class  LEONMachineFunctionPass
 
struct  less
 A functor like C++14's std::less<void> in its absence. More...
 
struct  less_first
 Function object to check whether the first component of a std::pair compares less than the first component of another std::pair. More...
 
struct  less_ptr
 
struct  less_second
 Function object to check whether the second component of a std::pair compares less than the second component of another std::pair. More...
 
struct  LessRecord
 Sorting predicate to sort record pointers by name. More...
 
struct  LessRecordByID
 Sorting predicate to sort record pointers by their unique ID. More...
 
struct  LessRecordFieldName
 Sorting predicate to sort record pointers by their name field. More...
 
struct  LessRecordRegister
 
struct  LetRecord
 
class  LexicalScope
 LexicalScope - This class is used to track scope information. More...
 
class  LexicalScopes
 LexicalScopes - This class provides interface to collect and use lexical scoping information from machine instruction. More...
 
class  LibCallSimplifier
 LibCallSimplifier - This class implements a collection of optimizations that replace well formed calls to library functions with a more optimal form. More...
 
class  LibCallsShrinkWrapPass
 
class  LICMPass
 Performs Loop Invariant Code Motion Pass. More...
 
class  line_iterator
 A forward iterator which reads text lines from a buffer. More...
 
class  LineEditor
 
class  LinkDiagnosticInfo
 
class  Linker
 This class provides the core functionality of linking in LLVM. More...
 
class  LinkingSymbolResolver
 
class  ListInit
 [AL, AH, CL] - Represent a list of defs More...
 
class  ListRecTy
 'list<Ty>' - Represent a list of values, all of which must be of the specified type. More...
 
class  LiveDebugVariables
 
class  LiveInterval
 LiveInterval - This class represents the liveness of a register, or stack slot. More...
 
class  LiveIntervals
 
class  LiveIntervalUnion
 Union of live intervals that are strong candidates for coalescing into a single register (either physical or virtual depending on the context). More...
 
class  LivePhysRegs
 A set of physical registers with utility functions to track liveness when walking backward/forward through a basic block. More...
 
class  LiveQueryResult
 Result of a LiveRange query. More...
 
class  LiveRange
 This class represents the liveness of a register, stack slot, etc. More...
 
class  LiveRangeCalc
 
class  LiveRangeEdit
 
class  LiveRangeUpdater
 Helper class for performant LiveRange bulk updates. More...
 
class  LiveRegMatrix
 
class  LiveRegSet
 A set of live virtual registers and physical register units. More...
 
struct  LiveRegUnit
 
class  LiveRegUnits
 A set of register units used to track register liveness. More...
 
class  LiveStacks
 
class  LiveVariables
 
class  LLLexer
 
class  LLParser
 
class  LLT
 
struct  llvm_shutdown_obj
 llvm_shutdown_obj - This is a simple helper class that calls llvm_shutdown() when it is destroyed. More...
 
class  LLVMContext
 This is an important class for using LLVM in a threaded context. More...
 
class  LLVMContextImpl
 
class  LLVMDisasmContext
 
class  LLVMTargetMachine
 This class describes a target machine that is implemented with the LLVM target-independent code generator. More...
 
class  LoadAndStorePromoter
 Helper class for promoting a collection of loads and stores into SSA Form using the SSAUpdater. More...
 
class  LoadedObjectInfo
 An inferface for inquiring the load address of a loaded object file to be used by the DIContext implementations when applying relocations on the fly. More...
 
struct  LoadedObjectInfoHelper
 
struct  LoadImmediateInfo
 
class  LoadInfo
 
class  LoadInst
 An instruction for reading from memory. More...
 
class  LoadSDNode
 This class is used to represent ISD::LOAD nodes. More...
 
class  LoadStoreVectorizerPass
 
class  LocalAsMetadata
 
class  Localizer
 This pass implements the localization mechanism described at the top of this file. More...
 
class  LocationSize
 
class  LockFileManager
 Class that manages the creation of a lock file to aid implicit coordination between different processes. More...
 
class  Loop
 Represents a single loop in the control flow graph. More...
 
class  LoopAccessAnalysis
 This analysis provides dependence information for the memory accesses of a loop. More...
 
class  LoopAccessInfo
 Drive the analysis of memory accesses in the loop. More...
 
class  LoopAccessInfoPrinterPass
 Printer pass for the LoopAccessInfo results. More...
 
class  LoopAccessLegacyAnalysis
 This analysis provides dependence information for the memory accesses of a loop. More...
 
class  LoopAnalysis
 Analysis pass that exposes the LoopInfo for a function. More...
 
class  LoopBase
 Instances of this class are used to represent loops that are detected in the flow graph. More...
 
class  LoopBlocksDFS
 Store the result of a depth first search within basic blocks contained by a single loop. More...
 
class  LoopBlocksRPO
 Wrapper class to LoopBlocksDFS that provides a standard begin()/end() interface for the DFS reverse post-order traversal of blocks in a loop body. More...
 
class  LoopBlocksTraversal
 Traverse the blocks in a loop using a depth-first search. More...
 
struct  LoopBodyTraits
 
class  LoopDataPrefetchPass
 An optimization pass inserting data prefetches in loops. More...
 
class  LoopDeletionPass
 
class  LoopDistributePass
 
class  LoopFullUnrollPass
 Loop unroll pass that only does full loop unrolling. More...
 
class  LoopIdiomRecognizePass
 Performs Loop Idiom Recognize Pass. More...
 
class  LoopInfo
 
class  LoopInfoBase
 This class builds and contains all of the top-level loop structures in the specified function. More...
 
class  LoopInfoWrapperPass
 The legacy pass manager's analysis pass to compute loop information. More...
 
class  LoopInstSimplifyPass
 Performs Loop Inst Simplify Pass. More...
 
struct  LoopLoadEliminationPass
 Pass to forward loads in a loop around the backedge to subsequent iterations. More...
 
class  LoopPass
 
class  LoopPredicationPass
 Performs Loop Predication Pass. More...
 
class  LoopPrinterPass
 Printer pass for the LoopAnalysis results. More...
 
class  LoopRotatePass
 A simple loop rotation transformation. More...
 
class  LoopSafetyInfo
 Captures loop safety information. More...
 
class  LoopSimplifyCFGPass
 Performs basic CFG simplifications to assist other loop passes. More...
 
class  LoopSimplifyPass
 This pass is responsible for loop canonicalization. More...
 
class  LoopSinkPass
 A pass that does profile-guided sinking of instructions into loops. More...
 
struct  LoopStandardAnalysisResults
 The adaptor from a function pass to a loop pass computes these analyses and makes them available to the loop passes "for free". More...
 
class  LoopStrengthReducePass
 Performs Loop Strength Reduce Pass. More...
 
class  LoopTraversal
 This class provides the basic blocks traversal order used by passes like ReachingDefAnalysis and ExecutionDomainFix. More...
 
class  LoopUnrollAndJamPass
 A simple loop rotation transformation. More...
 
struct  LoopUnrollOptions
 A set of parameters used to control various transforms performed by the LoopUnroll pass. More...
 
class  LoopUnrollPass
 Loop unroll pass that will support both full and partial unrolling. More...
 
class  LoopVectorizationCostModel
 LoopVectorizationCostModel - estimates the expected speedups due to vectorization. More...
 
class  LoopVectorizationLegality
 LoopVectorizationLegality checks if it is legal to vectorize a loop, and to what vectorization factor. More...
 
class  LoopVectorizationPlanner
 Planner drives the vectorization process after having passed Legality checks. More...
 
class  LoopVectorizationRequirements
 This holds vectorization requirements that must be verified late in the process. More...
 
class  LoopVectorizeHints
 Utility class for getting and setting loop vectorizer hints in the form of loop metadata. More...
 
struct  LoopVectorizePass
 The LoopVectorize Pass. More...
 
struct  LoopVerifierPass
 Verifier pass for the LoopAnalysis results. More...
 
class  LoopVersioning
 This class emits a version of the loop where run-time checks ensure that may-alias pointers can't overlap. More...
 
class  LowerAtomicPass
 A pass that lowers atomic intrinsic into non-atomic intrinsics. More...
 
struct  LowerExpectIntrinsicPass
 
struct  LowerGuardIntrinsicPass
 
class  LowerInvokePass
 
class  LowerTypeTestsPass
 
class  LPMUpdater
 This class provides an interface for updating the loop pass manager based on mutations to the loop nest. More...
 
class  LPPassManager
 
class  LSBaseSDNode
 Base class for LoadSDNode and StoreSDNode. More...
 
class  LShrOperator
 
struct  LTOCodeGenerator
 C++ class which implements the opaque lto_code_gen_t type. More...
 
struct  LTOModule
 C++ class which implements the opaque lto_module_t type. More...
 
class  MachineBasicBlock
 
class  MachineBlockFrequencyInfo
 MachineBlockFrequencyInfo pass uses BlockFrequencyInfoImpl implementation to estimate machine basic block frequencies. More...
 
class  MachineBranchProbabilityInfo
 
class  MachineConstantPool
 The MachineConstantPool class keeps track of constants referenced by a function which must be spilled to memory. More...
 
class  MachineConstantPoolEntry
 This class is a data container for one entry in a MachineConstantPool. More...
 
class  MachineConstantPoolValue
 Abstract base class for all machine specific constantpool value subclasses. More...
 
class  MachineDominanceFrontier
 
class  MachineDominatorTree
 DominatorTree Class - Concrete subclass of DominatorTreeBase that is used to compute a normal dominator tree. More...
 
struct  MachineDomTreeGraphTraitsBase
 DominatorTree GraphTraits specialization so the DominatorTree can be iterable by generic graph iterators. More...
 
class  MachineFrameInfo
 The MachineFrameInfo class represents an abstract stack frame until prolog/epilog code is inserted. More...
 
class  MachineFunction
 
struct  MachineFunctionInfo
 MachineFunctionInfo - This class can be derived from and used by targets to hold private target-specific information for each MachineFunction. More...
 
class  MachineFunctionPass
 MachineFunctionPass - This class adapts the FunctionPass interface to allow convenient creation of passes that operate on the MachineFunction representation. More...
 
class  MachineFunctionProperties
 Properties which a MachineFunction may have at a given point in time. More...
 
class  MachineInstr
 Representation of each machine instruction. More...
 
class  MachineInstrBuilder
 
class  MachineInstrBundleIterator
 MachineBasicBlock iterator that automatically skips over MIs that are inside bundles (i.e. More...
 
struct  MachineInstrBundleIteratorHelper
 
struct  MachineInstrBundleIteratorHelper< false >
 
struct  MachineInstrBundleIteratorHelper< true >
 
struct  MachineInstrBundleIteratorTraits
 
struct  MachineInstrBundleIteratorTraits< const T, false >
 
struct  MachineInstrBundleIteratorTraits< const T, true >
 
struct  MachineInstrBundleIteratorTraits< T, false >
 
struct  MachineInstrBundleIteratorTraits< T, true >
 
struct  MachineInstrExpressionTrait
 Special DenseMapInfo traits to compare MachineInstr* by value of the instruction rather than by pointer value. More...
 
class  MachineInstrSpan
 MachineInstrSpan provides an interface to get an iteration range containing the instruction it was initialized with, along with all those instructions inserted prior to or following that instruction at some point after the MachineInstrSpan is constructed. More...
 
class  MachineIRBuilder
 Helper class to build MachineInstr. More...
 
struct  MachineIRBuilderState
 Class which stores all the state required in a MachineIRBuilder. More...
 
struct  MachineJumpTableEntry
 MachineJumpTableEntry - One jump table in the jump table info. More...
 
class  MachineJumpTableInfo
 
class  MachineLocation
 
class  MachineLoop
 
class  MachineLoopInfo
 
class  MachineMemOperand
 A description of a memory reference used in the backend. More...
 
class  MachineModuleInfo
 This class contains meta information specific to a module. More...
 
class  MachineModuleInfoCOFF
 MachineModuleInfoCOFF - This is a MachineModuleInfoImpl implementation for COFF targets. More...
 
class  MachineModuleInfoELF
 MachineModuleInfoELF - This is a MachineModuleInfoImpl implementation for ELF targets. More...
 
class  MachineModuleInfoImpl
 This class can be derived from and used by targets to hold private target-specific information for each Module. More...
 
class  MachineModuleInfoMachO
 MachineModuleInfoMachO - This is a MachineModuleInfoImpl implementation for MachO targets. More...
 
class  MachineOperand
 MachineOperand class - Representation of each machine instruction operand. More...
 
class  MachineOperandIteratorBase
 MachineOperandIteratorBase - Iterator that can visit all operands on a MachineInstr, or all operands on a bundle of MachineInstrs. More...
 
class  MachineOptimizationRemark
 Diagnostic information for applied optimization remarks. More...
 
class  MachineOptimizationRemarkAnalysis
 Diagnostic information for optimization analysis remarks. More...
 
class  MachineOptimizationRemarkEmitter
 The optimization diagnostic interface. More...
 
class  MachineOptimizationRemarkEmitterPass
 The analysis pass. More...
 
class  MachineOptimizationRemarkMissed
 Diagnostic information for missed-optimization remarks. More...
 
class  MachinePassRegistry
 MachinePassRegistry - Track the registration of machine passes. More...
 
class  MachinePassRegistryListener
 MachinePassRegistryListener - Listener to adds and removals of nodes in registration list. More...
 
class  MachinePassRegistryNode
 MachinePassRegistryNode - Machine pass node stored in registration list. More...
 
class  MachinePipeliner
 The main class in the implementation of the target independent software pipeliner pass. More...
 
struct  MachinePointerInfo
 This class contains a discriminated union of information about pointers in memory operands, relating them back to LLVM IR or to virtual locations (such as frame indices) that are exposed during codegen. More...
 
struct  MachinePostDominatorTree
 PostDominatorTree Class - Concrete subclass of DominatorTree that is used to compute the post-dominator tree. More...
 
class  MachineRegion
 
class  MachineRegionInfo
 
class  MachineRegionInfoPass
 
class  MachineRegionNode
 
class  MachineRegisterInfo
 MachineRegisterInfo - Keep track of information for virtual and physical registers, including vreg register classes, use/def chains for registers, etc. More...
 
struct  MachineSchedContext
 MachineSchedContext provides enough context from the MachineScheduler pass for the target to instantiate a scheduler. More...
 
struct  MachineSchedPolicy
 Define a generic scheduling policy for targets that don't provide their own MachineSchedStrategy. More...
 
class  MachineSchedRegistry
 MachineSchedRegistry provides a selection of available machine instruction schedulers. More...
 
class  MachineSchedStrategy
 MachineSchedStrategy - Interface to the scheduling algorithm used by ScheduleDAGMI. More...
 
class  MachineSDNode
 An SDNode that represents everything that will be needed to construct a MachineInstr. More...
 
class  MachineSSAUpdater
 MachineSSAUpdater - This class updates SSA form for a set of virtual registers defined in multiple blocks. More...
 
class  MachineTraceMetrics
 
class  MachObjectWriter
 
class  MachORelocation
 MachORelocation - This struct contains information about each relocation that needs to be emitted to the file. More...
 
struct  make_const_ptr
 
struct  make_const_ref
 
struct  MakeGuardsExplicitPass
 
class  MallocAllocator
 
class  ManagedStatic
 ManagedStatic - This transparently changes the behavior of global statics to be lazily constructed on demand (good for reducing startup times of dynamic libraries that link in LLVM components) and for making destruction be explicit through the llvm_shutdown() function call. More...
 
class  ManagedStaticBase
 ManagedStaticBase - Common base class for ManagedStatic instances. More...
 
class  ManagedStringPool
 ManagedStringPool - The strings allocated from a managed string pool are owned by the string pool and will be deleted together with the managed string pool. More...
 
class  Mangler
 
class  mapped_iterator
 
class  MapResolver
 Resolve arbitrary mappings. More...
 
class  MapVector
 This class implements a map that also provides access to all stored values in a deterministic order. More...
 
class  MaskedGatherScatterSDNode
 This is a base class used to represent MGATHER and MSCATTER nodes. More...
 
class  MaskedGatherSDNode
 This class is used to represent an MGATHER node. More...
 
class  MaskedLoadSDNode
 This class is used to represent an MLOAD node. More...
 
class  MaskedLoadStoreSDNode
 This base class is used to represent MLOAD and MSTORE nodes. More...
 
class  MaskedScatterSDNode
 This class is used to represent an MSCATTER node. More...
 
class  MaskedStoreSDNode
 This class is used to represent an MSTORE node. More...
 
class  MaskedTruncSStoreSDNode
 
class  MaskedTruncUSStoreSDNode
 
class  MaximumSpanningTree
 MaximumSpanningTree - A MST implementation. More...
 
struct  MBB2NumberFunctor
 
class  MCAlignFragment
 
class  MCAsmBackend
 Generic interface to target specific assembler backends. More...
 
class  MCAsmInfo
 This class is intended to be used as a base class for asm properties and features specific to the target. More...
 
class  MCAsmInfoCOFF
 
class  MCAsmInfoDarwin
 
class  MCAsmInfoELF
 
class  MCAsmInfoGNUCOFF
 
class  MCAsmInfoMicrosoft
 
class  MCAsmInfoWasm
 
class  MCAsmLayout
 Encapsulates the layout of an assembly file at a particular point in time. More...
 
class  MCAsmLexer
 Generic assembler lexer interface, for use by target specific assembly lexers. More...
 
struct  MCAsmMacro
 
struct  MCAsmMacroParameter
 
class  MCAsmParser
 Generic assembler parser interface, for use by target specific assembly parsers. More...
 
class  MCAsmParserExtension
 Generic interface for extending the MCAsmParser, which is implemented by target and object file assembly parser implementations. More...
 
class  MCAsmParserSemaCallback
 Generic Sema callback for assembly parser. More...
 
class  MCAssembler
 
class  MCBinaryExpr
 Binary assembler expressions. More...
 
class  MCCFIInstruction
 
class  MCCodeEmitter
 MCCodeEmitter - Generic instruction encoding interface. More...
 
class  MCCodePadder
 Target-independent base class incharge of all code padding decisions for a target. More...
 
struct  MCCodePaddingContext
 
class  MCCodePaddingPolicy
 The base class for all padding policies, i.e. More...
 
class  MCCompactEncodedInstFragment
 This is a compact (memory-size-wise) fragment for holding an encoded instruction (non-relaxable) that has no fixups registered. More...
 
class  MCConstantExpr
 
class  MCContext
 Context object for machine code objects. More...
 
class  MCCVDefRangeFragment
 Fragment representing the .cv_def_range directive. More...
 
struct  MCCVFunctionInfo
 Information describing a function or inlined call site introduced by .cv_func_id or .cv_inline_site_id. More...
 
class  MCCVInlineLineTableFragment
 Fragment representing the binary annotations produced by the .cv_inline_linetable directive. More...
 
class  MCCVLoc
 Instances of this class represent the information from a .cv_loc directive. More...
 
class  MCDataFragment
 Fragment for data and encoded instructions. More...
 
class  MCDisassembler
 Superclass for all disassemblers. More...
 
class  MCDummyFragment
 
class  MCDwarfCallFrameFragment
 
class  MCDwarfDwoLineTable
 
struct  MCDwarfFile
 Instances of this class represent the name of the dwarf .file directive and its associated dwarf file number in the MC file, and MCDwarfFile's are created and uniqued by the MCContext class where the file number for each is its index into the vector of DwarfFiles (note index 0 is not used and not a valid dwarf file number). More...
 
class  MCDwarfFrameEmitter
 
struct  MCDwarfFrameInfo
 
class  MCDwarfLineAddr
 
class  MCDwarfLineAddrFragment
 
class  MCDwarfLineEntry
 Instances of this class represent the line information for the dwarf line table entries. More...
 
class  MCDwarfLineStr
 Manage the .debug_line_str section contents, if we use it. More...
 
class  MCDwarfLineTable
 
struct  MCDwarfLineTableHeader
 
struct  MCDwarfLineTableParams
 
class  MCDwarfLoc
 Instances of this class represent the information from a dwarf .loc directive. More...
 
class  MCELFObjectTargetWriter
 
class  MCELFStreamer
 
class  MCEncodedFragment
 Interface implemented by fragments that contain encoded instructions and/or data. More...
 
class  MCEncodedFragmentWithContents
 Interface implemented by fragments that contain encoded instructions and/or data. More...
 
class  MCEncodedFragmentWithFixups
 Interface implemented by fragments that contain encoded instructions and/or data and also have fixups registered. More...
 
class  MCExpr
 Base class for the full range of assembler expressions which are needed for parsing. More...
 
class  MCExternalSymbolizer
 Symbolize using user-provided, C API, callbacks. More...
 
struct  MCExtraProcessorInfo
 Provide extra details about the machine processor. More...
 
class  MCFillFragment
 
class  MCFixup
 Encode information on a single operation to perform on a byte sequence (e.g., an encoded instruction) which requires assemble- or run- time patching. More...
 
struct  MCFixupKindInfo
 Target independent information on a fixup kind. More...
 
class  MCFragment
 
class  MCGenDwarfInfo
 
class  MCGenDwarfLabelEntry
 
class  MCInst
 Instances of this class represent a single low-level machine instruction. More...
 
class  MCInstBuilder
 
class  MCInstPrinter
 This is an instance of a target assembly language printer that converts an MCInst to valid target assembly syntax. More...
 
class  MCInstrAnalysis
 
class  MCInstrDesc
 Describe properties that are true of each instruction in the target description file. More...
 
class  MCInstrInfo
 Interface to description of machine instruction set. More...
 
class  MCJIT
 
class  MCJITMemoryManager
 
class  MCLabel
 Instances of this class represent a label name in the MC file, and MCLabel are created and uniqued by the MCContext class. More...
 
class  MCLEBFragment
 
class  MCLineSection
 Instances of this class represent the line information for a compile unit where machine instructions have been assembled after seeing .loc directives. More...
 
class  MCLOHContainer
 
class  MCLOHDirective
 Store Linker Optimization Hint information (LOH). More...
 
class  MCMachObjectTargetWriter
 
class  MCObjectFileInfo
 
class  MCObjectStreamer
 Streaming object file generation interface. More...
 
class  MCObjectTargetWriter
 Base class for classes that define behaviour that is specific to both the target and the object format. More...
 
class  MCObjectWriter
 Defines the object file and target independent interfaces used by the assembler backend to write native file format object files. More...
 
class  MCOperand
 Instances of this class represent operands of the MCInst class. More...
 
class  MCOperandInfo
 This holds information about one operand of a machine instruction, indicating the register class for register operands, etc. More...
 
class  MCOrgFragment
 
class  MCPaddingFragment
 Fragment for adding required padding. More...
 
class  MCParsedAsmOperand
 MCParsedAsmOperand - This abstract class represents a source-level assembly instruction operand. More...
 
struct  MCProcResourceDesc
 Define a kind of processor resource that will be modeled by the scheduler. More...
 
struct  MCReadAdvanceEntry
 Specify the number of cycles allowed after instruction issue before a particular use operand reads its registers. More...
 
class  MCRegAliasIterator
 MCRegAliasIterator enumerates all registers aliasing Reg. More...
 
class  MCRegisterClass
 MCRegisterClass - Base class of TargetRegisterClass. More...
 
struct  MCRegisterCostEntry
 Specify the cost of a register definition in terms of number of physical register allocated at register renaming stage. More...
 
struct  MCRegisterDesc
 MCRegisterDesc - This record contains information about a particular register. More...
 
struct  MCRegisterFileDesc
 A register file descriptor. More...
 
class  MCRegisterInfo
 MCRegisterInfo base class - We assume that the target defines a static array of MCRegisterDesc objects that represent all of the machine registers that the target has. More...
 
class  MCRegUnitIterator
 
class  MCRegUnitMaskIterator
 MCRegUnitMaskIterator enumerates a list of register units and their associated lane masks for Reg. More...
 
class  MCRegUnitRootIterator
 MCRegUnitRootIterator enumerates the root registers of a register unit. More...
 
class  MCRelaxableFragment
 A relaxable fragment holds on to its MCInst, since it may need to be relaxed during the assembler layout and relaxation stage. More...
 
class  MCRelocationInfo
 Create MCExprs from relocations found in an object file. More...
 
struct  MCSchedClassDesc
 Summarize the scheduling resources required for an instruction of a particular scheduling class. More...
 
struct  MCSchedModel
 Machine model for scheduling, bundling, and heuristics. More...
 
class  MCSection
 Instances of this class represent a uniqued identifier for a section in the current translation unit. More...
 
class  MCSectionCOFF
 This represents a section on Windows. More...
 
class  MCSectionELF
 This represents a section on linux, lots of unix variants and some bare metal systems. More...
 
class  MCSectionMachO
 This represents a section on a Mach-O system (used by Mac OS X). More...
 
class  MCSectionWasm
 This represents a section on wasm. More...
 
class  MCStreamer
 Streaming machine code generation interface. More...
 
class  MCSubRegIndexIterator
 Iterator that enumerates the sub-registers of a Reg and the associated sub-register indices. More...
 
class  MCSubRegIterator
 MCSubRegIterator enumerates all sub-registers of Reg. More...
 
class  MCSubtargetInfo
 Generic base class for all target subtargets. More...
 
class  MCSuperRegIterator
 MCSuperRegIterator enumerates all super-registers of Reg. More...
 
class  MCSymbol
 MCSymbol - Instances of this class represent a symbol name in the MC file, and MCSymbols are created and uniqued by the MCContext class. More...
 
class  MCSymbolCOFF
 
class  MCSymbolELF
 
class  MCSymbolIdFragment
 Represents a symbol table index fragment. More...
 
class  MCSymbolizer
 Symbolize and annotate disassembled instructions. More...
 
class  MCSymbolMachO
 
class  MCSymbolRefExpr
 Represent a reference to a symbol from inside an expression. More...
 
class  MCSymbolSDNode
 
class  MCSymbolWasm
 
class  MCTargetAsmParser
 MCTargetAsmParser - Generic interface to target specific assembly parsers. More...
 
class  MCTargetExpr
 This is an extension point for target-specific MCExpr subclasses to implement. More...
 
class  MCTargetOptions
 
class  MCTargetStreamer
 Target specific streamer interface. More...
 
class  MCUnaryExpr
 Unary assembler expressions. More...
 
class  MCValue
 This represents an "assembler immediate". More...
 
class  MCWasmObjectTargetWriter
 
class  MCWasmStreamer
 
class  MCWinCOFFObjectTargetWriter
 
class  MCWinCOFFStreamer
 
struct  MCWriteLatencyEntry
 Specify the latency in cpu cycles for a particular scheduling class and def index. More...
 
struct  MCWriteProcResEntry
 Identify one of the processor resource kinds consumed by a particular scheduling class for the specified number of cycles. More...
 
class  MD5
 
class  MDAttachmentMap
 Map-like storage for metadata attachments. More...
 
class  MDBuilder
 
class  MDGlobalAttachmentMap
 Multimap-like storage for metadata attachments for globals. More...
 
class  MDNode
 Metadata node. More...
 
struct  MDNodeInfo
 DenseMapInfo for MDNode subclasses. More...
 
struct  MDNodeKeyImpl
 
struct  MDNodeKeyImpl< DIBasicType >
 
struct  MDNodeKeyImpl< DICompositeType >
 
struct  MDNodeKeyImpl< DIDerivedType >
 
struct  MDNodeKeyImpl< DIEnumerator >
 
struct  MDNodeKeyImpl< DIExpression >
 
struct  MDNodeKeyImpl< DIFile >
 
struct  MDNodeKeyImpl< DIGlobalVariable >
 
struct  MDNodeKeyImpl< DIGlobalVariableExpression >
 
struct  MDNodeKeyImpl< DIImportedEntity >
 
struct  MDNodeKeyImpl< DILabel >
 
struct  MDNodeKeyImpl< DILexicalBlock >
 
struct  MDNodeKeyImpl< DILexicalBlockFile >
 
struct  MDNodeKeyImpl< DILocalVariable >
 
struct  MDNodeKeyImpl< DILocation >
 DenseMapInfo for DILocation. More...
 
struct  MDNodeKeyImpl< DIMacro >
 
struct  MDNodeKeyImpl< DIMacroFile >
 
struct  MDNodeKeyImpl< DIModule >
 
struct  MDNodeKeyImpl< DINamespace >
 
struct  MDNodeKeyImpl< DIObjCProperty >
 
struct  MDNodeKeyImpl< DISubprogram >
 
struct  MDNodeKeyImpl< DISubrange >
 
struct  MDNodeKeyImpl< DISubroutineType >
 
struct  MDNodeKeyImpl< DITemplateTypeParameter >
 
struct  MDNodeKeyImpl< DITemplateValueParameter >
 
struct  MDNodeKeyImpl< GenericDINode >
 DenseMapInfo for GenericDINode. More...
 
struct  MDNodeKeyImpl< MDTuple >
 DenseMapInfo for MDTuple. More...
 
class  MDNodeOpsKey
 Structure for hashing arbitrary MDNode operands. More...
 
class  MDNodeSDNode
 
struct  MDNodeSubsetEqualImpl
 Configuration point for MDNodeInfo::isEqual(). More...
 
struct  MDNodeSubsetEqualImpl< DIDerivedType >
 
struct  MDNodeSubsetEqualImpl< DISubprogram >
 
class  MDOperand
 Tracking metadata reference owned by Metadata. More...
 
class  MDString
 A single uniqued string. More...
 
class  MDTuple
 Tuple of metadata. More...
 
class  MDTupleTypedArrayWrapper
 Typed, array-like tuple of metadata. More...
 
class  MemCpyInst
 This class wraps the llvm.memcpy intrinsic. More...
 
class  MemCpyOptPass
 
class  MemDepResult
 A memory dependence query can return one of three different answers. More...
 
class  MemIntrinsic
 This is the common base class for memset/memcpy/memmove. More...
 
class  MemIntrinsicBase
 Common base class for all memory intrinsics. More...
 
struct  MemIntrinsicInfo
 Information about a load/store intrinsic defined by the target. More...
 
class  MemIntrinsicSDNode
 This SDNode is used for target intrinsics that touch memory and need an associated MachineMemOperand. More...
 
class  MemMoveInst
 This class wraps the llvm.memmove intrinsic. More...
 
class  MemoryAccess
 
class  memoryaccess_def_iterator_base
 Iterator base class used to implement const and non-const iterators over the defining accesses of a MemoryAccess. More...
 
class  MemoryBuffer
 This interface provides simple read-only access to a block of memory, and provides simple methods for reading files and standard input into a memory buffer. More...
 
class  MemoryBufferByteStream
 An implementation of BinaryStream whose data is backed by an llvm MemoryBuffer object. More...
 
class  MemoryBufferRef
 
class  MemoryDef
 Represents a read-write access to memory, whether it is a must-alias, or a may-alias. More...
 
class  MemoryDepChecker
 Checks memory dependences among accesses to the same underlying object to determine whether there vectorization is legal or not (and at which vectorization factor). More...
 
class  MemoryDependenceAnalysis
 An analysis that produces MemoryDependenceResults for a function. More...
 
class  MemoryDependenceResults
 Provides a lazy, caching interface for making common memory aliasing information queries, backed by LLVM's alias analysis passes. More...
 
class  MemoryDependenceWrapperPass
 A wrapper analysis pass for the legacy pass manager that exposes a MemoryDepnedenceResults instance. More...
 
class  MemoryLocation
 Representation for a specific memory location. More...
 
class  MemoryPhi
 Represents phi nodes for memory accesses. More...
 
struct  MemorySanitizerPass
 A function pass for msan instrumentation. More...
 
class  MemorySSA
 Encapsulates MemorySSA, including all data associated with memory accesses. More...
 
class  MemorySSAAnalysis
 An analysis that produces MemorySSA for a function. More...
 
class  MemorySSAAnnotatedWriter
 An assembly annotator class to print Memory SSA information in comments. More...
 
class  MemorySSAPrinterLegacyPass
 
class  MemorySSAPrinterPass
 Printer pass for MemorySSA. More...
 
class  MemorySSAUpdater
 
class  MemorySSAUtil
 
struct  MemorySSAVerifierPass
 Verifier pass for MemorySSA. More...
 
class  MemorySSAWalker
 This is the generic walker interface for walkers of MemorySSA. More...
 
class  MemorySSAWrapperPass
 Legacy analysis pass which computes MemorySSA. More...
 
class  MemoryUse
 Represents read-only accesses to memory. More...
 
class  MemoryUseOrDef
 Class that has the common methods + fields of memory uses/defs. More...
 
class  MemoryWriteTracking
 
class  MemSDNode
 This is an abstract virtual class for memory operations. More...
 
class  MemSetBase
 Common base class for all memset intrinsics. More...
 
class  MemSetInst
 This class wraps the llvm.memset intrinsic. More...
 
class  MemTransferBase
 Common base class for all memory transfer intrinsics. More...
 
class  MemTransferInst
 This class wraps the llvm.memcpy/memmove intrinsics. More...
 
class  MergedLoadStoreMotionPass
 
class  Metadata
 Root of the metadata hierarchy. More...
 
class  MetadataAsValue
 Metadata wrapper in the Value hierarchy. More...
 
class  MetadataLoader
 Helper class that handles loading Metadatas and keeping them available. More...
 
class  MetadataTracking
 API for tracking metadata references through RAUW and deletion. More...
 
class  MIBundleBuilder
 Helper class for constructing bundles of MachineInstrs. More...
 
class  MIBundleOperands
 MIBundleOperands - Iterate over all operands in a bundle of machine instructions. More...
 
class  MIOperands
 MIOperands - Iterate over operands of a single instruction. More...
 
class  MIPrinter
 This class prints out the machine instructions using the MIR serialization format. More...
 
class  Mips16DAGToDAGISel
 
class  Mips16FrameLowering
 
class  Mips16InstrInfo
 
class  Mips16RegisterInfo
 
class  Mips16TargetLowering
 
struct  MipsABIFlagsSection
 
class  MipsABIInfo
 
class  MipsAnalyzeImmediate
 
class  MipsAsmBackend
 
class  MipsAsmPrinter
 
class  MipsCallLowering
 
class  MipsCCState
 
class  MipsDAGToDAGISel
 
class  MipsebTargetMachine
 Mips32/64 big endian target machine. More...
 
class  MipsELFStreamer
 
class  MipselTargetMachine
 Mips32/64 little endian target machine. More...
 
class  MipsFrameLowering
 
class  MipsFunctionInfo
 MipsFunctionInfo - This class is derived from MachineFunction private Mips target-specific information for each MachineFunction. More...
 
class  MipsGenRegisterBankInfo
 
class  MipsInstPrinter
 
class  MipsInstrInfo
 
class  MipsLegalizerInfo
 This class provides legalization strategies. More...
 
class  MipsMCAsmInfo
 
class  MipsMCCodeEmitter
 
class  MipsMCExpr
 
class  MipsMCInstLower
 MipsMCInstLower - This class is used to lower an MachineInstr into an MCInst. More...
 
class  MipsOptionRecord
 
class  MipsRegInfoRecord
 
class  MipsRegisterBankInfo
 This class provides the information for the target register banks. More...
 
class  MipsRegisterInfo
 
class  MipsSEDAGToDAGISel
 
class  MipsSEFrameLowering
 
class  MipsSEInstrInfo
 
class  MipsSERegisterInfo
 
class  MipsSETargetLowering
 
class  MipsSubtarget
 
class  MipsTargetAsmStreamer
 
class  MipsTargetELFStreamer
 
class  MipsTargetLowering
 
class  MipsTargetMachine
 
class  MipsTargetObjectFile
 
class  MipsTargetStreamer
 
class  MIRParser
 This class initializes machine functions by applying the state loaded from a MIR file. More...
 
class  MIRParserImpl
 This class implements the parsing of LLVM IR that's embedded inside a MIR file. More...
 
class  MIRPrinter
 This class prints out the machine functions using the MIR serialization format. More...
 
struct  MIToken
 A token produced by the machine instruction lexer. More...
 
class  MMIAddrLabelMap
 
class  MMIAddrLabelMapCallbackPtr
 
class  Module
 A Module instance is used to store all the information related to an LLVM module. More...
 
class  ModulePass
 ModulePass class - This class is used to implement unstructured interprocedural optimizations and analyses. More...
 
class  ModuleSlotTracker
 Manage lifetime of a slot tracker for printing IR. More...
 
class  ModuleSummaryIndex
 Class to hold module path string table and global value map, and encapsulate methods for operating on them. More...
 
class  ModuleSummaryIndexAnalysis
 Analysis pass to provide the ModuleSummaryIndex object. More...
 
class  ModuleSummaryIndexWrapperPass
 Legacy wrapper pass to provide the ModuleSummaryIndex object. More...
 
class  ModuleSymbolTable
 
class  ModuleToFunctionPassAdaptor
 Trivial adaptor that maps from a module to its functions. More...
 
class  ModuleToPostOrderCGSCCPassAdaptor
 The core module pass which does a post-order walk of the SCCs and runs a CGSCC pass over each one. More...
 
class  MSP430FrameLowering
 
class  MSP430InstPrinter
 
class  MSP430InstrInfo
 
class  MSP430MachineFunctionInfo
 MSP430MachineFunctionInfo - This class is derived from MachineFunction and contains private MSP430 target-specific information for each MachineFunction. More...
 
class  MSP430MCAsmInfo
 
class  MSP430MCCodeEmitter
 
class  MSP430MCInstLower
 MSP430MCInstLower - This class is used to lower an MachineInstr into an MCInst. More...
 
struct  MSP430RegisterInfo
 
class  MSP430Subtarget
 
class  MSP430TargetELFStreamer
 
class  MSP430TargetLowering
 
class  MSP430TargetMachine
 MSP430TargetMachine. More...
 
class  MSVCPError
 
class  MSVCPExpected
 
class  MulOperator
 
struct  MultiClass
 
class  MutableArrayRef
 MutableArrayRef - Represent a mutable reference to an array (0 or more elements consecutively in memory), i.e. More...
 
class  MutableBinaryByteStream
 An implementation of BinaryStream which holds its entire data set in a single contiguous buffer. More...
 
class  MutexGuard
 Instances of this class acquire a given Mutex Lock when constructed and hold that lock until destruction. More...
 
class  MVT
 Machine Value Type. More...
 
class  NameAnonGlobalPass
 Simple pass that provides a name to every anonymous globals. More...
 
struct  NamedInstrProfRecord
 
class  NamedMDNode
 A tuple of MDNodes. More...
 
struct  NamedRegionTimer
 This class is basically a combination of TimeRegion and Timer. More...
 
class  NaryReassociatePass
 
class  NearMissInfo
 
struct  negation
 
struct  NewArchiveMember
 
class  NewGVNPass
 
class  NodeSet
 A NodeSet contains a set of SUnit DAG nodes with additional information that assigns a priority to the set. More...
 
class  NoFolder
 NoFolder - Create "constants" (actually, instructions) with no folding. More...
 
class  NonLocalDepEntry
 This is an entry in the NonLocalDepInfo cache. More...
 
class  NonLocalDepResult
 This is a result from a NonLocal dependence query. More...
 
class  NVPTXAsmPrinter
 
class  NVPTXDAGToDAGISel
 
class  NVPTXFloatMCExpr
 
class  NVPTXFrameLowering
 
class  NVPTXGenericMCSymbolRefExpr
 A wrapper for MCSymbolRefExpr that tells the assembly printer that the symbol should be enclosed by generic(). More...
 
class  NVPTXInstPrinter
 
class  NVPTXInstrInfo
 
class  NVPTXMachineFunctionInfo
 
class  NVPTXMCAsmInfo
 
class  NVPTXRegisterInfo
 
class  NVPTXSubtarget
 
class  NVPTXTargetLowering
 
class  NVPTXTargetMachine
 NVPTXTargetMachine. More...
 
class  NVPTXTargetMachine32
 
class  NVPTXTargetMachine64
 
class  NVPTXTargetObjectFile
 
class  NVPTXTargetStreamer
 Implments NVPTX-specific streamer. More...
 
class  NVPTXTTIImpl
 
struct  object_creator
 object_creator - Helper method for ManagedStatic. More...
 
struct  object_deleter
 object_deleter - Helper method for ManagedStatic. More...
 
struct  object_deleter< T[N]>
 
class  ObjectCache
 This is the base ObjectCache type which can be provided to an ExecutionEngine for the purpose of avoiding compilation for Modules that have already been compiled and an object file is available. More...
 
class  ObjectSizeOffsetEvaluator
 Evaluate the size and offset of an object pointed to by a Value*. More...
 
class  ObjectSizeOffsetVisitor
 Evaluate the size and offset of an object pointed to by a Value* statically. More...
 
struct  ObjectSizeOpts
 Various options to control the behavior of getObjectSize. More...
 
struct  on_first
 Function object to apply a binary function to the first component of a std::pair. More...
 
class  OnDiskChainedHashTable
 Provides lookup on an on disk hash table. More...
 
class  OnDiskChainedHashTableGenerator
 Generates an on disk hash table. More...
 
class  OnDiskIterableChainedHashTable
 Provides lookup and iteration over an on disk hash table. More...
 
class  OperandBundleDefT
 A container for an operand bundle being viewed as a set of values rather than a set of uses. More...
 
struct  OperandBundleUse
 A lightweight accessor for an operand bundle meant to be passed around by value. More...
 
struct  OperandTraits
 Compile-time customization of User operands. More...
 
struct  OperandTraits< AtomicCmpXchgInst >
 
struct  OperandTraits< AtomicRMWInst >
 
struct  OperandTraits< BinaryConstantExpr >
 
struct  OperandTraits< BinaryOperator >
 
struct  OperandTraits< BlockAddress >
 
struct  OperandTraits< BranchInst >
 
struct  OperandTraits< CallBase >
 
struct  OperandTraits< CatchReturnInst >
 
struct  OperandTraits< CatchSwitchInst >
 
struct  OperandTraits< CleanupReturnInst >
 
struct  OperandTraits< CmpInst >
 
struct  OperandTraits< CompareConstantExpr >
 
struct  OperandTraits< ConstantAggregate >
 
struct  OperandTraits< ConstantExpr >
 
struct  OperandTraits< ConstantPlaceHolder >
 
struct  OperandTraits< ExtractElementConstantExpr >
 
struct  OperandTraits< ExtractElementInst >
 
struct  OperandTraits< ExtractValueConstantExpr >
 
struct  OperandTraits< FuncletPadInst >
 
struct  OperandTraits< Function >
 
struct  OperandTraits< GetElementPtrConstantExpr >
 
struct  OperandTraits< GetElementPtrInst >
 
struct  OperandTraits< GlobalIndirectSymbol >
 
struct  OperandTraits< GlobalVariable >
 
struct  OperandTraits< IndirectBrInst >
 
struct  OperandTraits< InsertElementConstantExpr >
 
struct  OperandTraits< InsertElementInst >
 
struct  OperandTraits< InsertValueConstantExpr >
 
struct  OperandTraits< InsertValueInst >
 
struct  OperandTraits< LandingPadInst >
 
struct  OperandTraits< MemoryDef >
 
struct  OperandTraits< MemoryPhi >
 
struct  OperandTraits< MemoryUse >
 
struct  OperandTraits< MemoryUseOrDef >
 
struct  OperandTraits< PHINode >
 
struct  OperandTraits< ResumeInst >
 
struct  OperandTraits< ReturnInst >
 
struct  OperandTraits< SelectConstantExpr >
 
struct  OperandTraits< SelectInst >
 
struct  OperandTraits< ShuffleVectorConstantExpr >
 
struct  OperandTraits< ShuffleVectorInst >
 
struct  OperandTraits< StoreInst >
 
struct  OperandTraits< SwitchInst >
 
struct  OperandTraits< UnaryConstantExpr >
 
struct  OperandTraits< UnaryInstruction >
 
class  Operator
 This is a utility class that provides an abstraction for the common functionality between Instructions and ConstantExprs. More...
 
class  OpInit
 Base class for operators. More...
 
class  OProfileWrapper
 
class  OptBisect
 This class implements a mechanism to disable passes and individual optimizations at compile time based on a command line option (-opt-bisect-limit) in order to perform a bisecting search for optimization-related problems. More...
 
class  OptimizationRemark
 Diagnostic information for applied optimization remarks. More...
 
class  OptimizationRemarkAnalysis
 Diagnostic information for optimization analysis remarks. More...
 
class  OptimizationRemarkAnalysisAliasing
 Diagnostic information for optimization analysis remarks related to pointer aliasing. More...
 
class  OptimizationRemarkAnalysisFPCommute
 Diagnostic information for optimization analysis remarks related to floating-point non-commutativity. More...
 
class  OptimizationRemarkEmitter
 The optimization diagnostic interface. More...
 
class  OptimizationRemarkEmitterAnalysis
 
class  OptimizationRemarkEmitterWrapperPass
 OptimizationRemarkEmitter legacy analysis pass. More...
 
class  OptimizationRemarkMissed
 Diagnostic information for missed-optimization remarks. More...
 
class  Optional
 
struct  OptionalOperandTraits
 OptionalOperandTraits - when the number of operands may change at runtime. More...
 
class  OptionRegistry
 Singleton class used to register debug options. More...
 
class  OptLevelChanger
 This class is used by SelectionDAGISel to temporarily override the optimization level on a per-function basis. More...
 
class  OptPassGate
 Extensions to this class implement mechanisms to disable passes and individual optimizations at compile time. More...
 
class  OrcCBindingsStack
 
class  OrderedBasicBlock
 
class  OrderedInstructions
 
class  OuterAnalysisManagerProxy
 An analysis over an "inner" IR unit that provides access to an analysis manager over a "outer" IR unit. More...
 
class  OverflowingBinaryOperator
 Utility class for integer operators which may exhibit overflow - Add, Sub, Mul, and Shl. More...
 
class  OwningArrayRef
 This is a MutableArrayRef that owns its array. More...
 
class  PackedVector
 Store a vector of values using a specific number of bits for each value. More...
 
class  PackedVectorBase
 
class  PackedVectorBase< T, BitNum, BitVectorTy, false >
 
class  PackedVectorBase< T, BitNum, BitVectorTy, true >
 
struct  pair_hash
 
struct  ParsedModuleAndIndex
 Holds the Module and ModuleSummaryIndex returned by the interfaces that parse both. More...
 
struct  ParseInstructionInfo
 
class  PartialInlinerPass
 Pass to remove unused function declarations. More...
 
class  PartiallyInlineLibCallsPass
 
class  Pass
 Pass interface - Implemented by all 'passes'. More...
 
class  PassArgFilter
 ===-------------------------------------------------------------------—===// PassArgFilter - A filter for use with PassNameFilterParser that only accepts a Pass whose Arg matches certain strings. More...
 
class  PassBuilder
 This class provides access to building LLVM's passes. More...
 
class  PassConfigImpl
 
class  PassInfo
 PassInfo class - An instance of this class exists for every pass known by the system, and can be obtained from a live Pass by calling its getPassInfo() method. More...
 
struct  PassInfoMixin
 A CRTP mix-in to automatically provide informational APIs needed for passes. More...
 
class  PassInstrumentation
 This class provides instrumentation entry points for the Pass Manager, doing calls to callbacks registered in PassInstrumentationCallbacks. More...
 
class  PassInstrumentationAnalysis
 Pseudo-analysis pass that exposes the PassInstrumentation to pass managers. More...
 
class  PassInstrumentationCallbacks
 This class manages callbacks registration, as well as provides a way for PassInstrumentation to pass control to the registered callbacks. More...
 
class  PassManager
 Manages a sequence of passes over a particular unit of IR. More...
 
class  PassManagerBuilder
 PassManagerBuilder - This class is used to set up a standard optimization sequence for languages like C and C++, allowing some APIs to customize the pass sequence in various ways. More...
 
class  PassManagerPrettyStackEntry
 PassManagerPrettyStackEntry - This is used to print informative information about what pass is running when/if a stack trace is generated. More...
 
class  PassNameParser
 
class  PassPlugin
 A loaded pass plugin. More...
 
struct  PassPluginLibraryInfo
 Information about the plugin required to load its passes. More...
 
struct  PassRegistrationListener
 PassRegistrationListener class - This class is meant to be derived from by clients that are interested in which passes get registered and unregistered at runtime (which can be because of the RegisterPass constructors being run as the program starts up, or may be because a shared object just got loaded). More...
 
class  PassRegistry
 PassRegistry - This class manages the registration and intitialization of the pass subsystem as application startup, and assists the PassManager in resolving pass dependencies. More...
 
class  PatchPointOpers
 MI-level patchpoint operands. More...
 
class  PBQPRAConstraint
 Abstract base for classes implementing PBQP register allocation constraints (e.g. More...
 
class  PBQPRAConstraintList
 PBQP register allocation constraint composer. More...
 
struct  PerFunctionMIParsingState
 
class  PGOIndirectCallPromotion
 The indirect function call promotion pass. More...
 
struct  PGOIndirectCallVisitor
 
class  PGOInstrumentationGen
 The instrumentation (profile-instr-gen) pass for IR based PGO. More...
 
class  PGOInstrumentationUse
 The profile annotation (profile-instr-use) pass for IR based PGO. More...
 
class  PGOMemOPSizeOpt
 The profile size based optimization pass for memory intrinsics. More...
 
struct  PGOOptions
 A struct capturing PGO tunables. More...
 
class  PHINode
 
class  PHITransAddr
 PHITransAddr - An address value which tracks and handles phi translation. More...
 
class  PhiValues
 Class for calculating and caching the underlying values of phis in a function. More...
 
class  PhiValuesAnalysis
 The analysis pass which yields a PhiValues. More...
 
class  PhiValuesPrinterPass
 A pass for printing the PhiValues for a function. More...
 
class  PhiValuesWrapperPass
 Wrapper pass for the legacy pass manager. More...
 
class  PhysicalRegisterUsageInfo
 
struct  PhysRegSUOper
 Record a physical register access. More...
 
struct  PluginLoader
 
class  PMDataManager
 PMDataManager provides the common place to manage the analysis data used by pass managers. More...
 
class  PMStack
 PMStack - This class implements a stack data structure of PMDataManager pointers. More...
 
class  PMTopLevelManager
 PMTopLevelManager manages LastUser info and collects common APIs used by top level pass managers. More...
 
struct  po_ext_iterator
 
class  po_iterator
 
class  po_iterator_storage
 Default po_iterator_storage implementation with an internal set object. More...
 
class  po_iterator_storage< LoopBlocksTraversal, true >
 Specialize po_iterator_storage to record postorder numbers. More...
 
class  po_iterator_storage< LoopBounds, true >
 
class  po_iterator_storage< SetType, true >
 Specialization of po_iterator_storage that references an external set. More...
 
struct  pointee_iterator
 An iterator type that allows iterating over the pointees via some other iterator. More...
 
class  pointer_iterator
 
struct  PointerAlignElem
 Layout pointer alignment element. More...
 
class  PointerEmbeddedInt
 Utility to embed an integer into a pointer-like type. More...
 
class  PointerIntPair
 PointerIntPair - This class implements a pair of a pointer and small integer. More...
 
struct  PointerIntPairInfo
 
struct  PointerLikeTypeTraits
 A traits type that is used to handle pointer types and things that are just wrappers for pointers as a uniform entity. More...
 
struct  PointerLikeTypeTraits< const T * >
 
struct  PointerLikeTypeTraits< const T >
 
struct  PointerLikeTypeTraits< PointerEmbeddedInt< IntT, Bits > >
 
struct  PointerLikeTypeTraits< PointerIntPair< PointerTy, IntBits, IntType, PtrTraits > >
 
struct  PointerLikeTypeTraits< PointerUnion3< PT1, PT2, PT3 > >
 
struct  PointerLikeTypeTraits< PointerUnion4< PT1, PT2, PT3, PT4 > >
 
struct  PointerLikeTypeTraits< PointerUnion< PT1, PT2 > >
 
struct  PointerLikeTypeTraits< ReturnT(*)(ParamTs...)>
 Provide a default specialization for function pointers that assumes 4-byte alignment. More...
 
struct  PointerLikeTypeTraits< T * >
 
struct  PointerLikeTypeTraits< uintptr_t >
 
struct  PointerLikeTypeTraits< void * >
 
class  PointerSumType
 A sum type over pointer-like types. More...
 
struct  PointerSumTypeMember
 A compile time pair of an integer tag and the pointer-like type which it indexes within a sum type. More...
 
class  PointerType
 Class to represent pointers. More...
 
class  PointerUnion
 A discriminated union of two pointer types, with the discriminator in the low bit of the pointer. More...
 
class  PointerUnion3
 A pointer union of three pointer types. More...
 
class  PointerUnion4
 A pointer union of four pointer types. More...
 
struct  PointerUnionTypeSelector
 Get a type based on whether two types are the same or not. More...
 
struct  PointerUnionTypeSelector< T, T, RET_EQ, RET_NE >
 
struct  PointerUnionTypeSelectorReturn
 
struct  PointerUnionTypeSelectorReturn< PointerUnionTypeSelector< T1, T2, RET_EQ, RET_NE > >
 
class  PointerUnionUIntTraits
 Provide PointerLikeTypeTraits for void* that is used by PointerUnion for the two template arguments. More...
 
class  PoisoningVH
 Value handle that poisons itself if the Value is deleted. More...
 
class  PooledStringPtr
 PooledStringPtr - A pointer to an interned string. More...
 
class  PopulateLoopsDFS
 Populate all loop data in a stable order during a single forward DFS. More...
 
class  PossiblyExactOperator
 A udiv or sdiv instruction, which can be marked as "exact", indicating that no bits are destroyed. More...
 
class  PostDominatorTree
 PostDominatorTree Class - Concrete subclass of DominatorTree that is used to compute the post-dominator tree. More...
 
class  PostDominatorTreeAnalysis
 Analysis pass which computes a PostDominatorTree. More...
 
class  PostDominatorTreePrinterPass
 Printer pass for the PostDominatorTree. More...
 
struct  PostDominatorTreeWrapperPass
 
class  PostGenericScheduler
 PostGenericScheduler - Interface to the scheduling algorithm used by ScheduleDAGMI. More...
 
struct  PostOrderFunctionAttrsPass
 Computes function attributes in post-order over the call graph. More...
 
class  PPC64LinuxTargetObjectFile
 PPC64LinuxTargetObjectFile - This implementation is used for 64-bit PowerPC Linux. More...
 
class  PPCCCState
 
class  PPCDispatchGroupSBHazardRecognizer
 PPCDispatchGroupSBHazardRecognizer - This class implements a scoreboard-based hazard recognizer for PPC ooo processors with dispatch-group hazards. More...
 
class  PPCELFMCAsmInfo
 
class  PPCFrameLowering
 
class  PPCFunctionInfo
 PPCFunctionInfo - This class is derived from MachineFunction private PowerPC target-specific information for each MachineFunction. More...
 
class  PPCHazardRecognizer970
 PPCHazardRecognizer970 - This class defines a finite state automata that models the dispatch logic on the PowerPC 970 (aka G5) processor. More...
 
class  PPCInstPrinter
 
class  PPCInstrInfo
 
class  PPCMCAsmInfoDarwin
 
class  PPCMCCodeEmitter
 
class  PPCMCExpr
 
class  PPCRegisterInfo
 
class  PPCSubtarget
 
class  PPCTargetLowering
 
class  PPCTargetMachine
 Common code between 32-bit and 64-bit PowerPC targets. More...
 
class  PPCTargetStreamer
 
class  PPCTTIImpl
 
class  PredicateAssume
 
class  PredicateBase
 
class  PredicateBitsetImpl
 Container class for CodeGen predicate results. More...
 
class  PredicateBranch
 
class  PredicatedScalarEvolution
 An interface layer with SCEV used to manage how we see SCEV expressions for values in the context of existing predicates. More...
 
class  PredicateInfo
 Encapsulates PredicateInfo, including all data associated with memory accesses. More...
 
class  PredicateInfoAnnotatedWriter
 An assembly annotator class to print PredicateInfo information in comments. More...
 
class  PredicateInfoPrinterLegacyPass
 
class  PredicateInfoPrinterPass
 Printer pass for PredicateInfo. More...
 
struct  PredicateInfoVerifierPass
 Verifier pass for PredicateInfo. More...
 
class  PredicateSwitch
 
class  PredicateWithCondition
 
class  PredicateWithEdge
 
class  PredIterator
 
class  PredIteratorCache
 PredIteratorCache - This class is an extremely trivial cache for predecessor iterator queries. More...
 
struct  PreISelIntrinsicLoweringPass
 
class  PreservedAnalyses
 A set of analyses that are preserved following a run of a transformation pass. More...
 
class  PressureChange
 Capture a change in pressure for a single pressure set. More...
 
class  PressureDiff
 List of PressureChanges in order of increasing, unique PSetID. More...
 
class  PressureDiffs
 Array of PressureDiffs. More...
 
class  PrettyStackTraceEntry
 PrettyStackTraceEntry - This class is used to represent a frame of the "pretty" stack trace that is dumped when a program crashes. More...
 
class  PrettyStackTraceFormat
 PrettyStackTraceFormat - This object prints a string (which may use printf-style formatting but should not contain newlines) to the stream as the stack trace when a crash occurs. More...
 
class  PrettyStackTraceProgram
 PrettyStackTraceProgram - This object prints a specified program arguments to the stream as the stack trace when a crash occurs. More...
 
class  PrettyStackTraceString
 PrettyStackTraceString - This object prints a specified string (which should not contain newlines) to the stream as the stack trace when a crash occurs. More...
 
class  Printable
 Simple wrapper around std::function<void(raw_ostream&)>. More...
 
class  PrintFunctionPass
 Pass for printing a Function as LLVM's text IR assembly. More...
 
class  PrintIRInstrumentation
 Instrumentation to print IR before/after passes. More...
 
class  PrintLoopPass
 Pass for printing a loop's contents as textual IR. More...
 
class  PrintModulePass
 Pass for printing a Module as LLVM's text IR assembly. More...
 
class  PriorityQueue
 PriorityQueue - This class behaves like std::priority_queue and provides a few additional convenience functions. More...
 
class  PriorityWorklist
 A FILO worklist that prioritizes on re-insertion without duplication. More...
 
class  ProfileSummary
 
class  ProfileSummaryAnalysis
 An analysis pass based on the new PM to deliver ProfileSummaryInfo. More...
 
class  ProfileSummaryBuilder
 
struct  ProfileSummaryEntry
 
class  ProfileSummaryInfo
 Analysis providing profile information. More...
 
class  ProfileSummaryInfoWrapperPass
 An analysis pass based on legacy pass manager to deliver ProfileSummaryInfo. More...
 
class  ProfileSummaryPrinterPass
 Printer pass that uses ProfileSummaryAnalysis. More...
 
class  ProfOStream
 
class  PromotePass
 
class  PSetIterator
 Iterate over the pressure sets affected by the given physical or virtual register. More...
 
class  PseudoSourceValue
 Special value supplied for machine level alias analysis. More...
 
class  PseudoSourceValueManager
 Manages creation of pseudo source values. More...
 
class  PtrToIntInst
 This class represents a cast from a pointer to an integer. More...
 
class  PtrToIntOperator
 
class  PtrUseVisitor
 A base class for visitors over the uses of a pointer value. More...
 
class  R600AsmPrinter
 
class  R600FrameLowering
 
class  R600InstPrinter
 
class  R600InstrInfo
 
class  R600MachineFunctionInfo
 
struct  R600RegisterInfo
 
class  R600SchedStrategy
 
class  R600Subtarget
 
class  R600TargetLowering
 
class  R600TargetMachine
 
class  R600TTIImpl
 
class  RAIIDelegateInstaller
 A simple RAII based CSEInfo installer. More...
 
struct  RandomIRBuilder
 
class  RandomNumberGenerator
 A random number generator. More...
 
struct  RangeListEntry
 A class representing a single range list entry. More...
 
class  RangeSpan
 
class  RangeSpanList
 
struct  rank
 Utility type to build an inheritance chain that makes it easy to rank overload candidates. More...
 
struct  rank< 0 >
 
class  raw_fd_ostream
 A raw_ostream that writes to a file descriptor. More...
 
class  raw_null_ostream
 A raw_ostream that discards all output. More...
 
class  raw_os_ostream
 raw_os_ostream - A raw_ostream that writes to an std::ostream. More...
 
class  raw_ostream
 This class implements an extremely fast bulk output stream that can only output to a stream. More...
 
class  raw_pwrite_stream
 An abstract base class for streams implementations that also support a pwrite operation. More...
 
class  raw_sha1_ostream
 A raw_ostream that hash the content using the sha1 algorithm. More...
 
class  raw_string_ostream
 A raw_ostream that writes to an std::string. More...
 
class  raw_svector_ostream
 A raw_ostream that writes to an SmallVector or SmallString. More...
 
class  RawInstrProfReader
 Reader for the raw instrprof binary format from runtime. More...
 
class  RCToken
 
class  ReachingDefAnalysis
 This class provides the reaching def analysis. More...
 
class  ReadyQueue
 Helpers for implementing custom MachineSchedStrategy classes. More...
 
class  ReassociatePass
 Reassociate commutative expressions. More...
 
class  Record
 
class  RecordKeeper
 
class  RecordRecTy
 '[classname]' - Type of record values that have zero or more superclasses. More...
 
class  RecordResolver
 Resolve all variables from a record except for unset variables. More...
 
struct  RecordsEntry
 RecordsEntry - Can be either a record or a foreach loop. More...
 
class  RecordStreamer
 
class  RecordVal
 
class  RecordValResolver
 Resolve all references to a specific RecordVal. More...
 
class  RecTy
 
class  RecurrenceDescriptor
 The RecurrenceDescriptor is used to identify recurrences variables in a loop. More...
 
class  Recycler
 Recycler - This class manages a linked-list of deallocated nodes and facilitates reusing deallocated memory in place of allocating new memory. More...
 
class  RecyclingAllocator
 RecyclingAllocator - This class wraps an Allocator, adding the functionality of recycling deleted objects. More...
 
class  RefCountedBase
 A CRTP mixin class that adds reference counting to a type. More...
 
class  RegAllocBase
 RegAllocBase provides the register allocation driver and interface that can be extended to add interesting heuristics. More...
 
class  RegBankSelect
 This pass implements the reg bank selector pass used in the GlobalISel pipeline. More...
 
struct  RegClassWeight
 Each TargetRegisterClass has a per register weight, and weight limit which must be less than the limits of its pressure sets. More...
 
class  Regex
 
class  Region
 
class  RegionBase
 A single entry single exit Region. More...
 
class  RegionInfo
 
class  RegionInfoAnalysis
 Analysis pass that exposes the RegionInfo for a function. More...
 
class  RegionInfoBase
 Analysis that detects all canonical Regions. More...
 
class  RegionInfoPass
 
class  RegionInfoPrinterPass
 Printer pass for the RegionInfo. More...
 
struct  RegionInfoVerifierPass
 Verifier pass for the RegionInfo. More...
 
class  RegionNode
 
class  RegionNodeBase
 A RegionNode represents a subregion or a BasicBlock that is part of a Region. More...
 
class  RegionPass
 A pass that runs on each Region in a function. More...
 
struct  RegionPressure
 RegisterPressure computed within a region of instructions delimited by TopPos and BottomPos. More...
 
struct  RegionTraits
 
struct  RegionTraits< Function >
 
struct  RegionTraits< MachineFunction >
 
class  RegisterAGBase
 RegisterAnalysisGroup - Register a Pass as a member of an analysis group. More...
 
struct  RegisterAnalysisGroup
 
class  RegisterBank
 This class implements the register bank concept. More...
 
class  RegisterBankInfo
 Holds all the information related to register banks. More...
 
class  RegisterClassInfo
 
struct  RegisterMaskPair
 
class  RegisterMaskSDNode
 
class  RegisterOperands
 List of registers defined and used by a machine instruction. More...
 
struct  RegisterPass
 RegisterPass<t> template - This template class is used to notify the system that a Pass is available for use, and registers it into the internal database maintained by the PassManager. More...
 
class  RegisterPassParser
 RegisterPassParser class - Handle the addition of new machine passes. More...
 
struct  RegisterPressure
 Base class for register pressure results. More...
 
class  RegisterRegAlloc
 RegisterRegAlloc class - Track the registration of register allocators. More...
 
class  RegisterScheduler
 
class  RegisterSDNode
 
struct  RegisterStandardPasses
 Registers a function for adding a standard set of passes. More...
 
class  Registry
 A global registry used in conjunction with static constructors to make pluggable components (like targets or garbage collectors) "just work" when linked with an executable. More...
 
struct  RegPressureDelta
 Store the effects of a change in pressure on things that MI scheduler cares about. More...
 
class  RegPressureTracker
 Track the current register pressure at some position in the instruction stream, and remember the high water mark within the region traversed. More...
 
class  RegScavenger
 
struct  RegsForValue
 RegsForValue - This struct represents the registers (physical or virtual) that a particular set of values is assigned, and the type information about the value. More...
 
struct  RegTraits
 
struct  RelocAddrEntry
 RelocAddrEntry contains relocated value and section index. More...
 
class  RelocationEntry
 RelocationEntry - used to represent relocations internally in the dynamic linker. More...
 
class  RelocationValueRef
 
class  RepeatedPass
 A utility pass template that simply runs another pass multiple times. More...
 
class  ReplaceableMetadataImpl
 Shared implementation of use-lists for replaceable metadata. More...
 
struct  ReplacementItem
 
struct  RequireAnalysisPass
 A utility pass template to force an analysis result to be available. More...
 
struct  RequireAnalysisPass< AnalysisT, LazyCallGraph::SCC, CGSCCAnalysisManager, LazyCallGraph &, CGSCCUpdateResult & >
 An explicit specialization of the require analysis template pass. More...
 
struct  RequireAnalysisPass< AnalysisT, Loop, LoopAnalysisManager, LoopStandardAnalysisResults &, LPMUpdater & >
 A partial specialization of the require analysis template pass to forward the extra parameters from a transformation's run method to the AnalysisManager's getResult. More...
 
class  ReservoirSampler
 Randomly selects an item by sampling into a set with an unknown number of elements, which may each be weighted to be more likely choices. More...
 
class  Resolver
 Interface for looking up the initializer for a variable name, used by Init::resolveReferences. More...
 
struct  resource_sort
 Sorting functions for the Available queue. More...
 
class  ResourcePriorityQueue
 
class  ResumeInst
 Resume the propagation of an exception. More...
 
class  ReturnInst
 Return a value (possibly void), from a function. More...
 
class  ReversePostOrderFunctionAttrsPass
 A pass to do RPO deduction and propagation of function attributes. More...
 
class  ReversePostOrderTraversal
 
struct  RewriteStatepointsForGC
 
class  RewriteSymbolPass
 
class  RGPassManager
 The pass manager to schedule RegionPasses. More...
 
class  RISCVAsmBackend
 
class  RISCVELFTargetObjectFile
 This implementation is used for RISCV ELF targets. More...
 
class  RISCVFrameLowering
 
class  RISCVInstPrinter
 
class  RISCVInstrInfo
 
class  RISCVMachineFunctionInfo
 RISCVMachineFunctionInfo - This class is derived from MachineFunctionInfo and contains private RISCV-specific information for each MachineFunction. More...
 
class  RISCVMCAsmInfo
 
class  RISCVMCExpr
 
struct  RISCVRegisterInfo
 
class  RISCVSubtarget
 
class  RISCVTargetAsmStreamer
 
class  RISCVTargetELFStreamer
 
class  RISCVTargetLowering
 
class  RISCVTargetMachine
 
class  RISCVTargetStreamer
 
class  RNSuccIterator
 Hierarchical RegionNode successor iterator. More...
 
class  RNSuccIterator< FlatIt< NodeRef >, BlockT, RegionT >
 Flat RegionNode iterator. More...
 
struct  RoundUpToPowerOfTwo
 RoundUpToPowerOfTwo - This is a helper template that rounds N up to the next power of two (which means N itself if N is already a power of two). More...
 
struct  RoundUpToPowerOfTwoH
 RoundUpToPowerOfTwoH - If N is not a power of two, increase it. More...
 
struct  RoundUpToPowerOfTwoH< N, false >
 
class  RTDyldMemoryManager
 
class  RuntimeDyld
 
class  RuntimeDyldChecker
 RuntimeDyld invariant checker for verifying that RuntimeDyld has correctly applied relocations. More...
 
class  RuntimeDyldCheckerExprEval
 
class  RuntimeDyldCheckerImpl
 
class  RuntimeDyldCOFF
 
class  RuntimeDyldCOFFI386
 
class  RuntimeDyldCOFFThumb
 
class  RuntimeDyldCOFFX86_64
 
class  RuntimeDyldELF
 
class  RuntimeDyldELFMips
 
class  RuntimeDyldError
 Base class for errors originating in RuntimeDyld, e.g. More...
 
class  RuntimeDyldImpl
 
class  RuntimeDyldMachO
 
class  RuntimeDyldMachOAArch64
 
class  RuntimeDyldMachOARM
 
class  RuntimeDyldMachOCRTPBase
 RuntimeDyldMachOTarget - Templated base class for generic MachO linker algorithms and data structures. More...
 
class  RuntimeDyldMachOI386
 
class  RuntimeDyldMachOX86_64
 
class  RuntimePointerChecking
 Holds information about the memory runtime legality checks to verify that a group of pointers do not overlap. More...
 
struct  SameType
 
class  SampleProfileLoaderPass
 The sample profiler data loader pass. More...
 
class  SampleProfileSummaryBuilder
 
struct  SanitizerCoverageOptions
 
struct  SanitizerStatReport
 
struct  SaveAndRestore
 A utility class that uses RAII to save and restore the value of a variable. More...
 
class  ScalarEvolution
 The main scalar evolution driver. More...
 
class  ScalarEvolutionAnalysis
 Analysis pass that exposes the ScalarEvolution for a function. More...
 
class  ScalarEvolutionPrinterPass
 Printer pass for the ScalarEvolutionAnalysis results. More...
 
class  ScalarEvolutionWrapperPass
 
class  ScalarizerPass
 
class  ScaledNumber
 Simple representation of a scaled number. More...
 
class  ScaledNumberBase
 
class  scc_iterator
 Enumerate the SCCs of a directed graph in reverse topological order of the SCC DAG. More...
 
class  SCCPPass
 This pass performs function-level constant propagation and merging. More...
 
class  SCEV
 This class represents an analyzed expression in the program. More...
 
class  SCEVAA
 Analysis pass providing a never-invalidated alias analysis result. More...
 
class  SCEVAAResult
 A simple alias analysis implementation that uses ScalarEvolution to answer queries. More...
 
class  SCEVAAWrapperPass
 Legacy wrapper pass to provide the SCEVAAResult object. More...
 
class  SCEVAddExpr
 This node represents an addition of some number of SCEVs. More...
 
class  SCEVAddRecExpr
 This node represents a polynomial recurrence on the trip count of the specified loop. More...
 
class  SCEVCastExpr
 This is the base class for unary cast operator classes. More...
 
class  SCEVCommutativeExpr
 This node is the base class for n'ary commutative operators. More...
 
class  SCEVConstant
 This class represents a constant integer value. More...
 
struct  SCEVCouldNotCompute
 An object of this class is returned by queries that could not be answered. More...
 
class  SCEVEqualPredicate
 This class represents an assumption that two SCEV expressions are equal, and this can be checked at run-time. More...
 
class  SCEVExpander
 This class uses information about analyze scalars to rewrite expressions in canonical form. More...
 
class  SCEVLoopAddRecRewriter
 The SCEVLoopAddRecRewriter takes a scalar evolution expression and applies the Map (Loop -> SCEV) to all AddRecExprs. More...
 
class  SCEVMulExpr
 This node represents multiplication of some number of SCEVs. More...
 
class  SCEVNAryExpr
 This node is a base class providing common functionality for n'ary operators. More...
 
class  SCEVParameterRewriter
 The SCEVParameterRewriter takes a scalar evolution expression and updates the SCEVUnknown components following the Map (Value -> Value). More...
 
class  SCEVPredicate
 This class represents an assumption made using SCEV expressions which can be checked at run-time. More...
 
class  SCEVRewriteVisitor
 This visitor recursively visits a SCEV expression and re-writes it. More...
 
class  SCEVSignExtendExpr
 This class represents a sign extension of a small integer value to a larger integer value. More...
 
class  SCEVSMaxExpr
 This class represents a signed maximum selection. More...
 
class  SCEVTraversal
 Visit all nodes in the expression tree using worklist traversal. More...
 
class  SCEVTruncateExpr
 This class represents a truncation of an integer value to a smaller integer value. More...
 
class  SCEVUDivExpr
 This class represents a binary unsigned division operation. More...
 
class  SCEVUMaxExpr
 This class represents an unsigned maximum selection. More...
 
class  SCEVUnionPredicate
 This class represents a composition of other SCEV predicates, and is the class that most clients will interact with. More...
 
class  SCEVUnknown
 This means that we are dealing with an entirely unknown SCEV value, and only represent it as its LLVM Value. More...
 
struct  SCEVVisitor
 This class defines a simple visitor class that may be used for various SCEV analysis purposes. More...
 
class  SCEVWrapPredicate
 This class represents an assumption made on an AddRec expression. More...
 
class  SCEVZeroExtendExpr
 This class represents a zero extension of a small integer value to a larger integer value. More...
 
class  SchedBoundary
 Each Scheduling boundary is associated with ready queues. More...
 
class  SchedDFSImpl
 Internal state used to compute SchedDFSResult. More...
 
class  SchedDFSResult
 Compute the values of each DAG node for various metrics during DFS. More...
 
struct  SchedRemainder
 Summarize the unscheduled region. More...
 
class  ScheduleDAG
 
class  ScheduleDAGInstrs
 A ScheduleDAG for scheduling lists of MachineInstr. More...
 
class  ScheduleDAGMI
 ScheduleDAGMI is an implementation of ScheduleDAGInstrs that simply schedules machine instructions according to the given MachineSchedStrategy without much extra book-keeping. More...
 
class  ScheduleDAGMILive
 ScheduleDAGMILive is an implementation of ScheduleDAGInstrs that schedules machine instructions while updating LiveIntervals and tracking regpressure. More...
 
class  ScheduleDAGMutation
 Mutate the DAG as a postpass after normal DAG building. More...
 
class  ScheduleDAGSDNodes
 ScheduleDAGSDNodes - A ScheduleDAG for scheduling SDNode-based DAGs. More...
 
class  ScheduleDAGTopologicalSort
 This class can compute a topological ordering for SUnits and provides methods for dynamically updating the ordering as new edges are added. More...
 
class  ScheduleHazardRecognizer
 HazardRecognizer - This determines whether or not an instruction can be issued this cycle, and whether or not a noop needs to be inserted to handle the hazard. More...
 
class  SchedulingPriorityQueue
 This interface is used to plug different priorities computation algorithms into the list scheduler. More...
 
struct  ScopedFatalErrorHandler
 ScopedFatalErrorHandler - This is a simple helper class which just calls install_fatal_error_handler in its constructor and remove_fatal_error_handler in its destructor. More...
 
class  ScopedHandle
 
class  ScopedHashTable
 
class  ScopedHashTableIterator
 
class  ScopedHashTableScope
 
class  ScopedHashTableVal
 
class  ScopedNoAliasAA
 Analysis pass providing a never-invalidated alias analysis result. More...
 
class  ScopedNoAliasAAResult
 A simple AA result which uses scoped-noalias metadata to answer queries. More...
 
class  ScopedNoAliasAAWrapperPass
 Legacy wrapper pass to provide the ScopedNoAliasAAResult object. More...
 
class  ScopedPrinter
 
class  ScoreboardHazardRecognizer
 
class  SDDbgInfo
 Keeps track of dbg_value information through SDISel. More...
 
class  SDDbgLabel
 Holds the information from a dbg_label node through SDISel. More...
 
class  SDDbgValue
 Holds the information from a dbg_value node through SDISel. More...
 
class  SDep
 Scheduling dependency. More...
 
class  SDivOperator
 
class  SDLoc
 Wrapper class for IR location info (IR ordering and DebugLoc) to be passed into SDNode creation functions. More...
 
class  SDNode
 Represents one node in the SelectionDAG. More...
 
struct  SDNodeFlags
 These are IR-level optimization flags that may be propagated to SDNodes. More...
 
class  SDNodeIterator
 
class  SDUse
 Represents a use of a SDNode. More...
 
class  SDValue
 Unlike LLVM values, Selection DAG nodes may return multiple values as the result of a computation. More...
 
struct  SDVTList
 This represents a list of ValueType's that has been intern'd by a SelectionDAG. More...
 
class  SDVTListNode
 
struct  SectionedAddress
 
class  SectionEntry
 SectionEntry - represents a section emitted into memory by the dynamic linker. More...
 
class  SectionKind
 SectionKind - This is a simple POD value that classifies the properties of a section. More...
 
class  SectionMemoryManager
 This is a simple memory manager which implements the methods called by the RuntimeDyld class to allocate memory for section-based loading of objects, usually those generated by the MCJIT execution engine. More...
 
struct  SectionName
 
struct  SEHHandler
 
struct  SEHUnwindMapEntry
 Similar to CxxUnwindMapEntry, but supports SEH filters. More...
 
class  SelectConstantExpr
 SelectConstantExpr - This class is private to Constants.cpp, and is used behind the scenes to implement select constant exprs. More...
 
class  SelectInst
 This class represents the LLVM 'select' instruction. More...
 
class  SelectionDAG
 This is used to represent a portion of an LLVM function in a low-level Data Dependence DAG representation suitable for instruction selection. More...
 
class  SelectionDAGBuilder
 SelectionDAGBuilder - This is the common target-independent lowering implementation that is parameterized by a TargetLowering object. More...
 
class  SelectionDAGISel
 SelectionDAGISel - This is the common base class used for SelectionDAG-based pattern-matching instruction selectors. More...
 
class  SelectionDAGTargetInfo
 Targets can subclass this to parameterize the SelectionDAG lowering and instruction selection process. More...
 
struct  SelectPatternResult
 
class  SequentialType
 This is the superclass of the array and vector type classes. More...
 
class  SetTheory
 
class  SetVector
 A vector that has set insertion semantics. More...
 
class  SExtInst
 This class represents a sign extension of integer types. More...
 
class  SHA1
 A class that wrap the SHA1 algorithm. More...
 
class  ShadowResolver
 Delegate resolving to a sub-resolver, but shadow some variable names. More...
 
class  ShlOperator
 
class  ShuffleVectorConstantExpr
 ShuffleVectorConstantExpr - This class is private to Constants.cpp, and is used behind the scenes to implement shufflevector constant exprs. More...
 
class  ShuffleVectorInst
 This instruction constructs a fixed permutation of two input vectors. More...
 
class  ShuffleVectorSDNode
 This SDNode is used to implement the code generator support for the llvm IR shufflevector instruction. More...
 
class  SIFrameLowering
 
class  SIInstrInfo
 
class  SIMachineFunctionInfo
 This class keeps track of the SPI_SP_INPUT_ADDR config register, which tells the hardware which interpolation parameters to load. More...
 
class  simple_ilist
 A simple intrusive list implementation. More...
 
class  SimpleBitstreamCursor
 This represents a position within a bitstream. More...
 
class  SimpleLoopSafetyInfo
 Simple and conservative implementation of LoopSafetyInfo that can give false-positive answers to its queries in order to avoid complicated analysis. More...
 
class  SimpleLoopUnswitchPass
 This pass transforms loops that contain branches or switches on loop- invariant conditions to have multiple loops. More...
 
class  SimpleRegistryEntry
 A simple registry entry which provides only a name, description, and no-argument constructor. More...
 
struct  simplify_type
 
struct  simplify_type< const From >
 
struct  simplify_type< const ilist_iterator< OptionsT, false, IsConst > >
 
struct  simplify_type< const IntrusiveRefCntPtr< T > >
 
struct  simplify_type< const MDOperand >
 
struct  simplify_type< const SDValue >
 
struct  simplify_type< const TrackingMDRef >
 
struct  simplify_type< const TypedDINodeRef< T > >
 
struct  simplify_type< const TypedTrackingMDRef< T > >
 
struct  simplify_type< const Use >
 
struct  simplify_type< const WeakTrackingVH >
 
struct  simplify_type< const WeakVH >
 
struct  simplify_type< ilist_iterator< OptionsT, false, IsConst > >
 Allow ilist_iterators to convert into pointers to a node automatically when used by the dyn_cast, cast, isa mechanisms... More...
 
struct  simplify_type< IntrusiveRefCntPtr< T > >
 
struct  simplify_type< MDOperand >
 
struct  simplify_type< SDUse >
 simplify_type specializations - Allow casting operators to work directly on SDValues as if they were SDNode*'s. More...
 
struct  simplify_type< SDValue >
 Allow casting operators to work directly on SDValues as if they were SDNode*'s. More...
 
struct  simplify_type< TrackingMDRef >
 
struct  simplify_type< TypedDINodeRef< T > >
 
struct  simplify_type< TypedTrackingMDRef< T > >
 
struct  simplify_type< Use >
 Allow clients to treat uses just like values when using casting operators. More...
 
struct  simplify_type< User::const_op_iterator >
 
struct  simplify_type< User::op_iterator >
 
struct  simplify_type< WeakTrackingVH >
 
struct  simplify_type< WeakVH >
 
struct  SimplifyCFGOptions
 A set of parameters used to control the transforms in the SimplifyCFG pass. More...
 
class  SimplifyCFGPass
 A pass to simplify and canonicalize the CFG of a function. More...
 
struct  SimplifyQuery
 
class  SinkingPass
 Move instructions into successor blocks when possible. More...
 
struct  SIProgramInfo
 Track resource usage for kernels / entry functions. More...
 
class  SIRegisterInfo
 
class  SIScheduleBlock
 
class  SIScheduleBlockCreator
 
struct  SIScheduleBlockResult
 
struct  SIScheduleBlocks
 
class  SIScheduleBlockScheduler
 
class  SIScheduleDAGMI
 
class  SIScheduler
 
struct  SISchedulerCandidate
 
class  SITargetLowering
 
class  SIToFPInst
 This class represents a cast from signed integer to floating point. More...
 
class  SlotIndex
 SlotIndex - An opaque wrapper around machine indexes. More...
 
class  SlotIndexes
 SlotIndexes pass. More...
 
struct  SlotMapping
 This struct contains the mappings from the slot numbers to unnamed metadata nodes, global values and types. More...
 
class  SlotTracker
 This class provides computation of slot numbers for LLVM Assembly writing. More...
 
struct  SLPVectorizerPass
 
class  SmallBitVector
 This is a 'bitvector' (really, a variable-sized bit array), optimized for the case when the array is small. More...
 
class  SmallDenseMap
 
class  SmallDenseSet
 Implements a dense probed hash-table based set with some number of buckets stored inline. More...
 
struct  SmallMapVector
 A MapVector that performs no allocations if smaller than a certain size. More...
 
class  SmallPriorityWorklist
 A version of PriorityWorklist that selects small size optimized data structures for the vector and map. More...
 
class  SmallPtrSet
 SmallPtrSet - This class implements a set which is optimized for holding SmallSize or less elements. More...
 
class  SmallPtrSetImpl
 A templated base class for SmallPtrSet which provides the typesafe interface that is common across all small sizes. More...
 
class  SmallPtrSetImplBase
 SmallPtrSetImplBase - This is the common code shared among all the SmallPtrSet<>'s, which is almost everything. More...
 
class  SmallPtrSetIterator
 SmallPtrSetIterator - This implements a const_iterator for SmallPtrSet. More...
 
class  SmallPtrSetIteratorImpl
 SmallPtrSetIteratorImpl - This is the common base class shared between all instances of SmallPtrSetIterator. More...
 
class  SmallSet
 SmallSet - This maintains a set of unique values, optimizing for the case when the set is small (less than N). More...
 
class  SmallSet< PointeeType *, N >
 If this set is of pointer values, transparently switch over to using SmallPtrSet for performance. More...
 
class  SmallSetIterator
 SmallSetIterator - This class implements a const_iterator for SmallSet by delegating to the underlying SmallVector or Set iterators. More...
 
class  SmallSetVector
 A SetVector that performs no allocations if smaller than a certain size. More...
 
class  SmallString
 SmallString - A SmallString is just a SmallVector with methods and accessors that make it work better as a string (e.g. More...
 
class  SmallVector
 This is a 'vector' (really, a variable-sized array), optimized for the case when the array is small. More...
 
struct  SmallVectorAlignmentAndSize
 Figure out the offset of the first element. More...
 
class  SmallVectorBase
 This is all the non-templated stuff common to all SmallVectors. More...
 
class  SmallVectorImpl
 This class consists of common code factored out of the SmallVector class to reduce code duplication based on the SmallVector 'N' template parameter. More...
 
class  SmallVectorMemoryBuffer
 SmallVector-backed MemoryBuffer instance. More...
 
struct  SmallVectorStorage
 Storage for the SmallVector elements. More...
 
struct  SmallVectorStorage< T, 0 >
 We need the storage to be properly aligned even for small-size of 0 so that the pointer math in SmallVectorTemplateCommon::getFirstEl() is well-defined. More...
 
class  SmallVectorTemplateBase
 SmallVectorTemplateBase<isPodLike = false> - This is where we put method implementations that are designed to work with non-POD-like T's. More...
 
class  SmallVectorTemplateBase< T, true >
 SmallVectorTemplateBase<isPodLike = true> - This is where we put method implementations that are designed to work with POD-like T's. More...
 
class  SmallVectorTemplateCommon
 This is the part of SmallVectorTemplateBase which does not depend on whether the type T is a POD. More...
 
class  SMDiagnostic
 Instances of this class encapsulate one diagnostic report, allowing printing to a raw_ostream as a caret diagnostic. More...
 
class  SMFixIt
 Represents a single fixit, a replacement of one range of text with another. More...
 
class  SMLoc
 Represents a location in source code. More...
 
class  SMRange
 Represents a range in source code. More...
 
class  SMSchedule
 This class represents the scheduled code. More...
 
class  SoftInstrProfErrors
 
class  SourceMgr
 This owns the files read by a parser, handles include stacks, and handles diagnostic wrangling. More...
 
class  SparcELFMCAsmInfo
 
class  SparcELFTargetObjectFile
 
class  SparcelTargetMachine
 
class  SparcFrameLowering
 
class  SparcInstPrinter
 
class  SparcInstrInfo
 
class  SparcMachineFunctionInfo
 
class  SparcMCExpr
 
struct  SparcRegisterInfo
 
class  SparcSubtarget
 
class  SparcTargetAsmStreamer
 
class  SparcTargetELFStreamer
 
class  SparcTargetLowering
 
class  SparcTargetMachine
 
class  SparcTargetStreamer
 
class  SparcV8TargetMachine
 Sparc 32-bit target machine. More...
 
class  SparcV9TargetMachine
 Sparc 64-bit target machine. More...
 
class  SparseBitVector
 
struct  SparseBitVectorElement
 SparseBitVector is an implementation of a bitvector that is sparse by only storing the elements that have non-zero bits set. More...
 
class  SparseMultiSet
 Fast multiset implementation for objects that can be identified by small unsigned keys. More...
 
class  SparseSet
 SparseSet - Fast set implmentation for objects that can be identified by small unsigned keys. More...
 
struct  SparseSetValFunctor
 SparseSetValFunctor - Helper class for selecting SparseSetValTraits. More...
 
struct  SparseSetValFunctor< KeyT, KeyT, KeyFunctorT >
 SparseSetValFunctor<KeyT, KeyT> - Helper class for the common case of identity key/value sets. More...
 
struct  SparseSetValTraits
 SparseSetValTraits - Objects in a SparseSet are identified by keys that can be uniquely converted to a small integer less than the set's universe. More...
 
class  SparseSolver
 SparseSolver - This class is a general purpose solver for Sparse Conditional Propagation with a programmable lattice function. More...
 
class  SpecialCaseList
 
class  SpecificBumpPtrAllocator
 A BumpPtrAllocator that allows only elements of a specific type to be allocated. More...
 
struct  SpeculateAroundPHIsPass
 This pass handles simple speculating of instructions around PHIs when doing so is profitable for a particular target despite duplicated instructions. More...
 
class  SpeculativeExecutionPass
 
class  Spiller
 Spiller interface. More...
 
class  SpillPlacement
 
class  SplitAnalysis
 SplitAnalysis - Analyze a LiveInterval, looking for live range splitting opportunities. More...
 
class  SplitEditor
 SplitEditor - Edit machine code and LiveIntervals for live range splitting. More...
 
class  SrcOp
 
class  SrcValueSDNode
 An SDNode that holds an arbitrary LLVM IR Value. More...
 
class  SROA
 An optimization pass providing Scalar Replacement of Aggregates. More...
 
class  SSAUpdater
 Helper class for SSA formation on a set of values defined in multiple blocks. More...
 
class  SSAUpdaterBulk
 Helper class for SSA formation on a set of values defined in multiple blocks. More...
 
class  SSAUpdaterImpl
 
class  SSAUpdaterTraits
 
class  SSAUpdaterTraits< MachineSSAUpdater >
 
class  SSAUpdaterTraits< SSAUpdater >
 
class  StackMapOpers
 MI-level stackmap operands. More...
 
class  StackMaps
 
class  StackMapV2Parser
 
class  StackProtector
 
class  StackSafetyAnalysis
 StackSafetyInfo wrapper for the new pass manager. More...
 
class  StackSafetyGlobalAnalysis
 This pass performs the global (interprocedural) stack safety analysis (new pass manager). More...
 
class  StackSafetyGlobalInfoWrapperPass
 This pass performs the global (interprocedural) stack safety analysis (legacy pass manager). More...
 
class  StackSafetyGlobalPrinterPass
 Printer pass for the StackSafetyGlobalAnalysis results. More...
 
class  StackSafetyInfo
 Interface to access stack safety analysis results for single function. More...
 
class  StackSafetyInfoWrapperPass
 StackSafetyInfo wrapper for the legacy pass manager. More...
 
class  StackSafetyPrinterPass
 Printer pass for the StackSafetyAnalysis results. More...
 
class  StandardInstrumentations
 This class provides an interface to register all the standard pass instrumentations and manages their state (if any). More...
 
class  Statepoint
 A specialization of it's base class for read-write access to a gc.statepoint. More...
 
class  StatepointBase
 Analogous to CallSiteBase, this provides most of the actual functionality for Statepoint and ImmutableStatepoint. More...
 
struct  StatepointDirectives
 Call sites that get wrapped by a gc.statepoint (currently only in RewriteStatepointsForGC and potentially in other passes in the future) can have attributes that describe properties of gc.statepoint call they will be eventually be wrapped in. More...
 
class  StatepointLoweringState
 This class tracks both per-statepoint and per-selectiondag information. More...
 
class  StatepointOpers
 MI-level Statepoint operands. More...
 
class  Statistic
 
class  StoreInfo
 
class  StoreInst
 An instruction for storing to memory. More...
 
class  StoreSDNode
 This class is used to represent ISD::STORE nodes. More...
 
class  StringAttributeImpl
 
class  StringError
 This class wraps a string in an Error. More...
 
class  StringInit
 "foo" - Represent an initialization by a string value. More...
 
class  StringLiteral
 A wrapper around a string literal that serves as a proxy for constructing global tables of StringRefs with the length computed at compile time. More...
 
class  StringMap
 StringMap - This is an unconventional map that is specialized for handling keys that are "strings", which are basically ranges of bytes. More...
 
class  StringMapConstIterator
 
class  StringMapEntry
 StringMapEntry - This is used to represent one value that is inserted into a StringMap. More...
 
class  StringMapEntryBase
 StringMapEntryBase - Shared base class of StringMapEntry instances. More...
 
class  StringMapImpl
 StringMapImpl - This is the base class of StringMap that is shared among all of its instantiations. More...
 
class  StringMapIterator
 
class  StringMapIterBase
 
class  StringMapKeyIterator
 
class  StringMatcher
 Given a list of strings and code to execute when they match, output a simple switch tree to classify the input string. More...
 
class  StringPool
 StringPool - An interned string pool. More...
 
class  StringRecTy
 'string' - Represent an string value More...
 
class  StringRef
 StringRef - Represent a constant reference to a string, i.e. More...
 
class  StringSaver
 Saves strings in the provided stable storage and returns a StringRef with a stable character pointer. More...
 
class  StringSet
 StringSet - A wrapper for StringMap that provides set-like functionality. More...
 
class  StringSwitch
 A switch()-like statement whose cases are string literals. More...
 
class  StringTableBuilder
 Utility for building string tables with deduplicated suffixes. More...
 
class  StringToOffsetTable
 StringToOffsetTable - This class uniques a bunch of nul-terminated strings and keeps track of their offset in a massive contiguous string allocation. More...
 
struct  StripDeadPrototypesPass
 Pass to remove unused function declarations. More...
 
struct  StrOffsetsContributionDescriptor
 Represents base address of the CU. More...
 
class  StructLayout
 Used to lazily calculate structure layout information for a target machine, based on the DataLayout structure. More...
 
class  StructType
 Class to represent struct types. More...
 
struct  SubClassReference
 
struct  SubMultiClassReference
 
class  SubOperator
 
struct  SubtargetFeatureKV
 Used to provide key value pairs for feature and CPU bit flags. More...
 
class  SubtargetFeatures
 Manages the enabling and disabling of subtarget specific features. More...
 
struct  SubtargetInfoKV
 Used to provide key value pairs for CPU and arbitrary pointers. More...
 
class  SuccIterator
 
class  SUnit
 Scheduling unit. This is a node in the scheduling DAG. More...
 
class  SUnitIterator
 
class  SuperRegClassIterator
 
class  SwingSchedulerDAG
 This class builds the dependence graph for the instructions in a loop, and attempts to schedule the instructions using the SMS algorithm. More...
 
class  SwitchInst
 Multiway switch. More...
 
struct  SymbolCU
 Helper used to pair up a symbol and its DWARF compile unit. More...
 
class  SymbolRemappingParseError
 
class  SymbolRemappingReader
 Reader for symbol remapping files. More...
 
class  SymbolTableEntry
 Symbol info for RuntimeDyld. More...
 
class  SymbolTableList
 List that automatically updates parent links and symbol tables. More...
 
struct  SymbolTableListParentType
 Template metafunction to get the parent type for a symbol table list. More...
 
class  SymbolTableListTraits
 
class  SyncDependenceAnalysis
 Relates points of divergent control to join points in reducible CFGs. More...
 
class  SyntheticCountsPropagation
 
class  SyntheticCountsUtils
 Class with methods to propagate synthetic entry counts. More...
 
struct  SysAlias
 
struct  SysAliasReg
 
class  SystemZAsmPrinter
 
class  SystemZCCState
 
class  SystemZConstantPoolValue
 A SystemZ-specific constant pool value. More...
 
class  SystemZFrameLowering
 
class  SystemZHazardRecognizer
 SystemZHazardRecognizer maintains the state for one MBB during scheduling. More...
 
class  SystemZInstPrinter
 
class  SystemZInstrInfo
 
class  SystemZMachineFunctionInfo
 
class  SystemZMCAsmInfo
 
class  SystemZMCInstLower
 
class  SystemZPostRASchedStrategy
 A MachineSchedStrategy implementation for SystemZ post RA scheduling. More...
 
struct  SystemZRegisterInfo
 
class  SystemZSelectionDAGInfo
 
class  SystemZSubtarget
 
class  SystemZTargetLowering
 
class  SystemZTargetMachine
 
class  SystemZTTIImpl
 
struct  TailCallElimPass
 
class  TailDuplicator
 Utility class to perform tail duplication. More...
 
class  Target
 Target - Wrapper for Target specific information. More...
 
class  TargetFolder
 TargetFolder - Create constants with target dependent folding. More...
 
class  TargetFrameLowering
 Information about stack frame layout on the target. More...
 
class  TargetIndexSDNode
 Completely target-dependent object reference. More...
 
class  TargetInstrInfo
 TargetInstrInfo - Interface to description of machine instruction set. More...
 
class  TargetIntrinsicInfo
 TargetIntrinsicInfo - Interface to description of machine instruction set. More...
 
class  TargetIRAnalysis
 Analysis pass providing the TargetTransformInfo. More...
 
class  TargetLibraryAnalysis
 Analysis pass providing the TargetLibraryInfo. More...
 
class  TargetLibraryInfo
 Provides information about what library functions are available for the current target. More...
 
class  TargetLibraryInfoImpl
 Implementation of the target library information. More...
 
class  TargetLibraryInfoWrapperPass
 
class  TargetLowering
 This class defines information used to lower LLVM code to legal SelectionDAG operators that the target instruction selector can accept natively. More...
 
class  TargetLoweringBase
 This base class for TargetLowering contains the SelectionDAG-independent parts that can be used from the rest of CodeGen. More...
 
class  TargetLoweringObjectFile
 
class  TargetLoweringObjectFileCOFF
 
class  TargetLoweringObjectFileELF
 
class  TargetLoweringObjectFileMachO
 
class  TargetLoweringObjectFileWasm
 
class  TargetMachine
 Primary interface to the complete machine description for the target machine. More...
 
struct  TargetMachineBuilder
 Helper to gather options relevant to the target machine creation. More...
 
class  TargetOptions
 
class  TargetPassConfig
 Target-Independent Code Generator Pass Configuration Options. More...
 
class  TargetRegisterClass
 
class  TargetRegisterInfo
 TargetRegisterInfo base class - We assume that the target defines a static array of TargetRegisterDesc objects that represent all of the machine registers that the target has. More...
 
struct  TargetRegisterInfoDesc
 Extra information, not in MCRegisterDesc, about registers. More...
 
struct  TargetRegistry
 TargetRegistry - Generic interface to target specific features. More...
 
class  TargetSchedModel
 Provide an instruction scheduling machine model to CodeGen passes. More...
 
class  TargetSubtargetInfo
 TargetSubtargetInfo - Generic base class for all target subtargets. More...
 
class  TargetTransformInfo
 This pass provides access to the codegen interfaces that are needed for IR-level transformations. More...
 
class  TargetTransformInfoImplBase
 Base class for use as a mix-in that aids implementing a TargetTransformInfo-compatible class. More...
 
class  TargetTransformInfoImplCRTPBase
 CRTP base class for use as a mix-in that aids implementing a TargetTransformInfo-compatible class. More...
 
class  TargetTransformInfoWrapperPass
 Wrapper pass for TargetTransformInfo. More...
 
class  TarWriter
 
class  TaskQueue
 TaskQueue executes serialized work on a user-defined Thread Pool. More...
 
class  TBAAVerifier
 Verify that the TBAA Metadatas are valid. More...
 
struct  TempMDNodeDeleter
 
class  TernOpInit
 !op (X, Y, Z) - Combine two inits. More...
 
class  TextInstrProfReader
 Reader for the simple text based instrprof format. More...
 
class  TGLexer
 TGLexer - TableGen Lexer class. More...
 
class  TGParser
 
class  ThinLTOBitcodeWriterPass
 
class  ThinLTOBuffer
 Wrapper around MemoryBufferRef, owning the identifier. More...
 
class  ThinLTOCodeGenerator
 This class define an interface similar to the LTOCodeGenerator, but adapted for ThinLTO processing. More...
 
class  ThreadPool
 A ThreadPool for asynchronous parallel execution on a defined number of threads. More...
 
class  ThreadSafeRefCountedBase
 A thread-safe version of RefCountedBase. More...
 
struct  ThreadSanitizerPass
 A function pass for tsan instrumentation. More...
 
class  Thumb1FrameLowering
 
class  Thumb1InstrInfo
 
class  Thumb2InstrInfo
 
struct  ThumbRegisterInfo
 
class  TimePassesHandler
 This class implements -time-passes functionality for new pass manager. More...
 
class  Timer
 This class is used to track the amount of time spent between invocations of its startTimer()/stopTimer() methods. More...
 
class  TimeRecord
 
class  TimeRegion
 The TimeRegion class is used as a helper class to call the startTimer() and stopTimer() methods of the Timer class. More...
 
class  TimerGroup
 The TimerGroup class is used to group together related timers into a single report that is printed when the TimerGroup is destroyed. More...
 
class  TinyPtrVector
 TinyPtrVector - This class is specialized for cases where there are normally 0 or 1 element in a vector, but is general enough to go beyond that when required. More...
 
class  ToolOutputFile
 This class contains a raw_fd_ostream and adds a few extra features commonly needed for compiler-like tool output files: More...
 
class  Trace
 
class  TrackingMDRef
 Tracking metadata reference. More...
 
class  TrackingVH
 Value handle that tracks a Value across RAUW. More...
 
class  TrackUnresolvedResolver
 (Optionally) delegate resolving to a sub-resolver, and keep track whether there were unresolved references. More...
 
class  TrailingObjects
 See the file comment for details on the usage of the TrailingObjects type. More...
 
class  TrigramIndex
 
class  Triple
 Triple - Helper class for working with autoconf configuration names. More...
 
class  TruncInst
 This class represents a truncation of integer types. More...
 
class  TruncInstCombine
 
class  TruncSStoreSDNode
 
class  TruncUSStoreSDNode
 
class  Twine
 Twine - A lightweight data structure for efficiently representing the concatenation of temporary values as strings. More...
 
class  Type
 The instances of the Type class are immutable: once they are created, they are never changed. More...
 
class  TypeBasedAA
 Analysis pass providing a never-invalidated alias analysis result. More...
 
class  TypeBasedAAResult
 A simple AA result that uses TBAA metadata to answer queries. More...
 
class  TypeBasedAAWrapperPass
 Legacy wrapper pass to provide the TypeBasedAAResult object. More...
 
struct  TypeConversionCostTblEntry
 Type Conversion Cost Table. More...
 
class  TypedDINodeRef
 Holds a subclass of DINode. More...
 
class  TypedInit
 This is the common super-class of types that have a specific, explicit, type. More...
 
class  TypedMDOperandIterator
 Typed iterator through MDNode operands. More...
 
class  TypedTrackingMDRef
 Typed tracking ref. More...
 
class  TypeFinder
 TypeFinder - Walk over a module, identifying all of the types that are used by the module. More...
 
struct  TypeIdSummary
 
struct  TypeTestResolution
 
class  UDivOperator
 
struct  Uint24
 An auxiliary type to facilitate extraction of 3-byte entities. More...
 
class  UIToFPInst
 This class represents a cast unsigned integer to floating point. More...
 
class  UnaryConstantExpr
 UnaryConstantExpr - This class is private to Constants.cpp, and is used behind the scenes to implement unary constant exprs. More...
 
class  UnaryInstruction
 
class  UnaryOperator
 a unary instruction More...
 
class  UndefValue
 'undef' values are things that do not have specified contents. More...
 
struct  UnderlyingObject
 
struct  UnifyFunctionExitNodes
 
class  unique_function
 
class  unique_function< ReturnT(ParamTs...)>
 
class  unique_lock
 A pared-down imitation of std::unique_lock from C++11. More...
 
class  UniqueMachineInstr
 A class that wraps MachineInstrs and derives from FoldingSetNode in order to be uniqued in a CSEMap. More...
 
class  UniqueStringSaver
 Saves strings in the provided stable storage and returns a StringRef with a stable character pointer. More...
 
class  UniqueVector
 UniqueVector - This class produces a sequential ID number (base 1) for each unique entry that is added. More...
 
class  UnOpInit
 !op (X) - Transform an init. More...
 
class  UnreachableBlockElimPass
 
class  UnreachableInst
 This function has undefined behavior. More...
 
class  UnrolledInstAnalyzer
 
class  UnsetInit
 '?' - Represents an uninitialized value More...
 
class  UnwindOpcodeAssembler
 
class  upward_defs_iterator
 Provide an iterator that walks defs, giving both the memory access, and the current pointer location, updating the pointer location as it changes due to phi node translation. More...
 
class  Use
 A Use represents the edge between a Value definition and its users. More...
 
struct  UseListOrder
 Structure to hold a use-list order. More...
 
class  User
 
class  VAArgInst
 This class represents the va_arg llvm instruction, which returns an argument of the specified type given a va_list and increments that list. More...
 
class  VACopyInst
 This represents the llvm.va_copy intrinsic. More...
 
class  VAEndInst
 This represents the llvm.va_end intrinsic. More...
 
struct  ValID
 ValID - Represents a reference of a definition of some sort with no type. More...
 
struct  validate_format_parameters
 These are templated helper classes used by the format function that capture the object to be formatted and the format string. More...
 
struct  validate_format_parameters< Arg, Args... >
 
struct  validate_format_parameters<>
 
class  Value
 LLVM Value Representation. More...
 
class  ValueAsMetadata
 Value wrapper in the Metadata hierarchy. More...
 
struct  ValueDeleter
 
class  ValueEnumerator
 
class  ValueHandleBase
 This is the common base class of value handles. More...
 
struct  ValueInfo
 Struct that holds a reference to a particular GUID in a global value summary. More...
 
class  ValueLatticeElement
 
class  ValueMap
 See the file comment. More...
 
class  ValueMapCallbackVH
 
struct  ValueMapConfig
 This class defines the default behavior for configurable aspects of ValueMap<>. More...
 
class  ValueMapConstIterator
 
class  ValueMapIterator
 
class  ValueMapper
 Context for (re-)mapping values (and metadata). More...
 
class  ValueMapTypeRemapper
 This is a class that can be implemented by clients to remap types when cloning constants and instructions. More...
 
class  ValueMaterializer
 This is a class that can be implemented by clients to materialize Values on demand. More...
 
class  ValueSymbolTable
 This class provides a symbol table of name/value pairs. More...
 
class  VarBitInit
 Opcode{0} - Represent access to one bit of a variable or field. More...
 
class  VarDefInit
 classname<targs...> - Represent an uninstantiated anonymous class instantiation. More...
 
struct  VariadicFunction
 Class which can simulate a type-safe variadic function. More...
 
struct  VariadicFunction1
 
struct  VariadicFunction2
 
struct  VariadicFunction3
 
struct  VariadicOperandTraits
 VariadicOperandTraits - determine the allocation regime of the Use array when it is a prefix to the User object, and the number of Use objects is only known at allocation time. More...
 
class  VarInit
 'Opcode' - Represent a reference to an entire variable object. More...
 
class  VarListElementInit
 List[4] - Represent access to one element of a var or field. More...
 
class  VarStreamArray
 
struct  VarStreamArrayExtractor
 VarStreamArrayExtractor is intended to be specialized to provide customized extraction logic. More...
 
struct  VarStreamArrayExtractor< codeview::CrossModuleImportItem >
 
struct  VarStreamArrayExtractor< codeview::CVRecord< Kind > >
 
struct  VarStreamArrayExtractor< codeview::DebugSubsectionRecord >
 
struct  VarStreamArrayExtractor< codeview::FileChecksumEntry >
 
struct  VarStreamArrayExtractor< codeview::InlineeSourceLine >
 
struct  VarStreamArrayExtractor< pdb::DbiModuleDescriptor >
 
class  VarStreamArrayIterator
 VarStreamArray represents an array of variable length records backed by a stream. More...
 
class  VAStartInst
 This represents the llvm.va_start intrinsic. More...
 
struct  VecDesc
 Describes a possible vectorization of a function. More...
 
struct  VectorizationFactor
 TODO: The following VectorizationFactor was pulled out of LoopVectorizationCostModel class. More...
 
struct  VectorizeConfig
 Vectorize configuration. More...
 
struct  VectorizerParams
 Collection of parameters shared beetween the Loop Vectorizer and the Loop Access Analysis. More...
 
struct  VectorizerValueMap
 This is a helper struct for maintaining vectorization state. More...
 
class  VectorType
 Class to represent vector types. More...
 
class  VerifierAnalysis
 Check a module for errors, and report separate error states for IR and debug info errors. More...
 
class  VerifierPass
 Create a verifier pass. More...
 
struct  VerifierSupport
 
class  VersionTuple
 Represents a version number in the form major[.minor[.subminor[.build]]]. More...
 
struct  VFRange
 A range of powers-of-2 vectorization factors with fixed start and adjustable end. More...
 
struct  VirtReg2IndexFunctor
 
class  VirtRegAuxInfo
 Calculate auxiliary information for a virtual register such as its spill weight and allocation hint. More...
 
class  VirtRegMap
 
class  VLIWMachineScheduler
 Extend the standard ScheduleDAGMI to provide more context and override the top-level schedule() driver. More...
 
class  VLIWPacketizerList
 
class  VLIWResourceModel
 
class  VNInfo
 VNInfo - Value Number Information. More...
 
class  VPBasicBlock
 VPBasicBlock serves as the leaf of the Hierarchical Control-Flow Graph. More...
 
class  VPBlendRecipe
 A recipe for vectorizing a phi-node as a sequence of mask-based select instructions. More...
 
class  VPBlockBase
 VPBlockBase is the building block of the Hierarchical Control-Flow Graph. More...
 
class  VPBlockUtils
 Class that provides utilities for VPBlockBases in VPlan. More...
 
class  VPBranchOnMaskRecipe
 A recipe for generating conditional branches on the bits of a mask. More...
 
class  VPBuilder
 VPlan-based builder utility analogous to IRBuilder. More...
 
struct  VPCallback
 This class is used to enable the VPlan to invoke a method of ILV. More...
 
class  VPInstruction
 This is a concrete Recipe that models a single VPlan-level instruction. More...
 
class  VPInterleavedAccessInfo
 
class  VPInterleaveRecipe
 VPInterleaveRecipe is a recipe for transforming an interleave group of load or stores into one wide load/store and shuffles. More...
 
struct  VPIteration
 In what follows, the term "input IR" refers to code that is fed into the vectorizer whereas the term "output IR" refers to code that is generated by the vectorizer. More...
 
class  VPlan
 VPlan models a candidate for vectorization, encoding various decisions take to produce efficient output IR, including which branches, basic-blocks and output IR instructions to generate, and their cost. More...
 
class  VPlanHCFGBuilder
 Main class to build the VPlan H-CFG for an incoming IR. More...
 
class  VPlanHCFGTransforms
 
struct  VPlanIngredient
 
class  VPlanPrinter
 VPlanPrinter prints a given VPlan to a given output stream. More...
 
class  VPlanSlp
 Class that maps (parts of) an existing VPlan to trees of combined VPInstructions. More...
 
class  VPlanVerifier
 Class with utility functions that can be used to check the consistency and invariants of a VPlan, including the components of its H-CFG. More...
 
class  VPLoop
 Hold analysis information for every loop detected by VPLoopInfo. More...
 
class  VPPredInstPHIRecipe
 VPPredInstPHIRecipe is a recipe for generating the phi nodes needed when control converges back from a Branch-on-Mask. More...
 
class  VPRecipeBase
 VPRecipeBase is a base class modeling a sequence of one or more output IR instructions. More...
 
class  VPRecipeBuilder
 Helper class to create VPRecipies from IR instructions. More...
 
class  VPRegionBlock
 VPRegionBlock represents a collection of VPBasicBlocks and VPRegionBlocks which form a Single-Entry-Single-Exit subgraph of the output IR CFG. More...
 
class  VPReplicateRecipe
 VPReplicateRecipe replicates a given instruction producing multiple scalar copies of the original scalar type, one per lane, instead of producing a single copy of widened type for all lanes. More...
 
struct  VPTransformState
 VPTransformState holds information passed down when "executing" a VPlan, needed for generating the output IR. More...
 
class  VPUser
 This class augments VPValue with operands which provide the inverse def-use edges from VPValue's users to their defs. More...
 
class  VPValue
 
class  VPWidenIntOrFpInductionRecipe
 A recipe for handling phi nodes of integer and floating-point inductions, producing their vector and scalar values. More...
 
class  VPWidenMemoryInstructionRecipe
 A Recipe for widening load/store operations. More...
 
class  VPWidenPHIRecipe
 A recipe for handling all phi nodes except for integer and FP inductions. More...
 
class  VPWidenRecipe
 VPWidenRecipe is a recipe for producing a copy of vector type for each Instruction in its ingredients independently, in order. More...
 
struct  VReg2SUnit
 An individual mapping from virtual register number to SUnit. More...
 
struct  VReg2SUnitOperIdx
 Mapping from virtual register to SUnit including an operand index. More...
 
struct  VRegInfo
 
class  VTSDNode
 This class is used to represent EVT's, which are used to parameterize some operations. More...
 
class  WarnMissedTransformationsPass
 
struct  WasmEHFuncInfo
 
class  WasmException
 
class  WeakTrackingVH
 Value handle that is nullable, but tries to track the Value. More...
 
class  WeakVH
 A nullable Value handle that is nullable. More...
 
class  WebAssemblyAsmPrinter
 
class  WebAssemblyDebugValueManager
 
class  WebAssemblyException
 
class  WebAssemblyExceptionInfo
 
class  WebAssemblyFrameLowering
 
class  WebAssemblyFunctionInfo
 This class is derived from MachineFunctionInfo and contains private WebAssembly-specific information for each MachineFunction. More...
 
class  WebAssemblyInstPrinter
 
class  WebAssemblyInstrInfo
 
class  WebAssemblyMCAsmInfo
 
class  WebAssemblyMCInstLower
 This class is used to lower an MachineInstr into an MCInst. More...
 
class  WebAssemblyRegisterInfo
 
class  WebAssemblySelectionDAGInfo
 
class  WebAssemblySubtarget
 
class  WebAssemblyTargetAsmStreamer
 This part is for ascii assembly output. More...
 
class  WebAssemblyTargetLowering
 
class  WebAssemblyTargetMachine
 
class  WebAssemblyTargetNullStreamer
 This part is for null output. More...
 
class  WebAssemblyTargetObjectFile
 
class  WebAssemblyTargetStreamer
 WebAssembly-specific streamer interface, to implement support WebAssembly-specific assembly directives. More...
 
class  WebAssemblyTargetWasmStreamer
 This part is for Wasm object output. More...
 
class  WebAssemblyTTIImpl
 
struct  WholeProgramDevirtPass
 
struct  WholeProgramDevirtResolution
 
class  WinCFGuard
 
class  WindowsResourceProcessor
 
struct  WinEHFuncInfo
 
struct  WinEHHandlerType
 
struct  WinEHTryBlockMapEntry
 
class  WinException
 
class  WithColor
 An RAII object that temporarily switches an output stream to a specific color. More...
 
class  WrappedPairNodeDataIterator
 
class  WritableBinaryStream
 A BinaryStream which can be read from as well as written to. More...
 
class  WritableBinaryStreamRef
 
class  WritableMemoryBuffer
 This class is an extension of MemoryBuffer, which allows copy-on-write access to the underlying contents. More...
 
class  WriteThroughMemoryBuffer
 This class is an extension of MemoryBuffer, which allows write access to the underlying contents and committing those changes to the original source. More...
 
class  X86_64MachoTargetObjectFile
 X86_64MachoTargetObjectFile - This TLOF implementation is used for Darwin x86-64. More...
 
struct  X86_64MCAsmInfoDarwin
 
struct  X86AddressMode
 X86AddressMode - This struct holds a generalized full x86 address mode. More...
 
class  X86AsmInstrumentation
 
class  X86AsmPrinter
 
class  X86ATTInstPrinter
 
class  X86CallLowering
 
class  X86ELFMCAsmInfo
 
class  X86ELFTargetObjectFile
 This implemenatation is used for X86 ELF targets that don't have a further specialization. More...
 
class  X86FrameLowering
 
class  X86FreeBSDTargetObjectFile
 X86FreeBSDTargetObjectFile - This implementation is used for FreeBSD on x86 and x86-64. More...
 
class  X86FuchsiaTargetObjectFile
 This implementation is used for Fuchsia on x86-64. More...
 
class  X86GenRegisterBankInfo
 
class  X86InstPrinterCommon
 
struct  X86InstrFMA3Group
 This class is used to group {132, 213, 231} forms of FMA opcodes together. More...
 
class  X86InstrInfo
 
class  X86IntelInstPrinter
 
class  X86LegalizerInfo
 This class provides the information for the target register banks. More...
 
class  X86LinuxNaClTargetObjectFile
 X86LinuxNaClTargetObjectFile - This implementation is used for linux and Native Client on x86 and x86-64. More...
 
class  X86MachineFunctionInfo
 X86MachineFunctionInfo - This class is derived from MachineFunction and contains private X86 target-specific information for each MachineFunction. More...
 
class  X86MaskedGatherScatterSDNode
 
class  X86MaskedGatherSDNode
 
class  X86MaskedScatterSDNode
 
class  X86MaskedStoreSDNode
 
class  X86MCAsmInfoDarwin
 
class  X86MCAsmInfoGNUCOFF
 
class  X86MCAsmInfoMicrosoft
 
class  X86MCExpr
 
struct  X86MemoryFoldTableEntry
 
struct  X86Operand
 X86Operand - Instances of this class represent a parsed X86 machine instruction. More...
 
class  X86RegisterBankInfo
 This class provides the information for the target register banks. More...
 
class  X86RegisterInfo
 
class  X86SelectionDAGInfo
 
class  X86SolarisTargetObjectFile
 This implementation is used for Solaris on x86/x86-64. More...
 
class  X86StoreSDNode
 
class  X86Subtarget
 
class  X86TargetLowering
 
class  X86TargetMachine
 
class  X86TargetStreamer
 X86 target streamer implementing x86-only assembly directives. More...
 
class  X86TTIImpl
 
class  XCoreFrameLowering
 
class  XCoreFunctionInfo
 XCoreFunctionInfo - This class is derived from MachineFunction private XCore target-specific information for each MachineFunction. More...
 
class  XCoreInstPrinter
 
class  XCoreInstrInfo
 
class  XCoreMCAsmInfo
 
class  XCoreMCInstLower
 This class is used to lower an MachineInstr into an MCInst. More...
 
struct  XCoreRegisterInfo
 
class  XCoreSelectionDAGInfo
 
class  XCoreSubtarget
 
class  XCoreTargetLowering
 
class  XCoreTargetMachine
 
class  XCoreTargetObjectFile
 
class  XCoreTargetStreamer
 
class  XCoreTTIImpl
 
class  ZExtInst
 This class represents zero extension of integer types. More...
 
class  ZExtOperator
 

Typedefs

template<class T >
using BumpPtrList = AllocatorList< T, BumpPtrAllocator >
 
template<typename NodeRef , unsigned SmallSize = 8>
using bf_iterator_default_set = SmallPtrSet< NodeRef, SmallSize >
 
using FoldingSetNode = FoldingSetBase::Node
 
template<class T , class... Options>
using ilist = iplist< T, Options... >
 
template<typename WrappedIteratorT , typename PredicateT >
using filter_iterator = filter_iterator_impl< WrappedIteratorT, PredicateT, typename detail::fwd_or_bidi_tag< WrappedIteratorT >::type >
 Defines filter_iterator to a suitable specialization of filter_iterator_impl, based on the underlying iterator's category. More...
 
using AliasAnalysis = AAResults
 Temporary typedef for legacy code that uses a generic AliasAnalysis pointer or reference. More...
 
using CGSCCAnalysisManager = AnalysisManager< LazyCallGraph::SCC, LazyCallGraph & >
 The CGSCC analysis manager. More...
 
using CGSCCPassManager = PassManager< LazyCallGraph::SCC, CGSCCAnalysisManager, LazyCallGraph &, CGSCCUpdateResult & >
 The CGSCC pass manager. More...
 
using CGSCCAnalysisManagerModuleProxy = InnerAnalysisManagerProxy< CGSCCAnalysisManager, Module >
 A proxy from a CGSCCAnalysisManager to a Module. More...
 
using ModuleAnalysisManagerCGSCCProxy = OuterAnalysisManagerProxy< ModuleAnalysisManager, LazyCallGraph::SCC, LazyCallGraph & >
 A proxy from a ModuleAnalysisManager to an SCC. More...
 
using CGSCCAnalysisManagerFunctionProxy = OuterAnalysisManagerProxy< CGSCCAnalysisManager, Function >
 A proxy from a CGSCCAnalysisManager to a Function. More...
 
typedef TinyPtrVector< BasicBlock * > ColorVector
 
using function_interval_iterator = IntervalIterator< BasicBlock, Function >
 
using interval_part_interval_iterator = IntervalIterator< Interval, IntervalPartition >
 
typedef IDFCalculator< BasicBlock *, falseForwardIDFCalculator
 
typedef IDFCalculator< Inverse< BasicBlock * >, trueReverseIDFCalculator
 
typedef AnalysisManager< Loop, LoopStandardAnalysisResults & > LoopAnalysisManager
 The loop analysis manager. More...
 
typedef InnerAnalysisManagerProxy< LoopAnalysisManager, FunctionLoopAnalysisManagerFunctionProxy
 A proxy from a LoopAnalysisManager to a Function. More...
 
typedef OuterAnalysisManagerProxy< FunctionAnalysisManager, Loop, LoopStandardAnalysisResults & > FunctionAnalysisManagerLoopProxy
 A proxy from a FunctionAnalysisManager to a Loop. More...
 
using SizeOffsetType = std::pair< APInt, APInt >
 
using SizeOffsetEvalType = std::pair< Value *, Value * >
 
using memoryaccess_def_iterator = memoryaccess_def_iterator_base< MemoryAccess >
 
using const_memoryaccess_def_iterator = memoryaccess_def_iterator_base< const MemoryAccess >
 
using MemoryAccessPair = std::pair< MemoryAccess *, MemoryLocation >
 
using ConstMemoryAccessPair = std::pair< const MemoryAccess *, MemoryLocation >
 
using ValueToValueMapTy = ValueMap< const Value *, WeakTrackingVH >
 
using PhiToDefMap = SmallDenseMap< MemoryPhi *, MemoryAccess * >
 
using CFGUpdate = cfg::Update< BasicBlock * >
 
using GraphDiffInvBBPair = std::pair< const GraphDiff< BasicBlock * > *, Inverse< BasicBlock * > >
 
using ValueToValueMap = DenseMap< const Value *, Value * >
 
using LoopToScevMapT = DenseMap< const Loop *, const SCEV * >
 
typedef SmallPtrSet< const Loop *, 2 > PostIncLoopSet
 
typedef function_ref< bool(const SCEVAddRecExpr *)> NormalizePredTy
 
using StackSafetyGlobalInfo = std::map< const GlobalValue *, StackSafetyInfo >
 
using ConstBlockSet = SmallPtrSet< const BasicBlock *, 4 >
 
typedef MCSymbolExceptionSymbolProvider(AsmPrinter *Asm)
 
using CreateCmpXchgInstFun = function_ref< void(IRBuilder<> &, Value *, Value *, Value *, AtomicOrdering, Value *&, Value *&)>
 
typedef bool CCAssignFn(unsigned ValNo, MVT ValVT, MVT LocVT, CCValAssign::LocInfo LocInfo, ISD::ArgFlagsTy ArgFlags, CCState &State)
 CCAssignFn - This function assigns a location for Val, updating State to reflect the change. More...
 
typedef bool CCCustomFn(unsigned &ValNo, MVT &ValVT, MVT &LocVT, CCValAssign::LocInfo &LocInfo, ISD::ArgFlagsTy &ArgFlags, CCState &State)
 CCCustomFn - This function assigns a location for Val, possibly updating all args to reflect changes and indicates if it handled it. More...
 
using DFAInput = uint64_t
 
using DFAStateInput = int64_t
 
using GCMetadataPrinterRegistry = Registry< GCMetadataPrinter >
 GCMetadataPrinterRegistry - The GC assembly printer registry uses all the defaults from Registry. More...
 
using GCRegistry = Registry< GCStrategy >
 Subclasses of GCStrategy are made available for use during compilation by adding them to the global GCRegistry. More...
 
using LegalityPredicate = std::function< bool(const LegalityQuery &)>
 
using LegalizeMutation = std::function< std::pair< unsigned, LLT >(const LegalityQuery &)>
 
using ValueToVReg = DenseMap< const Value *, unsigned >
 Map a value to a virtual register. More...
 
using InsnRange = std::pair< const MachineInstr *, const MachineInstr * >
 InsnRange - This is used to track range of instructions with identical lexical scope. More...
 
using LiveVirtRegBitSet = SparseBitVector< 128 >
 
using MachineDomTreeNode = DomTreeNodeBase< MachineBasicBlock >
 
using RegClassOrRegBank = PointerUnion< const TargetRegisterClass *, const RegisterBank * >
 Convenient type to represent either a register class or a register bank. More...
 
using ShouldSchedulePredTy = std::function< bool(const TargetInstrInfo &TII, const TargetSubtargetInfo &TSI, const MachineInstr *FirstMI, const MachineInstr &SecondMI)>
 Check if the instr pair, FirstMI and SecondMI, should be fused together. More...
 
using PBQPRAGraph = PBQP::RegAlloc::PBQPRAGraph
 
using Reg2SUnitsMap = SparseMultiSet< PhysRegSUOper, identity< unsigned >, uint16_t >
 Use a SparseMultiSet to track physical registers. More...
 
using VReg2SUnitMap = SparseSet< VReg2SUnit, VirtReg2IndexFunctor >
 Use SparseSet as a SparseMap by relying on the fact that it never compares ValueT's, only unsigned keys. More...
 
using VReg2SUnitMultiMap = SparseMultiSet< VReg2SUnit, VirtReg2IndexFunctor >
 Track local uses of virtual registers. More...
 
using VReg2SUnitOperIdxMultiMap = SparseMultiSet< VReg2SUnitOperIdx, VirtReg2IndexFunctor >
 
using ValueType = PointerUnion< const Value *, const PseudoSourceValue * >
 
using UnderlyingObjectsVector = SmallVector< UnderlyingObject, 4 >
 
using LargestSDNode = AlignedCharArrayUnion< AtomicSDNode, TargetIndexSDNode, BlockAddressSDNode, GlobalAddressSDNode >
 A representation of the largest SDNode, for use in sizeof(). More...
 
using MostAlignedSDNode = GlobalAddressSDNode
 The SDNode class with the greatest alignment requirement. More...
 
using IdxMBBPair = std::pair< SlotIndex, MachineBasicBlock * >
 
using BBOrMBB = PointerUnion< const BasicBlock *, MachineBasicBlock * >
 
using MBBOrBasicBlock = PointerUnion< const BasicBlock *, MachineBasicBlock * >
 
using DILineInfoTable = SmallVector< std::pair< uint64_t, DILineInfo >, 16 >
 
using DWARFAddressRangesVector = std::vector< DWARFAddressRange >
 DWARFAddressRangesVector - represents a set of absolute address ranges. More...
 
using RelocAddrMap = DenseMap< uint64_t, RelocAddrEntry >
 In place of applying the relocations to the data we've read from disk we use a separate mapping table to the side and checking that at locations in the dwarf where we expect relocated values. More...
 
using FunctionCreator = std::function< void *(const std::string &)>
 
using PointerTy = void *
 
using JITTargetAddress = uint64_t
 Represents an address in the target process's address space. More...
 
using FuzzerTestFun = int(*)(const uint8_t *Data, size_t Size)
 
using FuzzerInitFun = int(*)(int *argc, char ***argv)
 
using TypeGetter = std::function< Type *(LLVMContext &)>
 
using RandomEngine = std::mt19937
 
using pred_iterator = PredIterator< BasicBlock, Value::user_iterator >
 
using const_pred_iterator = PredIterator< const BasicBlock, Value::const_user_iterator >
 
using pred_range = iterator_range< pred_iterator >
 
using pred_const_range = iterator_range< const_pred_iterator >
 
using succ_iterator = SuccIterator< Instruction, BasicBlock >
 
using succ_const_iterator = SuccIterator< const Instruction, const BasicBlock >
 
using succ_range = iterator_range< succ_iterator >
 
using succ_const_range = iterator_range< succ_const_iterator >
 
using DINodeRef = TypedDINodeRef< DINode >
 
using DIScopeRef = TypedDINodeRef< DIScope >
 
using DITypeRef = TypedDINodeRef< DIType >
 
using DiagnosticHandlerFunction = std::function< void(const DiagnosticInfo &)>
 
using DomTreeNode = DomTreeNodeBase< BasicBlock >
 
using gep_type_iterator = generic_gep_type_iterator<>
 
using inst_iterator = InstIterator< SymbolTableList< BasicBlock >, Function::iterator, BasicBlock::iterator, Instruction >
 
using const_inst_iterator = InstIterator< const SymbolTableList< BasicBlock >, Function::const_iterator, BasicBlock::const_iterator, const Instruction >
 
using inst_range = iterator_range< inst_iterator >
 
using const_inst_range = iterator_range< const_inst_iterator >
 
using OperandBundleDef = OperandBundleDefT< Value * >
 
using ConstOperandBundleDef = OperandBundleDefT< const Value * >
 
using GlobalValueSummaryList = std::vector< std::unique_ptr< GlobalValueSummary > >
 
using GlobalValueSummaryMapTy = std::map< GlobalValue::GUID, GlobalValueSummaryInfo >
 Map from global value GUID to corresponding summary structures. More...
 
using ModuleHash = std::array< uint32_t, 5 >
 160 bits SHA1 More...
 
using const_gvsummary_iterator = GlobalValueSummaryMapTy::const_iterator
 Type used for iterating through the global value summary map. More...
 
using gvsummary_iterator = GlobalValueSummaryMapTy::iterator
 
using ModulePathStringTableTy = StringMap< std::pair< uint64_t, ModuleHash > >
 String table to hold/own module path strings, which additionally holds the module ID assigned to each module during the plugin step, as well as a hash of the module. More...
 
using GVSummaryMapTy = DenseMap< GlobalValue::GUID, GlobalValueSummary * >
 Map of global value GUID to its summary, used to identify values defined in a particular module, and provide efficient access to their summary. More...
 
using TypeIdSummaryMapTy = std::multimap< GlobalValue::GUID, std::pair< std::string, TypeIdSummary > >
 Map of a type GUID to type id string and summary (multimap used in case of GUID conflicts). More...
 
using ModulePassManager = PassManager< Module >
 Convenience typedef for a pass manager over modules. More...
 
using FunctionPassManager = PassManager< Function >
 Convenience typedef for a pass manager over functions. More...
 
using ModuleAnalysisManager = AnalysisManager< Module >
 Convenience typedef for the Module analysis manager. More...
 
using FunctionAnalysisManager = AnalysisManager< Function >
 Convenience typedef for the Function analysis manager. More...
 
using FunctionAnalysisManagerModuleProxy = InnerAnalysisManagerProxy< FunctionAnalysisManager, Module >
 Provide the FunctionAnalysisManager to Module proxy. More...
 
using ModuleAnalysisManagerFunctionProxy = OuterAnalysisManagerProxy< ModuleAnalysisManager, Function >
 Provide the ModuleAnalysisManager to Function proxy. More...
 
using SummaryEntryVector = std::vector< ProfileSummaryEntry >
 
using TrackingMDNodeRef = TypedTrackingMDRef< MDNode >
 
using TrackingValueAsMetadataRef = TypedTrackingMDRef< ValueAsMetadata >
 
using UseListOrderStack = std::vector< UseListOrder >
 
using ValueName = StringMapEntry< Value * >
 
using unique_value = std::unique_ptr< Value, ValueDeleter >
 Use this instead of std::unique_ptr<Value> or std::unique_ptr<Instruction>. More...
 
typedef std::vector< MCAsmMacroParameterMCAsmMacroParameters
 
typedef SmallVector< const MCPaddingFragment *, 8 > MCPFRange
 
using SectionAddrMap = DenseMap< const MCSection *, uint64_t >
 
using MCLOHArgs = MCLOHDirective::LOHArgs
 
using MCLOHDirectives = MCLOHContainer::LOHDirectives
 
using OperandVector = SmallVectorImpl< std::unique_ptr< MCParsedAsmOperand > >
 
using MCPhysReg = uint16_t
 An unsigned integer type large enough to represent all physical registers, but not necessarily virtual registers. More...
 
using MCSectionSubPair = std::pair< MCSection *, const MCExpr * >
 
using AnalysisID = const void *
 
using RawInstrProfReader32 = RawInstrProfReader< uint32_t >
 
using RawInstrProfReader64 = RawInstrProfReader< uint64_t >
 
using OnDiskHashTableImplV3 = OnDiskIterableChainedHashTable< InstrProfLookupTrait >
 
typedef BumpPtrAllocatorImpl BumpPtrAllocator
 The standard BumpPtrAllocator which just uses the default template parameters. More...
 
typedef unsigned int UTF32
 
typedef unsigned short UTF16
 
typedef unsigned char UTF8
 
typedef unsigned char Boolean
 
using uint24_t = Uint24
 
typedef void(* fatal_error_handler_t) (void *user_data, const std::string &reason, bool gen_crash_diag)
 An error handler callback. More...
 
template<typename T >
using DomTreeBase = DominatorTreeBase< T, false >
 
template<typename T >
using PostDomTreeBase = DominatorTreeBase< T, true >
 
using DictScope = DelimitedScope<'{', '}'>
 
using ListScope = DelimitedScope<'[', ']'>
 
typedef std::thread thread
 
typedef std::once_flag once_flag
 
using TableGenMainFn = bool(raw_ostream &OS, RecordKeeper &Records)
 Perform the action using Records, and write output to OS. More...
 
using LoadStorePair = std::pair< Instruction *, Instruction * >
 
typedef PassManager< Loop, LoopAnalysisManager, LoopStandardAnalysisResults &, LPMUpdater & > LoopPassManager
 The Loop pass manager. More...
 
template<typename AnalysisT >
using RequireAnalysisLoopPass = RequireAnalysisPass< AnalysisT, Loop, LoopAnalysisManager, LoopStandardAnalysisResults &, LPMUpdater & >
 An alias template to easily name a require analysis loop pass. More...
 
using NewLoopsMap = SmallDenseMap< const Loop *, Loop *, 4 >
 
using BFIDOTGTraitsBase = BFIDOTGraphTraitsBase< BlockFrequencyInfo, BranchProbabilityInfo >
 
using FunctionRPOT = ReversePostOrderTraversal< const Function * >
 
using MBFIDOTGraphTraitsBase = BFIDOTGraphTraitsBase< MachineBlockFrequencyInfo, MachineBranchProbabilityInfo >
 
using Name2RegClassMap = StringMap< const TargetRegisterClass * >
 
using Name2RegBankMap = StringMap< const RegisterBank * >
 
typedef std::vector< DWARFExpression::Operation::DescriptionDescVector
 
typedef std::vector< GenericValueValuePlaneTy
 
typedef StringMap< SymbolTableEntryRTDyldSymbolTable
 
using IndexAttrPair = std::pair< unsigned, AttributeSet >
 
typedef ScopedHandle< CommonHandleTraitsScopedCommonHandle
 
typedef ScopedHandle< FileHandleTraitsScopedFileHandle
 
typedef ScopedHandle< CryptContextTraitsScopedCryptContext
 
typedef ScopedHandle< RegTraitsScopedRegHandle
 
typedef ScopedHandle< FindHandleTraitsScopedFindHandle
 
typedef ScopedHandle< JobHandleTraitsScopedJobHandle
 
using BBSideEffectsSet = DenseMap< const BasicBlock *, bool >
 
using SmallVecInsn = SmallVector< Instruction *, 4 >
 
using SmallVecImplInsn = SmallVectorImpl< Instruction * >
 
using HoistingPointInfo = std::pair< BasicBlock *, SmallVecInsn >
 
using HoistingPointList = SmallVector< HoistingPointInfo, 4 >
 
using VNType = std::pair< unsigned, unsigned >
 
using VNtoInsns = DenseMap< VNType, SmallVector< Instruction *, 4 > >
 
using CHIIt = SmallVectorImpl< CHIArg >::iterator
 
using CHIArgs = iterator_range< CHIIt >
 
using OutValuesType = DenseMap< BasicBlock *, SmallVector< CHIArg, 2 > >
 
using InValuesType = DenseMap< BasicBlock *, SmallVector< std::pair< VNType, Instruction * >, 2 > >
 
using VPlanPtr = std::unique_ptr< VPlan >
 
using VPDominatorTree = DomTreeBase< VPBlockBase >
 Template specialization of the standard LLVM dominator tree utility for VPBlockBases. More...
 
using VPDomTreeNode = DomTreeNodeBase< VPBlockBase >
 
typedef LoopInfoBase< VPBlockBase, VPLoopVPLoopInfo
 VPLoopInfo provides analysis of natural loop for VPBlockBase-based Hierarchical CFG. More...
 
typedef DenseMap< Value *, VPValue * > Value2VPValueTy
 
typedef DenseMap< VPValue *, Value * > VPValue2ValueTy
 

Enumerations

enum  lostFraction { lfExactlyZero, lfLessThanHalf, lfExactlyHalf, lfMoreThanHalf }
 Enum that represents what fraction of the LSB truncated bits of an fp number represent. More...
 
enum  NoneType { NoneType::None = 1 }
 A simple null object to allow implicit construction of Optional<T> and similar types without having to spell out the specialization's name. More...
 
enum  AliasResult : uint8_t { NoAlias = 0, MayAlias, PartialAlias, MustAlias }
 The possible results of an alias query. More...
 
enum  ModRefInfo : uint8_t {
  ModRefInfo::Must = 0, ModRefInfo::MustRef = 1, ModRefInfo::MustMod = 2, ModRefInfo::MustModRef = MustRef | MustMod,
  ModRefInfo::NoModRef = 4, ModRefInfo::Ref = NoModRef | MustRef, ModRefInfo::Mod = NoModRef | MustMod, ModRefInfo::ModRef = Ref | Mod
}
 Flags indicating whether a memory access modifies or references memory. More...
 
enum  FunctionModRefLocation { FMRL_Nowhere = 0, FMRL_ArgumentPointees = 8, FMRL_InaccessibleMem = 16, FMRL_Anywhere = 32 | FMRL_InaccessibleMem | FMRL_ArgumentPointees }
 The locations at which a function might access memory. More...
 
enum  FunctionModRefBehavior {
  FMRB_DoesNotAccessMemory, FMRB_OnlyReadsArgumentPointees, FMRB_OnlyAccessesArgumentPointees, FMRB_OnlyAccessesInaccessibleMem,
  FMRB_OnlyAccessesInaccessibleOrArgMem, FMRB_OnlyReadsMemory = FMRL_Anywhere | static_cast<int>(ModRefInfo::Ref), FMRB_DoesNotReadMemory = FMRL_Anywhere | static_cast<int>(ModRefInfo::Mod), FMRB_UnknownModRefBehavior
}
 Summary of how a function affects memory in the program. More...
 
enum  PGOViewCountsType { PGOVCT_None, PGOVCT_Graph, PGOVCT_Text }
 
enum  GVDAGType { GVDT_None, GVDT_Fraction, GVDT_Integer, GVDT_Count }
 
enum  EHPersonality {
  EHPersonality::Unknown, EHPersonality::GNU_Ada, EHPersonality::GNU_C, EHPersonality::GNU_C_SjLj,
  EHPersonality::GNU_CXX, EHPersonality::GNU_CXX_SjLj, EHPersonality::GNU_ObjC, EHPersonality::MSVC_X86SEH,
  EHPersonality::MSVC_Win64SEH, EHPersonality::MSVC_CXX, EHPersonality::CoreCLR, EHPersonality::Rust,
  EHPersonality::Wasm_CXX
}
 
enum  : unsigned { INVALID_MEMORYACCESS_ID = -1U }
 
enum  SCEVTypes {
  scConstant, scTruncate, scZeroExtend, scSignExtend,
  scAddExpr, scMulExpr, scUDivExpr, scAddRecExpr,
  scUMaxExpr, scSMaxExpr, scUnknown, scCouldNotCompute
}
 
enum  LibFunc { NumLibFuncs }
 
enum  CfiFunctionLinkage { CFL_Definition = 0, CFL_Declaration = 1, CFL_WeakDeclaration = 2 }
 The type of CFI jumptable needed for a function. More...
 
enum  OverflowResult { OverflowResult::AlwaysOverflows, OverflowResult::MayOverflow, OverflowResult::NeverOverflows }
 
enum  SelectPatternFlavor {
  SPF_UNKNOWN = 0, SPF_SMIN, SPF_UMIN, SPF_SMAX,
  SPF_UMAX, SPF_FMINNUM, SPF_FMAXNUM, SPF_ABS,
  SPF_NABS
}
 Specific patterns of select instructions we can match. More...
 
enum  SelectPatternNaNBehavior { SPNB_NA = 0, SPNB_RETURNS_NAN, SPNB_RETURNS_OTHER, SPNB_RETURNS_ANY }
 Behavior when a floating point min/max is given one NaN and one non-NaN as input. More...
 
enum  BitcodeError { BitcodeError::CorruptedBitcode = 1 }
 
enum  CombineLevel { BeforeLegalizeTypes, AfterLegalizeTypes, AfterLegalizeVectorOps, AfterLegalizeDAG }
 
enum  {
  GIM_Try, GIM_SwitchOpcode, GIM_SwitchType, GIM_RecordInsn,
  GIM_CheckFeatures, GIM_CheckOpcode, GIM_CheckNumOperands, GIM_CheckI64ImmPredicate,
  GIM_CheckAPIntImmPredicate, GIM_CheckAPFloatImmPredicate, GIM_CheckAtomicOrdering, GIM_CheckAtomicOrderingOrStrongerThan,
  GIM_CheckAtomicOrderingWeakerThan, GIM_CheckMemorySizeEqualTo, GIM_CheckMemorySizeEqualToLLT, GIM_CheckMemorySizeLessThanLLT,
  GIM_CheckMemorySizeGreaterThanLLT, GIM_CheckCxxInsnPredicate, GIM_CheckType, GIM_CheckPointerToAny,
  GIM_CheckRegBankForClass, GIM_CheckComplexPattern, GIM_CheckConstantInt, GIM_CheckLiteralInt,
  GIM_CheckIntrinsicID, GIM_CheckIsMBB, GIM_CheckIsSafeToFold, GIM_CheckIsSameOperand,
  GIM_Reject, GIR_MutateOpcode, GIR_BuildMI, GIR_Copy,
  GIR_CopyOrAddZeroReg, GIR_CopySubReg, GIR_AddImplicitDef, GIR_AddImplicitUse,
  GIR_AddRegister, GIR_AddTempRegister, GIR_AddImm, GIR_ComplexRenderer,
  GIR_ComplexSubOperandRenderer, GIR_CustomRenderer, GIR_CopyConstantAsSImm, GIR_CopyFConstantAsFPImm,
  GIR_ConstrainOperandRC, GIR_ConstrainSelectedInstOperands, GIR_MergeMemOperands, GIR_EraseFromParent,
  GIR_MakeTempReg, GIR_Done, GIR_Coverage, GIU_NumOpcodes
}
 
enum  { GIU_MergeMemOperands_EndOfList = -1 }
 
enum  { GIPFP_I64_Invalid = 0, GIPFP_APInt_Invalid = 0, GIPFP_APFloat_Invalid = 0, GIPFP_MI_Invalid = 0 }
 GlobalISel PatFrag Predicates. More...
 
enum  MachineCombinerPattern {
  MachineCombinerPattern::REASSOC_AX_BY, MachineCombinerPattern::REASSOC_AX_YB, MachineCombinerPattern::REASSOC_XA_BY, MachineCombinerPattern::REASSOC_XA_YB,
  MachineCombinerPattern::MULADDW_OP1, MachineCombinerPattern::MULADDW_OP2, MachineCombinerPattern::MULSUBW_OP1, MachineCombinerPattern::MULSUBW_OP2,
  MachineCombinerPattern::MULADDWI_OP1, MachineCombinerPattern::MULSUBWI_OP1, MachineCombinerPattern::MULADDX_OP1, MachineCombinerPattern::MULADDX_OP2,
  MachineCombinerPattern::MULSUBX_OP1, MachineCombinerPattern::MULSUBX_OP2, MachineCombinerPattern::MULADDXI_OP1, MachineCombinerPattern::MULSUBXI_OP1,
  MachineCombinerPattern::FMULADDS_OP1, MachineCombinerPattern::FMULADDS_OP2, MachineCombinerPattern::FMULSUBS_OP1, MachineCombinerPattern::FMULSUBS_OP2,
  MachineCombinerPattern::FMULADDD_OP1, MachineCombinerPattern::FMULADDD_OP2, MachineCombinerPattern::FMULSUBD_OP1, MachineCombinerPattern::FMULSUBD_OP2,
  MachineCombinerPattern::FNMULSUBS_OP1, MachineCombinerPattern::FNMULSUBD_OP1, MachineCombinerPattern::FMLAv1i32_indexed_OP1, MachineCombinerPattern::FMLAv1i32_indexed_OP2,
  MachineCombinerPattern::FMLAv1i64_indexed_OP1, MachineCombinerPattern::FMLAv1i64_indexed_OP2, MachineCombinerPattern::FMLAv2f32_OP2, MachineCombinerPattern::FMLAv2f32_OP1,
  MachineCombinerPattern::FMLAv2f64_OP1, MachineCombinerPattern::FMLAv2f64_OP2, MachineCombinerPattern::FMLAv2i32_indexed_OP1, MachineCombinerPattern::FMLAv2i32_indexed_OP2,
  MachineCombinerPattern::FMLAv2i64_indexed_OP1, MachineCombinerPattern::FMLAv2i64_indexed_OP2, MachineCombinerPattern::FMLAv4f32_OP1, MachineCombinerPattern::FMLAv4f32_OP2,
  MachineCombinerPattern::FMLAv4i32_indexed_OP1, MachineCombinerPattern::FMLAv4i32_indexed_OP2, MachineCombinerPattern::FMLSv1i32_indexed_OP2, MachineCombinerPattern::FMLSv1i64_indexed_OP2,
  MachineCombinerPattern::FMLSv2f32_OP1, MachineCombinerPattern::FMLSv2f32_OP2, MachineCombinerPattern::FMLSv2f64_OP1, MachineCombinerPattern::FMLSv2f64_OP2,
  MachineCombinerPattern::FMLSv2i32_indexed_OP1, MachineCombinerPattern::FMLSv2i32_indexed_OP2, MachineCombinerPattern::FMLSv2i64_indexed_OP1, MachineCombinerPattern::FMLSv2i64_indexed_OP2,
  MachineCombinerPattern::FMLSv4f32_OP1, MachineCombinerPattern::FMLSv4f32_OP2, MachineCombinerPattern::FMLSv4i32_indexed_OP1, MachineCombinerPattern::FMLSv4i32_indexed_OP2
}
 These are instruction patterns matched by the machine combiner pass. More...
 
enum  EventTag { CPP_EXCEPTION = 0, C_LONGJMP = 1 }
 
enum  ClrHandlerType { ClrHandlerType::Catch, ClrHandlerType::Finally, ClrHandlerType::Fault, ClrHandlerType::Filter }
 
enum  DINameKind { DINameKind::None, DINameKind::ShortName, DINameKind::LinkageName }
 A DINameKind is passed to name search methods to specify a preference regarding the type of name resolution the caller wants. More...
 
enum  DIDumpTypeCounter { DIDT_ID_UUID, DIDT_ID_Count }
 This is just a helper to programmatically construct DIDumpType. More...
 
enum  DIDumpType : unsigned { DIDT_Null, DIDT_All = ~0U, DIDT_UUID = 1 << DIDT_ID_UUID }
 Selects which debug sections get dumped. More...
 
enum  ErrorPolicy { ErrorPolicy::Halt, ErrorPolicy::Continue }
 Used as a return value for a error callback passed to DWARF context. More...
 
enum  DWARFSectionKind {
  DW_SECT_INFO = 1, DW_SECT_TYPES, DW_SECT_ABBREV, DW_SECT_LINE,
  DW_SECT_LOC, DW_SECT_STR_OFFSETS, DW_SECT_MACINFO, DW_SECT_MACRO
}
 
enum  : int {
  demangle_unknown_error = -4, demangle_invalid_args = -3, demangle_invalid_mangled_name = -2, demangle_memory_alloc_failure = -1,
  demangle_success = 0
}
 This is a llvm local version of __cxa_demangle. More...
 
enum  MSDemangleFlags { MSDF_None = 0, MSDF_DumpBackrefs = 1 << 0 }
 
enum  AlignTypeEnum {
  INVALID_ALIGN = 0, INTEGER_ALIGN = 'i', VECTOR_ALIGN = 'v', FLOAT_ALIGN = 'f',
  AGGREGATE_ALIGN = 'a'
}
 Enum used to categorize the alignment types stored by LayoutAlignElem. More...
 
enum  DiagnosticSeverity : char { DS_Error, DS_Warning, DS_Remark, DS_Note }
 Defines the different supported severity of a diagnostic. More...
 
enum  DiagnosticKind {
  DK_InlineAsm, DK_ResourceLimit, DK_StackSize, DK_Linker,
  DK_DebugMetadataVersion, DK_DebugMetadataInvalid, DK_ISelFallback, DK_SampleProfile,
  DK_OptimizationRemark, DK_OptimizationRemarkMissed, DK_OptimizationRemarkAnalysis, DK_OptimizationRemarkAnalysisFPCommute,
  DK_OptimizationRemarkAnalysisAliasing, DK_OptimizationFailure, DK_FirstRemark = DK_OptimizationRemark, DK_LastRemark = DK_OptimizationFailure,
  DK_MachineOptimizationRemark, DK_MachineOptimizationRemarkMissed, DK_MachineOptimizationRemarkAnalysis, DK_FirstMachineRemark = DK_MachineOptimizationRemark,
  DK_LastMachineRemark = DK_MachineOptimizationRemarkAnalysis, DK_MIRParser, DK_PGOProfile, DK_Unsupported,
  DK_FirstPluginKind
}
 Defines the different supported kind of a diagnostic. More...
 
enum  PassDebuggingString {
  EXECUTION_MSG, MODIFICATION_MSG, FREEING_MSG, ON_BASICBLOCK_MSG,
  ON_FUNCTION_MSG, ON_MODULE_MSG, ON_REGION_MSG, ON_LOOP_MSG,
  ON_CG_MSG
}
 
enum  LLVMConstants : uint32_t { DEBUG_METADATA_VERSION = 3 }
 
enum  StatepointFlags { StatepointFlags::None = 0, StatepointFlags::GCTransition = 1, StatepointFlags::DeoptLiveIn = 2, StatepointFlags::MaskAll = 3 }
 The statepoint intrinsic accepts a set of flags as its third argument. More...
 
enum  MCSymbolAttr {
  MCSA_Invalid = 0, MCSA_ELF_TypeFunction, MCSA_ELF_TypeIndFunction, MCSA_ELF_TypeObject,
  MCSA_ELF_TypeTLS, MCSA_ELF_TypeCommon, MCSA_ELF_TypeNoType, MCSA_ELF_TypeGnuUniqueObject,
  MCSA_Global, MCSA_Hidden, MCSA_IndirectSymbol, MCSA_Internal,
  MCSA_LazyReference, MCSA_Local, MCSA_NoDeadStrip, MCSA_SymbolResolver,
  MCSA_AltEntry, MCSA_PrivateExtern, MCSA_Protected, MCSA_Reference,
  MCSA_Weak, MCSA_WeakDefinition, MCSA_WeakReference, MCSA_WeakDefAutoPrivate
}
 
enum  MCAssemblerFlag {
  MCAF_SyntaxUnified, MCAF_SubsectionsViaSymbols, MCAF_Code16, MCAF_Code32,
  MCAF_Code64
}
 
enum  MCDataRegionType {
  MCDR_DataRegion, MCDR_DataRegionJT8, MCDR_DataRegionJT16, MCDR_DataRegionJT32,
  MCDR_DataRegionEnd
}
 
enum  MCVersionMinType { MCVM_IOSVersionMin, MCVM_OSXVersionMin, MCVM_TvOSVersionMin, MCVM_WatchOSVersionMin }
 
enum  MCFixupKind {
  FK_Data_1 = 0, FK_Data_2, FK_Data_4, FK_Data_8,
  FK_PCRel_1, FK_PCRel_2, FK_PCRel_4, FK_PCRel_8,
  FK_GPRel_1, FK_GPRel_2, FK_GPRel_4, FK_GPRel_8,
  FK_DTPRel_4, FK_DTPRel_8, FK_TPRel_4, FK_TPRel_8,
  FK_SecRel_1, FK_SecRel_2, FK_SecRel_4, FK_SecRel_8,
  FK_Data_Add_1, FK_Data_Add_2, FK_Data_Add_4, FK_Data_Add_8,
  FK_Data_Sub_1, FK_Data_Sub_2, FK_Data_Sub_4, FK_Data_Sub_8,
  FirstTargetFixupKind = 128, MaxTargetFixupKind = (1 << 8)
}
 Extensible enumeration to represent the type of a fixup. More...
 
enum  MCLOHType {
  MCLOH_AdrpAdrp = 0x1u, MCLOH_AdrpLdr = 0x2u, MCLOH_AdrpAddLdr = 0x3u, MCLOH_AdrpLdrGotLdr = 0x4u,
  MCLOH_AdrpAddStr = 0x5u, MCLOH_AdrpLdrGotStr = 0x6u, MCLOH_AdrpAdd = 0x7u, MCLOH_AdrpLdrGot = 0x8u
}
 Linker Optimization Hint Type. More...
 
enum  AsmRewriteKind {
  AOK_Align, AOK_EVEN, AOK_Emit, AOK_Input,
  AOK_Output, AOK_SizeDirective, AOK_Label, AOK_EndOfStatement,
  AOK_Skip, AOK_IntelExpr
}
 
enum  OperandMatchResultTy { MatchOperand_Success, MatchOperand_NoMatch, MatchOperand_ParseFail }
 
enum  DiagnosticPredicateTy { DiagnosticPredicateTy::Match, DiagnosticPredicateTy::NearMatch, DiagnosticPredicateTy::NoMatch }
 
enum  ExceptionHandling {
  ExceptionHandling::None, ExceptionHandling::DwarfCFI, ExceptionHandling::SjLj, ExceptionHandling::ARM,
  ExceptionHandling::WinEH, ExceptionHandling::Wasm
}
 
enum  DebugCompressionType { DebugCompressionType::None, DebugCompressionType::GNU, DebugCompressionType::Z }
 
enum  PassManagerType {
  PMT_Unknown = 0, PMT_ModulePassManager = 1, PMT_CallGraphPassManager, PMT_FunctionPassManager,
  PMT_LoopPassManager, PMT_RegionPassManager, PMT_BasicBlockPassManager, PMT_Last
}
 Different types of internal pass managers. More...
 
enum  PassKind {
  PT_BasicBlock, PT_Region, PT_Loop, PT_Function,
  PT_CallGraphSCC, PT_Module, PT_PassManager
}
 
enum  InstrProfSectKind
 
enum  InstrProfValueKind : uint32_t
 
enum  instrprof_error {
  instrprof_error::success = 0, instrprof_error::eof, instrprof_error::unrecognized_format, instrprof_error::bad_magic,
  instrprof_error::bad_header, instrprof_error::unsupported_version, instrprof_error::unsupported_hash_type, instrprof_error::too_large,
  instrprof_error::truncated, instrprof_error::malformed, instrprof_error::unknown_function, instrprof_error::hash_mismatch,
  instrprof_error::count_mismatch, instrprof_error::counter_overflow, instrprof_error::value_site_count_mismatch, instrprof_error::compress_failed,
  instrprof_error::uncompress_failed, instrprof_error::empty_raw_profile, instrprof_error::zlib_unavailable
}
 
enum  sampleprof_error {
  sampleprof_error::success = 0, sampleprof_error::bad_magic, sampleprof_error::unsupported_version, sampleprof_error::too_large,
  sampleprof_error::truncated, sampleprof_error::malformed, sampleprof_error::unrecognized_format, sampleprof_error::unsupported_writing_format,
  sampleprof_error::truncated_name_table, sampleprof_error::not_implemented, sampleprof_error::counter_overflow, sampleprof_error::ostream_seek_unsupported
}
 
enum  AtomicOrderingCABI {
  AtomicOrderingCABI::relaxed = 0, AtomicOrderingCABI::consume = 1, AtomicOrderingCABI::acquire = 2, AtomicOrderingCABI::release = 3,
  AtomicOrderingCABI::acq_rel = 4, AtomicOrderingCABI::seq_cst = 5
}
 Atomic ordering for C11 / C++11's memody models. More...
 
enum  AtomicOrdering {
  AtomicOrdering::NotAtomic = 0, AtomicOrdering::Unordered = 1, AtomicOrdering::Monotonic = 2, AtomicOrdering::Acquire = 4,
  AtomicOrdering::Release = 5, AtomicOrdering::AcquireRelease = 6, AtomicOrdering::SequentiallyConsistent = 7
}
 Atomic ordering for LLVM's memory model. More...
 
enum  BinaryStreamFlags { BSF_None = 0, BSF_Write = 1, BSF_Append = 2 }
 
enum  stream_error_code {
  stream_error_code::unspecified, stream_error_code::stream_too_short, stream_error_code::invalid_array_size, stream_error_code::invalid_offset,
  stream_error_code::filesystem_error
}
 
enum  ConversionResult { conversionOK, sourceExhausted, targetExhausted, sourceIllegal }
 
enum  ConversionFlags { strictConversion = 0, lenientConversion }
 
enum  errc {
  errc::argument_list_too_long = int(std::errc::argument_list_too_long), errc::argument_out_of_domain = int(std::errc::argument_out_of_domain), errc::bad_address = int(std::errc::bad_address), errc::bad_file_descriptor = int(std::errc::bad_file_descriptor),
  errc::broken_pipe = int(std::errc::broken_pipe), errc::device_or_resource_busy = int(std::errc::device_or_resource_busy), errc::directory_not_empty = int(std::errc::directory_not_empty), errc::executable_format_error = int(std::errc::executable_format_error),
  errc::file_exists = int(std::errc::file_exists), errc::file_too_large = int(std::errc::file_too_large), errc::filename_too_long = int(std::errc::filename_too_long), errc::function_not_supported = int(std::errc::function_not_supported),
  errc::illegal_byte_sequence = int(std::errc::illegal_byte_sequence), errc::inappropriate_io_control_operation, errc::interrupted = int(std::errc::interrupted), errc::invalid_argument = int(std::errc::invalid_argument),
  errc::invalid_seek = int(std::errc::invalid_seek), errc::io_error = int(std::errc::io_error), errc::is_a_directory = int(std::errc::is_a_directory), errc::no_child_process = int(std::errc::no_child_process),
  errc::no_lock_available = int(std::errc::no_lock_available), errc::no_space_on_device = int(std::errc::no_space_on_device), errc::no_such_device_or_address = int(std::errc::no_such_device_or_address), errc::no_such_device = int(std::errc::no_such_device),
  errc::no_such_file_or_directory = int(std::errc::no_such_file_or_directory), errc::no_such_process = int(std::errc::no_such_process), errc::not_a_directory = int(std::errc::not_a_directory), errc::not_enough_memory = int(std::errc::not_enough_memory),
  errc::not_supported = int(std::errc::not_supported), errc::operation_not_permitted = int(std::errc::operation_not_permitted), errc::permission_denied = int(std::errc::permission_denied), errc::read_only_file_system = int(std::errc::read_only_file_system),
  errc::resource_deadlock_would_occur = int(std::errc::resource_deadlock_would_occur), errc::resource_unavailable_try_again, errc::result_out_of_range = int(std::errc::result_out_of_range), errc::too_many_files_open_in_system = int(std::errc::too_many_files_open_in_system),
  errc::too_many_files_open = int(std::errc::too_many_files_open), errc::too_many_links = int(std::errc::too_many_links)
}
 
enum  AlignStyle { AlignStyle::Left, AlignStyle::Center, AlignStyle::Right }
 
enum  ReplacementType { ReplacementType::Empty, ReplacementType::Format, ReplacementType::Literal }
 
enum  ZeroBehavior { ZB_Undefined, ZB_Max, ZB_Width }
 The behavior an operation has on an input of 0. More...
 
enum  FloatStyle { FloatStyle::Exponent, FloatStyle::ExponentUpper, FloatStyle::Fixed, FloatStyle::Percent }
 
enum  IntegerStyle { IntegerStyle::Integer, IntegerStyle::Number }
 
enum  HexPrintStyle { HexPrintStyle::Upper, HexPrintStyle::Lower, HexPrintStyle::PrefixUpper, HexPrintStyle::PrefixLower }
 
enum  HighlightColor {
  HighlightColor::Address, HighlightColor::String, HighlightColor::Tag, HighlightColor::Attribute,
  HighlightColor::Enumerator, HighlightColor::Macro, HighlightColor::Error, HighlightColor::Warning,
  HighlightColor::Note, HighlightColor::Remark
}
 
enum  EABI {
  EABI::Unknown, EABI::Default, EABI::EABI4, EABI::EABI5,
  EABI::GNU
}
 
enum  DebuggerKind { DebuggerKind::Default, DebuggerKind::GDB, DebuggerKind::LLDB, DebuggerKind::SCE }
 Identify a debugger for "tuning" the debug info. More...
 
enum  GlobalISelAbortMode { GlobalISelAbortMode::Disable, GlobalISelAbortMode::Enable, GlobalISelAbortMode::DisableWithDiag }
 Enable abort calls when global instruction selection fails to lower/select an instruction. More...
 
enum  MemoryAccessKind { MAK_ReadNone = 0, MAK_ReadOnly = 1, MAK_MayWrite = 2, MAK_WriteOnly = 3 }
 The three kinds of memory access relevant to 'readonly' and 'readnone' attributes. More...
 
enum  PrevailingType { PrevailingType::Yes, PrevailingType::No, PrevailingType::Unknown }
 PrevailingType enum used as a return type of callback passed to computeDeadSymbols. More...
 
enum  PassSummaryAction { PassSummaryAction::None, PassSummaryAction::Import, PassSummaryAction::Export }
 What to do with the summary when running passes that operate on it. More...
 
enum  TransformationMode {
  TM_Unspecified, TM_Enable, TM_Disable, TM_Force = 0x04,
  TM_ForcedByUser = TM_Enable | TM_Force, TM_SuppressedByUser = TM_Disable | TM_Force
}
 The mode sets how eager a transformation should be applied. More...
 
enum  PredicateType { PT_Branch, PT_Assume, PT_Switch }
 
enum  { kSanitizerStatKindBits = 3 }
 
enum  SanitizerStatKind {
  SanStat_CFI_VCall, SanStat_CFI_NVCall, SanStat_CFI_DerivedCast, SanStat_CFI_UnrelatedCast,
  SanStat_CFI_ICall
}
 
enum  LoopUnrollResult { LoopUnrollResult::Unmodified, LoopUnrollResult::PartiallyUnrolled, LoopUnrollResult::FullyUnrolled }
 Represents the result of a UnrollLoop invocation. More...
 
enum  RemapFlags {
  RF_None = 0, RF_NoModuleLevelChanges = 1, RF_IgnoreMissingLocals = 2, RF_MoveDistinctMDs = 4,
  RF_NullMapMissingGlobalValues = 8
}
 These are flags that the value mapping APIs allow. More...
 
enum  AccelTableKind { AccelTableKind::Default, AccelTableKind::None, AccelTableKind::Apple, AccelTableKind::Dwarf }
 The kind of accelerator tables we should emit. More...
 
enum  AArch64FrameOffsetStatus { AArch64FrameOffsetCannotUpdate = 0x0, AArch64FrameOffsetIsLegal = 0x1, AArch64FrameOffsetCanUpdate = 0x2 }
 Use to report the frame offset status in isAArch64FrameOffsetLegal. More...
 
enum  SIScheduleCandReason {
  NoCand, RegUsage, Latency, Successor,
  Depth, NodeOrder
}
 
enum  SIScheduleBlockLinkKind { NoData, Data }
 
enum  SISchedulerBlockCreatorVariant { LatenciesAlone, LatenciesGrouped, LatenciesAlonePlusConsecutive }
 
enum  SISchedulerBlockSchedulerVariant { BlockLatencyRegUsage, BlockRegUsageLatency, BlockRegUsage }
 
enum  NEONModImmType { VMOVModImm, VMVNModImm, OtherModImm }
 
enum  AddressSpace {
  ADDRESS_SPACE_GENERIC = 0, ADDRESS_SPACE_GLOBAL = 1, ADDRESS_SPACE_SHARED = 3, ADDRESS_SPACE_CONST = 4,
  ADDRESS_SPACE_LOCAL = 5, ADDRESS_SPACE_PARAM = 101
}
 
enum  { SM_SentinelUndef = -1, SM_SentinelZero = -2 }
 
enum  {
  TB_INDEX_0 = 0, TB_INDEX_1 = 1, TB_INDEX_2 = 2, TB_INDEX_3 = 3,
  TB_INDEX_4 = 4, TB_INDEX_MASK = 0xf, TB_NO_REVERSE = 1 << 4, TB_NO_FORWARD = 1 << 5,
  TB_FOLDED_LOAD = 1 << 6, TB_FOLDED_STORE = 1 << 7, TB_ALIGN_SHIFT = 8, TB_ALIGN_NONE = 0 << TB_ALIGN_SHIFT,
  TB_ALIGN_16 = 16 << TB_ALIGN_SHIFT, TB_ALIGN_32 = 32 << TB_ALIGN_SHIFT, TB_ALIGN_64 = 64 << TB_ALIGN_SHIFT, TB_ALIGN_MASK = 0xff << TB_ALIGN_SHIFT
}
 
enum  IntrinsicType : uint16_t {
  GATHER, SCATTER, PREFETCH, RDSEED,
  RDRAND, RDPMC, RDTSC, XTEST,
  XGETBV, ADX, FPCLASSS, INTR_TYPE_1OP,
  INTR_TYPE_2OP, INTR_TYPE_3OP, INTR_TYPE_4OP, INTR_TYPE_3OP_IMM8,
  CMP_MASK_CC, CMP_MASK_SCALAR_CC, VSHIFT, COMI,
  COMI_RM, CVTPD2PS, CVTPD2PS_MASK, CVTPD2PS_RND_MASK,
  INTR_TYPE_1OP_MASK, INTR_TYPE_1OP_MASK_RM, INTR_TYPE_2OP_MASK, INTR_TYPE_2OP_MASK_RM,
  INTR_TYPE_3OP_MASK, IFMA_OP, VPERM_2OP, INTR_TYPE_SCALAR_MASK,
  INTR_TYPE_SCALAR_MASK_RM, INTR_TYPE_3OP_SCALAR_MASK, COMPRESS_EXPAND_IN_REG, TRUNCATE_TO_REG,
  CVTPS2PH_MASK, CVTPD2I_MASK, TRUNCATE_TO_MEM_VI8, TRUNCATE_TO_MEM_VI16,
  TRUNCATE_TO_MEM_VI32, FIXUPIMM, FIXUPIMM_MASKZ, FIXUPIMMS,
  FIXUPIMMS_MASKZ, GATHER_AVX2, ROUNDP, ROUNDS
}
 
enum  OverflowCheckFlavor {
  OCF_UNSIGNED_ADD, OCF_SIGNED_ADD, OCF_UNSIGNED_SUB, OCF_SIGNED_SUB,
  OCF_UNSIGNED_MUL, OCF_SIGNED_MUL, OCF_INVALID
}
 Specific patterns of overflow check idioms that we match. More...
 
enum  : unsigned { InvalidVN = ~2U }
 

Functions

template<typename T >
bool any_isa (const Any &Value)
 
template<class T >
T any_cast (const Any &Value)
 
template<class T >
T any_cast (Any &Value)
 
template<class T >
T any_cast (Any &&Value)
 
template<class T >
const Tany_cast (const Any *Value)
 
template<class T >
Tany_cast (Any *Value)
 
hash_code hash_value (const APFloat &Arg)
 See friend declarations above. More...
 
APFloat scalbn (APFloat X, int Exp, APFloat::roundingMode RM)
 
APFloat frexp (const APFloat &X, int &Exp, APFloat::roundingMode RM)
 Equivalent of C standard library function. More...
 
APFloat abs (APFloat X)
 Returns the absolute value of the argument. More...
 
APFloat neg (APFloat X)
 Returns the negated value of the argument. More...
 
LLVM_READONLY APFloat minnum (const APFloat &A, const APFloat &B)
 Implements IEEE minNum semantics. More...
 
LLVM_READONLY APFloat maxnum (const APFloat &A, const APFloat &B)
 Implements IEEE maxNum semantics. More...
 
LLVM_READONLY APFloat minimum (const APFloat &A, const APFloat &B)
 Implements IEEE 754-2018 minimum semantics. More...
 
LLVM_READONLY APFloat maximum (const APFloat &A, const APFloat &B)
 Implements IEEE 754-2018 maximum semantics. More...
 
APInt operator- (APInt)
 
bool operator== (uint64_t V1, const APInt &V2)
 
bool operator!= (uint64_t V1, const APInt &V2)
 
APInt operator~ (APInt v)
 Unary bitwise complement operator. More...
 
APInt operator & (APInt a, const APInt &b)
 
APInt operator & (const APInt &a, APInt &&b)
 
APInt operator & (APInt a, uint64_t RHS)
 
APInt operator & (uint64_t LHS, APInt b)
 
APInt operator| (APInt a, const APInt &b)
 
APInt operator| (const APInt &a, APInt &&b)
 
APInt operator| (APInt a, uint64_t RHS)
 
APInt operator| (uint64_t LHS, APInt b)
 
APInt operator^ (APInt a, const APInt &b)
 
APInt operator^ (const APInt &a, APInt &&b)
 
APInt operator^ (APInt a, uint64_t RHS)
 
APInt operator^ (uint64_t LHS, APInt b)
 
raw_ostreamoperator<< (raw_ostream &OS, const APInt &I)
 
APInt operator+ (APInt a, const APInt &b)
 
APInt operator+ (const APInt &a, APInt &&b)
 
APInt operator+ (APInt a, uint64_t RHS)
 
APInt operator+ (uint64_t LHS, APInt b)
 
APInt operator- (APInt a, const APInt &b)
 
APInt operator- (const APInt &a, APInt &&b)
 
APInt operator- (APInt a, uint64_t RHS)
 
APInt operator- (uint64_t LHS, APInt b)
 
APInt operator* (APInt a, uint64_t RHS)
 
APInt operator* (uint64_t LHS, APInt b)
 
hash_code hash_value (const APInt &Arg)
 
bool operator== (int64_t V1, const APSInt &V2)
 
bool operator!= (int64_t V1, const APSInt &V2)
 
bool operator<= (int64_t V1, const APSInt &V2)
 
bool operator>= (int64_t V1, const APSInt &V2)
 
bool operator< (int64_t V1, const APSInt &V2)
 
bool operator> (int64_t V1, const APSInt &V2)
 
raw_ostreamoperator<< (raw_ostream &OS, const APSInt &I)
 
template<typename T >
hash_code hash_value (ArrayRef< T > S)
 
template<typename To , typename From , typename = typename std::enable_if<sizeof(To) == sizeof(From)>::type>
To bit_cast (const From &from) noexcept
 
 LLVM_ENABLE_BITMASK_ENUMS_IN_NAMESPACE ()
 
size_t capacity_in_bytes (const BitVector &X)
 
template<class T >
bf_iterator< Tbf_begin (const T &G)
 
template<class T >
bf_iterator< Tbf_end (const T &G)
 
template<class T >
iterator_range< bf_iterator< T > > breadth_first (const T &G)
 
template<typename DerivedT , typename KeyT , typename ValueT , typename KeyInfoT , typename BucketT >
bool operator== (const DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT > &LHS, const DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT > &RHS)
 Equality comparison for DenseMap. More...
 
template<typename DerivedT , typename KeyT , typename ValueT , typename KeyInfoT , typename BucketT >
bool operator!= (const DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT > &LHS, const DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT > &RHS)
 Inequality comparison for DenseMap. More...
 
template<typename KeyT , typename ValueT , typename KeyInfoT >
size_t capacity_in_bytes (const DenseMap< KeyT, ValueT, KeyInfoT > &X)
 
template<class T >
df_iterator< Tdf_begin (const T &G)
 
template<class T >
df_iterator< Tdf_end (const T &G)
 
template<class T >
iterator_range< df_iterator< T > > depth_first (const T &G)
 
template<class T , class SetTy >
df_ext_iterator< T, SetTydf_ext_begin (const T &G, SetTy &S)
 
template<class T , class SetTy >
df_ext_iterator< T, SetTydf_ext_end (const T &G, SetTy &S)
 
template<class T , class SetTy >
iterator_range< df_ext_iterator< T, SetTy > > depth_first_ext (const T &G, SetTy &S)
 
template<class T >
idf_iterator< Tidf_begin (const T &G)
 
template<class T >
idf_iterator< Tidf_end (const T &G)
 
template<class T >
iterator_range< idf_iterator< T > > inverse_depth_first (const T &G)
 
template<class T , class SetTy >
idf_ext_iterator< T, SetTyidf_ext_begin (const T &G, SetTy &S)
 
template<class T , class SetTy >
idf_ext_iterator< T, SetTyidf_ext_end (const T &G, SetTy &S)
 
template<class T , class SetTy >
iterator_range< idf_ext_iterator< T, SetTy > > inverse_depth_first_ext (const T &G, SetTy &S)
 
template<typename T >
unsigned ComputeEditDistance (ArrayRef< T > FromArray, ArrayRef< T > ToArray, bool AllowReplacements=true, unsigned MaxEditDistance=0)
 Determine the edit distance between two sequences. More...
 
template<class GraphType >
iterator_range< typename GraphTraits< GraphType >::nodes_iterator > nodes (const GraphType &G)
 
template<class GraphType >
iterator_range< typename GraphTraits< Inverse< GraphType > >::nodes_iterator > inverse_nodes (const GraphType &G)
 
template<class GraphType >
iterator_range< typename GraphTraits< GraphType >::ChildIteratorType > children (const typename GraphTraits< GraphType >::NodeRef &G)
 
template<class GraphType >
iterator_range< typename GraphTraits< Inverse< GraphType > >::ChildIteratorType > inverse_children (const typename GraphTraits< GraphType >::NodeRef &G)
 
template<class GraphType >
iterator_range< typename GraphTraits< GraphType >::ChildEdgeIteratorType > children_edges (const typename GraphTraits< GraphType >::NodeRef &G)
 
template<typename T >
std::enable_if< is_integral_or_enum< T >::value, hash_code >::type hash_value (T value)
 Compute a hash_code for any integer value. More...
 
template<typename T >
hash_code hash_value (const T *ptr)
 Compute a hash_code for a pointer's address. More...
 
template<typename T , typename U >
hash_code hash_value (const std::pair< T, U > &arg)
 Compute a hash_code for a pair of objects. More...
 
template<typename T >
hash_code hash_value (const std::basic_string< T > &arg)
 Compute a hash_code for a standard string. More...
 
void set_fixed_execution_hash_seed (uint64_t fixed_value)
 Override the execution seed with a fixed value. More...
 
template<typename InputIteratorT >
hash_code hash_combine_range (InputIteratorT first, InputIteratorT last)
 Compute a hash_code for a sequence of values. More...
 
template<typename ... Ts>
hash_code hash_combine (const Ts &...args)
 Combine values into a single hash_code. More...
 
template<class T , class U >
bool operator== (const IntrusiveRefCntPtr< T > &A, const IntrusiveRefCntPtr< U > &B)
 
template<class T , class U >
bool operator!= (const IntrusiveRefCntPtr< T > &A, const IntrusiveRefCntPtr< U > &B)
 
template<class T , class U >
bool operator== (const IntrusiveRefCntPtr< T > &A, U *B)
 
template<class T , class U >
bool operator!= (const IntrusiveRefCntPtr< T > &A, U *B)
 
template<class T , class U >
bool operator== (T *A, const IntrusiveRefCntPtr< U > &B)
 
template<class T , class U >
bool operator!= (T *A, const IntrusiveRefCntPtr< U > &B)
 
template<class T >
bool operator== (std::nullptr_t A, const IntrusiveRefCntPtr< T > &B)
 
template<class T >
bool operator== (const IntrusiveRefCntPtr< T > &A, std::nullptr_t B)
 
template<class T >
bool operator!= (std::nullptr_t A, const IntrusiveRefCntPtr< T > &B)
 
template<class T >
bool operator!= (const IntrusiveRefCntPtr< T > &A, std::nullptr_t B)
 
template<typename RangeT , typename WrappedIteratorT = decltype(std::begin(std::declval<RangeT>()))>
iterator_range< pointee_iterator< WrappedIteratorT > > make_pointee_range (RangeT &&Range)
 
template<typename RangeT , typename WrappedIteratorT = decltype(std::begin(std::declval<RangeT>()))>
iterator_range< pointer_iterator< WrappedIteratorT > > make_pointer_range (RangeT &&Range)
 
template<class T >
iterator_range< Tmake_range (T x, T y)
 Convenience function for iterating over sub-ranges. More...
 
template<typename T >
iterator_range< Tmake_range (std::pair< T, T > p)
 
template<typename T >
iterator_range< decltype(adl_begin(std::declval< T >)))> drop_begin (T &&t, int n)
 
template<typename T , typename U >
bool operator== (const Optional< T > &X, const Optional< U > &Y)
 
template<typename T , typename U >
bool operator!= (const Optional< T > &X, const Optional< U > &Y)
 
template<typename T , typename U >
bool operator< (const Optional< T > &X, const Optional< U > &Y)
 
template<typename T , typename U >
bool operator<= (const Optional< T > &X, const Optional< U > &Y)
 
template<typename T , typename U >
bool operator> (const Optional< T > &X, const Optional< U > &Y)
 
template<typename T , typename U >
bool operator>= (const Optional< T > &X, const Optional< U > &Y)
 
template<typename T >
bool operator== (const Optional< T > &X, NoneType)
 
template<typename T >
bool operator== (NoneType, const Optional< T > &X)
 
template<typename T >
bool operator!= (const Optional< T > &X, NoneType)
 
template<typename T >
bool operator!= (NoneType, const Optional< T > &X)
 
template<typename T >
bool operator< (const Optional< T > &X, NoneType)
 
template<typename T >
bool operator< (NoneType, const Optional< T > &X)
 
template<typename T >
bool operator<= (const Optional< T > &X, NoneType)
 
template<typename T >
bool operator<= (NoneType, const Optional< T > &X)
 
template<typename T >
bool operator> (const Optional< T > &X, NoneType)
 
template<typename T >
bool operator> (NoneType, const Optional< T > &X)
 
template<typename T >
bool operator>= (const Optional< T > &X, NoneType)
 
template<typename T >
bool operator>= (NoneType, const Optional< T > &X)
 
template<typename T >
bool operator== (const Optional< T > &X, const T &Y)
 
template<typename T >
bool operator== (const T &X, const Optional< T > &Y)
 
template<typename T >
bool operator!= (const Optional< T > &X, const T &Y)
 
template<typename T >
bool operator!= (const T &X, const Optional< T > &Y)
 
template<typename T >
bool operator< (const Optional< T > &X, const T &Y)
 
template<typename T >
bool operator< (const T &X, const Optional< T > &Y)
 
template<typename T >
bool operator<= (const Optional< T > &X, const T &Y)
 
template<typename T >
bool operator<= (const T &X, const Optional< T > &Y)
 
template<typename T >
bool operator> (const Optional< T > &X, const T &Y)
 
template<typename T >
bool operator> (const T &X, const Optional< T > &Y)
 
template<typename T >
bool operator>= (const Optional< T > &X, const T &Y)
 
template<typename T >
bool operator>= (const T &X, const Optional< T > &Y)
 
template<typename PT1 , typename PT2 >
bool operator== (PointerUnion< PT1, PT2 > lhs, PointerUnion< PT1, PT2 > rhs)
 
template<typename PT1 , typename PT2 >
bool operator!= (PointerUnion< PT1, PT2 > lhs, PointerUnion< PT1, PT2 > rhs)
 
template<typename PT1 , typename PT2 >
bool operator< (PointerUnion< PT1, PT2 > lhs, PointerUnion< PT1, PT2 > rhs)
 
template<typename PT1 , typename PT2 , typename PT3 >
bool operator< (PointerUnion3< PT1, PT2, PT3 > lhs, PointerUnion3< PT1, PT2, PT3 > rhs)
 
template<class T >
po_iterator< Tpo_begin (const T &G)
 
template<class T >
po_iterator< Tpo_end (const T &G)
 
template<class T >
iterator_range< po_iterator< T > > post_order (const T &G)
 
template<class T , class SetType >
po_ext_iterator< T, SetType > po_ext_begin (T G, SetType &S)
 
template<class T , class SetType >
po_ext_iterator< T, SetType > po_ext_end (T G, SetType &S)
 
template<class T , class SetType >
iterator_range< po_ext_iterator< T, SetType > > post_order_ext (const T &G, SetType &S)
 
template<class T >
ipo_iterator< Tipo_begin (const T &G)
 
template<class T >
ipo_iterator< Tipo_end (const T &G)
 
template<class T >
iterator_range< ipo_iterator< T > > inverse_post_order (const T &G)
 
template<class T , class SetType >
ipo_ext_iterator< T, SetType > ipo_ext_begin (const T &G, SetType &S)
 
template<class T , class SetType >
ipo_ext_iterator< T, SetType > ipo_ext_end (const T &G, SetType &S)
 
template<class T , class SetType >
iterator_range< ipo_ext_iterator< T, SetType > > inverse_post_order_ext (const T &G, SetType &S)
 
template<class T >
scc_iterator< Tscc_begin (const T &G)
 Construct the begin iterator for a deduced graph type T. More...
 
template<class T >
scc_iterator< Tscc_end (const T &G)
 Construct the end iterator for a deduced graph type T. More...
 
template<typename Callable >
LLVM_NODISCARD detail::scope_exit< typename std::decay< Callable >::typemake_scope_exit (Callable &&F)
 
template<typename ValueT >
iterator_range< detail::value_sequence_iterator< ValueT > > seq (ValueT Begin, ValueT End)
 
template<class S1Ty , class S2Ty >
bool set_union (S1Ty &S1, const S2Ty &S2)
 set_union(A, B) - Compute A := A u B, return whether A changed. More...
 
template<class S1Ty , class S2Ty >
void set_intersect (S1Ty &S1, const S2Ty &S2)
 set_intersect(A, B) - Compute A := A ^ B Identical to set_intersection, except that it works on set<>'s and is nicer to use. More...
 
template<class S1Ty , class S2Ty >
S1Ty set_difference (const S1Ty &S1, const S2Ty &S2)
 set_difference(A, B) - Return A - B More...
 
template<class S1Ty , class S2Ty >
void set_subtract (S1Ty &S1, const S2Ty &S2)
 set_subtract(A, B) - Compute A := A - B More...
 
SmallBitVector operator & (const SmallBitVector &LHS, const SmallBitVector &RHS)
 
SmallBitVector operator| (const SmallBitVector &LHS, const SmallBitVector &RHS)
 
SmallBitVector operator^ (const SmallBitVector &LHS, const SmallBitVector &RHS)
 
template<typename T , unsigned N>
size_t capacity_in_bytes (const SmallVector< T, N > &X)
 
template<unsigned ElementSize>
bool operator|= (SparseBitVector< ElementSize > &LHS, const SparseBitVector< ElementSize > *RHS)
 
template<unsigned ElementSize>
bool operator|= (SparseBitVector< ElementSize > *LHS, const SparseBitVector< ElementSize > &RHS)
 
template<unsigned ElementSize>
bool operator&= (SparseBitVector< ElementSize > *LHS, const SparseBitVector< ElementSize > &RHS)
 
template<unsigned ElementSize>
bool operator&= (SparseBitVector< ElementSize > &LHS, const SparseBitVector< ElementSize > *RHS)
 
template<unsigned ElementSize>
SparseBitVector< ElementSize > operator| (const SparseBitVector< ElementSize > &LHS, const SparseBitVector< ElementSize > &RHS)
 
template<unsigned ElementSize>
SparseBitVector< ElementSize > operator & (const SparseBitVector< ElementSize > &LHS, const SparseBitVector< ElementSize > &RHS)
 
template<unsigned ElementSize>
SparseBitVector< ElementSize > operator- (const SparseBitVector< ElementSize > &LHS, const SparseBitVector< ElementSize > &RHS)
 
template<unsigned ElementSize>
void dump (const SparseBitVector< ElementSize > &LHS, raw_ostream &out)
 
void EnableStatistics (bool PrintOnExit=true)
 Enable the collection and printing of statistics. More...
 
bool AreStatisticsEnabled ()
 Check if statistics are enabled. More...
 
std::unique_ptr< raw_fd_ostreamCreateInfoOutputFile ()
 Return a file stream to print our output on. More...
 
void PrintStatistics ()
 Print statistics to the file returned by CreateInfoOutputFile(). More...
 
void PrintStatistics (raw_ostream &OS)
 Print statistics to the given output stream. More...
 
void PrintStatisticsJSON (raw_ostream &OS)
 Print statistics in JSON format. More...
 
const std::vector< std::pair< StringRef, unsigned > > GetStatistics ()
 Get the statistics. More...
 
void ResetStatistics ()
 Reset the statistics. More...
 
template<class T >
void deleter (T *Ptr)
 
template<typename ContainerTy >
auto adl_begin (ContainerTy &&container) -> decltype(adl_detail::adl_begin(std::forward< ContainerTy >(container)))
 
template<typename ContainerTy >
auto adl_end (ContainerTy &&container) -> decltype(adl_detail::adl_end(std::forward< ContainerTy >(container)))
 
template<typename T >
void adl_swap (T &&lhs, T &&rhs) noexcept(noexcept(adl_detail::adl_swap(std::declval< T >(), std::declval< T >())))
 
template<typename T >
constexpr bool empty (const T &RangeOrContainer)
 Test whether RangeOrContainer is empty. Similar to C++17 std::empty. More...
 
template<class ItTy , class FuncTy >
mapped_iterator< ItTy, FuncTy > map_iterator (ItTy I, FuncTy F)
 
template<typename ContainerTy >
auto reverse (ContainerTy &&C, typename std::enable_if< has_rbegin< ContainerTy >::value >::type *=nullptr) -> decltype(make_range(C.rbegin(), C.rend()))
 
template<typename IteratorTy >
std::reverse_iterator< IteratorTy > make_reverse_iterator (IteratorTy It)
 
template<typename ContainerTy >
auto reverse (ContainerTy &&C, typename std::enable_if<!has_rbegin< ContainerTy >::value >::type *=nullptr) -> decltype(make_range(llvm::make_reverse_iterator(std::end(C)), llvm::make_reverse_iterator(std::begin(C))))
 
template<typename RangeT , typename PredicateT >
iterator_range< filter_iterator< detail::IterOfRange< RangeT >, PredicateT > > make_filter_range (RangeT &&Range, PredicateT Pred)
 Convenience function that takes a range of elements and a predicate, and return a new filter_iterator range. More...
 
template<typename RangeT >
iterator_range< early_inc_iterator_impl< detail::IterOfRange< RangeT > > > make_early_inc_range (RangeT &&Range)
 Make a range that does early increment to allow mutation of the underlying range without disrupting iteration. More...
 
template<typename R , typename UnaryPredicate >
bool all_of (R &&Range, UnaryPredicate P)
 Provide wrappers to std::all_of which take ranges instead of having to pass begin/end explicitly. More...
 
template<typename R , typename UnaryPredicate >
bool any_of (R &&Range, UnaryPredicate P)
 Provide wrappers to std::any_of which take ranges instead of having to pass begin/end explicitly. More...
 
template<typename T , typename U , typename... Args>
detail::zippy< detail::zip_shortest, T, U, Args... > zip (T &&t, U &&u, Args &&... args)
 zip iterator for two or more iteratable types. More...
 
template<typename T , typename U , typename... Args>
detail::zippy< detail::zip_first, T, U, Args... > zip_first (T &&t, U &&u, Args &&... args)
 zip iterator that, for the sake of efficiency, assumes the first iteratee to be the shortest. More...
 
template<typename T , typename U , typename... Args>
detail::zip_longest_range< T, U, Args... > zip_longest (T &&t, U &&u, Args &&... args)
 Iterate over two or more iterators at the same time. More...
 
template<typename ValueT , typename... RangeTs>
detail::concat_range< ValueT, RangeTs... > concat (RangeTs &&... Ranges)
 Concatenated range across two or more ranges. More...
 
template<class T , std::size_t N>
constexpr size_t array_lengthof (T(&)[N])
 Find the length of an array. More...
 
template<typename T >
int array_pod_sort_comparator (const void *P1, const void *P2)
 Adapt std::less<T> for array_pod_sort. More...
 
template<class IteratorTy >
void array_pod_sort (IteratorTy Start, IteratorTy End)
 array_pod_sort - This sorts an array with the specified start and end extent. More...
 
template<class IteratorTy >
void array_pod_sort (IteratorTy Start, IteratorTy End, int(*Compare)(const typename std::iterator_traits< IteratorTy >::value_type *, const typename std::iterator_traits< IteratorTy >::value_type *))
 
template<typename IteratorTy >
void sort (IteratorTy Start, IteratorTy End)
 
template<typename Container >
void sort (Container &&C)
 
template<typename IteratorTy , typename Compare >
void sort (IteratorTy Start, IteratorTy End, Compare Comp)
 
template<typename Container , typename Compare >
void sort (Container &&C, Compare Comp)
 
template<typename Container >
void DeleteContainerPointers (Container &C)
 For a container of pointers, deletes the pointers and then clears the container. More...
 
template<typename Container >
void DeleteContainerSeconds (Container &C)
 In a container of pairs (usually a map) whose second element is a pointer, deletes the second elements and then clears the container. More...
 
template<typename R >
auto size (R &&Range, typename std::enable_if< std::is_same< typename std::iterator_traits< decltype(Range.begin())>::iterator_category, std::random_access_iterator_tag >::value, void >::type *=nullptr) -> decltype(std::distance(Range.begin(), Range.end()))
 Get the size of a range. More...
 
template<typename R , typename UnaryPredicate >
UnaryPredicate for_each (R &&Range, UnaryPredicate P)
 Provide wrappers to std::for_each which take ranges instead of having to pass begin/end explicitly. More...
 
template<typename R , typename UnaryPredicate >
bool none_of (R &&Range, UnaryPredicate P)
 Provide wrappers to std::none_of which take ranges instead of having to pass begin/end explicitly. More...
 
template<typename R , typename T >
auto find (R &&Range, const T &Val) -> decltype(adl_begin(Range))
 Provide wrappers to std::find which take ranges instead of having to pass begin/end explicitly. More...
 
template<typename R , typename UnaryPredicate >
auto find_if (R &&Range, UnaryPredicate P) -> decltype(adl_begin(Range))
 Provide wrappers to std::find_if which take ranges instead of having to pass begin/end explicitly. More...
 
template<typename R , typename UnaryPredicate >
auto find_if_not (R &&Range, UnaryPredicate P) -> decltype(adl_begin(Range))
 
template<typename R , typename UnaryPredicate >
auto remove_if (R &&Range, UnaryPredicate P) -> decltype(adl_begin(Range))
 Provide wrappers to std::remove_if which take ranges instead of having to pass begin/end explicitly. More...
 
template<typename R , typename OutputIt , typename UnaryPredicate >
OutputIt copy_if (R &&Range, OutputIt Out, UnaryPredicate P)
 Provide wrappers to std::copy_if which take ranges instead of having to pass begin/end explicitly. More...
 
template<typename R , typename OutputIt >
OutputIt copy (R &&Range, OutputIt Out)
 
template<typename R , typename E >
bool is_contained (R &&Range, const E &Element)
 Wrapper function around std::find to detect if an element exists in a container. More...
 
template<typename R , typename E >
auto count (R &&Range, const E &Element) -> typename std::iterator_traits< decltype(adl_begin(Range))>::difference_type
 Wrapper function around std::count to count the number of times an element Element occurs in the given range Range. More...
 
template<typename R , typename UnaryPredicate >
auto count_if (R &&Range, UnaryPredicate P) -> typename std::iterator_traits< decltype(adl_begin(Range))>::difference_type
 Wrapper function around std::count_if to count the number of times an element satisfying a given predicate occurs in a range. More...
 
template<typename R , typename OutputIt , typename UnaryPredicate >
OutputIt transform (R &&Range, OutputIt d_first, UnaryPredicate P)
 Wrapper function around std::transform to apply a function to a range and store the result elsewhere. More...
 
template<typename R , typename UnaryPredicate >
auto partition (R &&Range, UnaryPredicate P) -> decltype(adl_begin(Range))
 Provide wrappers to std::partition which take ranges instead of having to pass begin/end explicitly. More...
 
template<typename R , typename ForwardIt >
auto lower_bound (R &&Range, ForwardIt I) -> decltype(adl_begin(Range))
 Provide wrappers to std::lower_bound which take ranges instead of having to pass begin/end explicitly. More...
 
template<typename R , typename ForwardIt , typename Compare >
auto lower_bound (R &&Range, ForwardIt I, Compare C) -> decltype(adl_begin(Range))
 
template<typename R , typename ForwardIt >
auto upper_bound (R &&Range, ForwardIt I) -> decltype(adl_begin(Range))
 Provide wrappers to std::upper_bound which take ranges instead of having to pass begin/end explicitly. More...
 
template<typename R , typename ForwardIt , typename Compare >
auto upper_bound (R &&Range, ForwardIt I, Compare C) -> decltype(adl_begin(Range))
 
template<typename R >
bool is_splat (R &&Range)
 Wrapper function around std::equal to detect if all elements in a container are same. More...
 
template<unsigned Size, typename R >
SmallVector< typename std::remove_const< detail::ValueOfRange< R > >::type, Sizeto_vector (R &&Range)
 Given a range of type R, iterate the entire range and return a SmallVector with elements of the vector. More...
 
template<typename Container , typename UnaryPredicate >
void erase_if (Container &C, UnaryPredicate P)
 Provide a container algorithm similar to C++ Library Fundamentals v2's erase_if which is equivalent to: More...
 
template<class T , class... Args>
std::enable_if<!std::is_array< T >::value, std::unique_ptr< T > >::type make_unique (Args &&... args)
 Constructs a new T() with the given args and returns a unique_ptr<T> which owns the object. More...
 
template<class T >
std::enable_if< std::is_array< T >::value &&std::extent< T >::value==0, std::unique_ptr< T > >::type make_unique (size_t n)
 Constructs a new T[n] with the given args and returns a unique_ptr<T[]> which owns the object. More...
 
template<class T , class... Args>
std::enable_if< std::extent< T >::value !=0 >::type make_unique (Args &&...)=delete
 This function isn't used and is only here to provide better compile errors. More...
 
template<typename R >
detail::enumerator< R > enumerate (R &&TheRange)
 Given an input range, returns a new range whose values are are pair (A,B) such that A is the 0-based index of the item in the sequence, and B is the value from the original sequence. More...
 
template<typename F , typename Tuple >
auto apply_tuple (F &&f, Tuple &&t) -> decltype(detail::apply_tuple_impl(std::forward< F >(f), std::forward< Tuple >(t), build_index_impl< std::tuple_size< typename std::decay< Tuple >::type >::value >
 Given an input tuple (a1, a2, ..., an), pass the arguments of the tuple variadically to f as if by calling f(a1, a2, ..., an) and return the result. More...
 
template<typename IterTy >
bool hasNItems (IterTy &&Begin, IterTy &&End, unsigned N, typename std::enable_if< !std::is_same< typename std::iterator_traits< typename std::remove_reference< decltype(Begin)>::type >::iterator_category, std::random_access_iterator_tag >::value, void >::type *=nullptr)
 Return true if the sequence [Begin, End) has exactly N items. More...
 
template<typename IterTy >
bool hasNItemsOrMore (IterTy &&Begin, IterTy &&End, unsigned N, typename std::enable_if< !std::is_same< typename std::iterator_traits< typename std::remove_reference< decltype(Begin)>::type >::iterator_category, std::random_access_iterator_tag >::value, void >::type *=nullptr)
 Return true if the sequence [Begin, End) has N or more items. More...
 
char hexdigit (unsigned X, bool LowerCase=false)
 hexdigit - Return the hexadecimal character for the given number X (which should be less than 16). More...
 
std::vector< StringReftoStringRefArray (const char *const *Strings)
 Given an array of c-style strings terminated by a null pointer, construct a vector of StringRefs representing the same strings without the terminating null string. More...
 
StringRef toStringRef (bool B)
 Construct a string ref from a boolean. More...
 
StringRef toStringRef (ArrayRef< uint8_t > Input)
 Construct a string ref from an array ref of unsigned chars. More...
 
ArrayRef< uint8_t > arrayRefFromStringRef (StringRef Input)
 Construct a string ref from an array ref of unsigned chars. More...
 
unsigned hexDigitValue (char C)
 Interpret the given character C as a hexadecimal digit and return its value. More...
 
bool isDigit (char C)
 Checks if character C is one of the 10 decimal digits. More...
 
bool isHexDigit (char C)
 Checks if character C is a hexadecimal numeric character. More...
 
bool isAlpha (char C)
 Checks if character C is a valid letter as classified by "C" locale. More...
 
bool isAlnum (char C)
 Checks whether character C is either a decimal digit or an uppercase or lowercase letter as classified by "C" locale. More...
 
bool isASCII (char C)
 Checks whether character C is valid ASCII (high bit is zero). More...
 
bool isASCII (llvm::StringRef S)
 Checks whether all characters in S are ASCII. More...
 
bool isPrint (char C)
 Checks whether character C is printable. More...
 
char toLower (char x)
 Returns the corresponding lowercase character if x is uppercase. More...
 
char toUpper (char x)
 Returns the corresponding uppercase character if x is lowercase. More...
 
std::string utohexstr (uint64_t X, bool LowerCase=false)
 
std::string toHex (StringRef Input, bool LowerCase=false)
 Convert buffer Input to its hexadecimal representation. More...
 
std::string toHex (ArrayRef< uint8_t > Input, bool LowerCase=false)
 
uint8_t hexFromNibbles (char MSB, char LSB)
 
std::string fromHex (StringRef Input)
 Convert hexadecimal string Input to its binary representation. More...
 
template<typename N >
bool to_integer (StringRef S, N &Num, unsigned Base=0)
 Convert the string S to an integer of the specified type using the radix Base. More...
 
bool to_float (const Twine &T, float &Num)
 
bool to_float (const Twine &T, double &Num)
 
bool to_float (const Twine &T, long double &Num)
 
std::string utostr (uint64_t X, bool isNeg=false)
 
std::string itostr (int64_t X)
 
StringRef::size_type StrInStrNoCase (StringRef s1, StringRef s2)
 StrInStrNoCase - Portable version of strcasestr. More...
 
std::pair< StringRef, StringRefgetToken (StringRef Source, StringRef Delimiters=" \\\)
 getToken - This function extracts one token from source, ignoring any leading characters that appear in the Delimiters string, and ending the token at any of the characters that appear in the Delimiters string. More...
 
void SplitString (StringRef Source, SmallVectorImpl< StringRef > &OutFragments, StringRef Delimiters=" \\\)
 SplitString - Split up the specified string according to the specified delimiters, appending the result fragments to the output list. More...
 
StringRef getOrdinalSuffix (unsigned Val)
 Returns the English suffix for an ordinal integer (-st, -nd, -rd, -th). More...
 
void printEscapedString (StringRef Name, raw_ostream &Out)
 Print each character of the specified string, escaping it if it is not printable or if it is an escape char. More...
 
void printHTMLEscaped (StringRef String, raw_ostream &Out)
 Print each character of the specified string, escaping HTML special characters. More...
 
void printLowerCase (StringRef String, raw_ostream &Out)
 printLowerCase - Print each character as lowercase if it is uppercase. More...
 
template<typename IteratorT >
std::string join (IteratorT Begin, IteratorT End, StringRef Separator)
 Joins the strings in the range [Begin, End), adding Separator between the elements. More...
 
template<typename Range >
std::string join (Range &&R, StringRef Separator)
 Joins the strings in the range [R.begin(), R.end()), adding Separator between the elements. More...
 
template<typename Sep , typename... Args>
std::string join_items (Sep Separator, Args &&... Items)
 Joins the strings in the parameter pack Items, adding Separator between the elements. More...
 
bool getAsUnsignedInteger (StringRef Str, unsigned Radix, unsigned long long &Result)
 Helper functions for StringRef::getAsInteger. More...
 
bool getAsSignedInteger (StringRef Str, unsigned Radix, long long &Result)
 
bool consumeUnsignedInteger (StringRef &Str, unsigned Radix, unsigned long long &Result)
 
bool consumeSignedInteger (StringRef &Str, unsigned Radix, long long &Result)
 
LLVM_NODISCARD hash_code hash_value (StringRef S)
 Compute a hash_code for a StringRef. More...
 
raw_ostreamoperator<< (raw_ostream &OS, AliasResult AR)
 << operator for AliasResult. More...
 
LLVM_NODISCARD bool isNoModRef (const ModRefInfo MRI)
 
LLVM_NODISCARD bool isModOrRefSet (const ModRefInfo MRI)
 
LLVM_NODISCARD bool isModAndRefSet (const ModRefInfo MRI)
 
LLVM_NODISCARD bool isModSet (const ModRefInfo MRI)
 
LLVM_NODISCARD bool isRefSet (const ModRefInfo MRI)
 
LLVM_NODISCARD bool isMustSet (const ModRefInfo MRI)
 
LLVM_NODISCARD ModRefInfo setMod (const ModRefInfo MRI)
 
LLVM_NODISCARD ModRefInfo setRef (const ModRefInfo MRI)
 
LLVM_NODISCARD ModRefInfo setMust (const ModRefInfo MRI)
 
LLVM_NODISCARD ModRefInfo setModAndRef (const ModRefInfo MRI)
 
LLVM_NODISCARD ModRefInfo clearMod (const ModRefInfo MRI)
 
LLVM_NODISCARD ModRefInfo clearRef (const ModRefInfo MRI)
 
LLVM_NODISCARD ModRefInfo clearMust (const ModRefInfo MRI)
 
LLVM_NODISCARD ModRefInfo unionModRef (const ModRefInfo MRI1, const ModRefInfo MRI2)
 
LLVM_NODISCARD ModRefInfo intersectModRef (const ModRefInfo MRI1, const ModRefInfo MRI2)
 
LLVM_NODISCARD ModRefInfo createModRefInfo (const FunctionModRefBehavior FMRB)
 
bool isNoAliasCall (const Value *V)
 Return true if this pointer is returned by a noalias function. More...
 
bool isNoAliasArgument (const Value *V)
 Return true if this is an argument with the noalias attribute. More...
 
bool isIdentifiedObject (const Value *V)
 Return true if this pointer refers to a distinct and identifiable object. More...
 
bool isIdentifiedFunctionLocal (const Value *V)
 Return true if V is umabigously identified at the function-level. More...
 
FunctionPasscreateAAResultsWrapperPass ()
 
ImmutablePasscreateExternalAAWrapperPass (std::function< void(Pass &, Function &, AAResults &)> Callback)
 A wrapper pass around a callback which can be used to populate the AAResults in the AAResultsWrapperPass from an external AA. More...
 
AAResults createLegacyPMAAResults (Pass &P, Function &F, BasicAAResult &BAR)
 A helper for the legacy pass manager to create a AAResults object populated to the best of our ability for a particular function when inside of a ModulePass or a CallGraphSCCPass. More...
 
void getAAResultsAnalysisUsage (AnalysisUsage &AU)
 A helper for the legacy pass manager to populate AU to add uses to make sure the analyses required by createLegacyPMAAResults are available. More...
 
FunctionPasscreateAAEvalPass ()
 Create a wrapper of the above for the legacy pass manager. More...
 
raw_ostreamoperator<< (raw_ostream &OS, const AliasSet &AS)
 
raw_ostreamoperator<< (raw_ostream &OS, const AliasSetTracker &AST)
 
FunctionPasscreateBasicAAWrapperPass ()
 
BasicAAResult createLegacyPMBasicAAResult (Pass &P, Function &F)
 A helper for the legacy pass manager to create a BasicAAResult object populated to the best of our ability for a particular function when inside of a ModulePass or a CallGraphSCCPass. More...
 
uint32_t getWeightFromBranchProb (const BranchProbability Prob)
 
void initializeDummyCGSCCPassPass (PassRegistry &)
 
ModulePasscreateCallGraphViewerPass ()
 
ModulePasscreateCallGraphDOTPrinterPass ()
 
bool PointerMayBeCaptured (const Value *V, bool ReturnCaptures, bool StoreCaptures, unsigned MaxUsesToExplore=DefaultMaxUsesToExplore)
 PointerMayBeCaptured - Return true if this pointer value may be captured by the enclosing function (which is required to exist). More...
 
bool PointerMayBeCapturedBefore (const Value *V, bool ReturnCaptures, bool StoreCaptures, const Instruction *I, const DominatorTree *DT, bool IncludeI=false, OrderedBasicBlock *OBB=nullptr, unsigned MaxUsesToExplore=DefaultMaxUsesToExplore)
 PointerMayBeCapturedBefore - Return true if this pointer value may be captured by the enclosing function (which is required to exist). More...
 
void PointerMayBeCaptured (const Value *V, CaptureTracker *Tracker, unsigned MaxUsesToExplore=DefaultMaxUsesToExplore)
 PointerMayBeCaptured - Visit the value and the values derived from it and find values which appear to be capturing the pointer value. More...
 
void FindFunctionBackedges (const Function &F, SmallVectorImpl< std::pair< const BasicBlock *, const BasicBlock *> > &Result)
 Analyze the specified function to find all of the loop backedges in the function and return them. More...
 
unsigned GetSuccessorNumber (const BasicBlock *BB, const BasicBlock *Succ)
 Search for the specified successor of basic block BB and return its position in the terminator instruction's list of successors. More...
 
bool isCriticalEdge (const Instruction *TI, unsigned SuccNum, bool AllowIdenticalEdges=false)
 Return true if the specified edge is a critical edge. More...
 
bool isPotentiallyReachable (const Instruction *From, const Instruction *To, const DominatorTree *DT=nullptr, const LoopInfo *LI=nullptr)
 Determine whether instruction 'To' is reachable from 'From', returning true if uncertain. More...
 
bool isPotentiallyReachable (const BasicBlock *From, const BasicBlock *To, const DominatorTree *DT=nullptr, const LoopInfo *LI=nullptr)
 Determine whether block 'To' is reachable from 'From', returning true if uncertain. More...
 
bool isPotentiallyReachableFromMany (SmallVectorImpl< BasicBlock *> &Worklist, BasicBlock *StopBB, const DominatorTree *DT=nullptr, const LoopInfo *LI=nullptr)
 Determine whether there is at least one path from a block in 'Worklist' to 'StopBB', returning true if uncertain. More...
 
template<class NodeT , class RPOTraversalT , class LoopInfoT , class GT = GraphTraits<NodeT>>
bool containsIrreducibleCFG (RPOTraversalT &RPOTraversal, const LoopInfoT &LI)
 Return true if the control flow in RPOTraversal is irreducible. More...
 
FunctionPasscreateCFGPrinterLegacyPassPass ()
 
FunctionPasscreateCFGOnlyPrinterLegacyPassPass ()
 
ImmutablePasscreateCFLAndersAAWrapperPass ()
 
ImmutablePasscreateCFLSteensAAWrapperPass ()
 
template<typename CGSCCPassT >
ModuleToPostOrderCGSCCPassAdaptor< CGSCCPassT > createModuleToPostOrderCGSCCPassAdaptor (CGSCCPassT Pass)
 A function to deduce a function pass type and wrap it in the templated adaptor. More...
 
LazyCallGraph::SCCupdateCGAndAnalysisManagerForFunctionPass (LazyCallGraph &G, LazyCallGraph::SCC &C, LazyCallGraph::Node &N, CGSCCAnalysisManager &AM, CGSCCUpdateResult &UR)
 Helper to update the call graph after running a function pass. More...
 
template<typename FunctionPassT >
CGSCCToFunctionPassAdaptor< FunctionPassT > createCGSCCToFunctionPassAdaptor (FunctionPassT Pass)
 A function to deduce a function pass type and wrap it in the templated adaptor. More...
 
template<typename PassT >
DevirtSCCRepeatedPass< PassT > createDevirtSCCRepeatedPass (PassT Pass, int MaxIterations)
 A function to deduce a function pass type and wrap it in the templated adaptor. More...
 
unsigned getICmpCode (const ICmpInst *ICI, bool InvertPred=false)
 Encode a icmp predicate into a three bit mask. More...
 
ConstantgetPredForICmpCode (unsigned Code, bool Sign, Type *OpTy, CmpInst::Predicate &Pred)
 This is the complement of getICmpCode. More...
 
bool predicatesFoldable (CmpInst::Predicate P1, CmpInst::Predicate P2)
 Return true if both predicates match sign or if at least one of them is an equality comparison (which is signless). More...
 
bool decomposeBitTestICmp (Value *LHS, Value *RHS, CmpInst::Predicate &Pred, Value *&X, APInt &Mask, bool LookThroughTrunc=true)
 Decompose an icmp into the form ((X & Mask) pred 0) if possible. More...
 
bool callIsSmall (ImmutableCallSite CS)
 Check whether a call will lower to something small. More...
 
bool IsConstantOffsetFromGlobal (Constant *C, GlobalValue *&GV, APInt &Offset, const DataLayout &DL)
 If this constant is a constant offset from a global, return the global and the constant. More...
 
ConstantConstantFoldInstruction (Instruction *I, const DataLayout &DL, const TargetLibraryInfo *TLI=nullptr)
 ConstantFoldInstruction - Try to constant fold the specified instruction. More...
 
ConstantConstantFoldConstant (const Constant *C, const DataLayout &DL, const TargetLibraryInfo *TLI=nullptr)
 ConstantFoldConstant - Attempt to fold the constant using the specified DataLayout. More...
 
ConstantConstantFoldInstOperands (Instruction *I, ArrayRef< Constant *> Ops, const DataLayout &DL, const TargetLibraryInfo *TLI=nullptr)
 ConstantFoldInstOperands - Attempt to constant fold an instruction with the specified operands. More...
 
ConstantConstantFoldCompareInstOperands (unsigned Predicate, Constant *LHS, Constant *RHS, const DataLayout &DL, const TargetLibraryInfo *TLI=nullptr)
 ConstantFoldCompareInstOperands - Attempt to constant fold a compare instruction (icmp/fcmp) with the specified operands. More...
 
ConstantConstantFoldBinaryOpOperands (unsigned Opcode, Constant *LHS, Constant *RHS, const DataLayout &DL)
 Attempt to constant fold a binary operation with the specified operands. More...
 
ConstantConstantFoldSelectInstruction (Constant *Cond, Constant *V1, Constant *V2)
 Attempt to constant fold a select instruction with the specified operands. More...
 
ConstantConstantFoldCastOperand (unsigned Opcode, Constant *C, Type *DestTy, const DataLayout &DL)
 Attempt to constant fold a cast with the specified operand. More...
 
ConstantConstantFoldInsertValueInstruction (Constant *Agg, Constant *Val, ArrayRef< unsigned > Idxs)
 ConstantFoldInsertValueInstruction - Attempt to constant fold an insertvalue instruction with the specified operands and indices. More...
 
ConstantConstantFoldExtractValueInstruction (Constant *Agg, ArrayRef< unsigned > Idxs)
 Attempt to constant fold an extractvalue instruction with the specified operands and indices. More...
 
ConstantConstantFoldInsertElementInstruction (Constant *Val, Constant *Elt, Constant *Idx)
 Attempt to constant fold an insertelement instruction with the specified operands and indices. More...
 
ConstantConstantFoldExtractElementInstruction (Constant *Val, Constant *Idx)
 Attempt to constant fold an extractelement instruction with the specified operands and indices. More...
 
ConstantConstantFoldShuffleVectorInstruction (Constant *V1, Constant *V2, Constant *Mask)
 Attempt to constant fold a shufflevector instruction with the specified operands and indices. More...
 
ConstantConstantFoldLoadFromConstPtr (Constant *C, Type *Ty, const DataLayout &DL)
 ConstantFoldLoadFromConstPtr - Return the value that a load from C would produce if it is constant and determinable. More...
 
ConstantConstantFoldLoadThroughGEPConstantExpr (Constant *C, ConstantExpr *CE)
 ConstantFoldLoadThroughGEPConstantExpr - Given a constant and a getelementptr constantexpr, return the constant value being addressed by the constant expression, or null if something is funny and we can't decide. More...
 
ConstantConstantFoldLoadThroughGEPIndices (Constant *C, ArrayRef< Constant *> Indices)
 ConstantFoldLoadThroughGEPIndices - Given a constant and getelementptr indices (with an implied zero pointer index that is not in the list), return the constant value being addressed by a virtual load, or null if something is funny and we can't decide. More...
 
bool canConstantFoldCallTo (ImmutableCallSite CS, const Function *F)
 canConstantFoldCallTo - Return true if its even possible to fold a call to the specified function. More...
 
ConstantConstantFoldCall (ImmutableCallSite CS, Function *F, ArrayRef< Constant *> Operands, const TargetLibraryInfo *TLI=nullptr)
 ConstantFoldCall - Attempt to constant fold a call to the specified function with the specified arguments, returning null if unsuccessful. More...
 
ConstantConstantFoldLoadThroughBitcast (Constant *C, Type *DestTy, const DataLayout &DL)
 ConstantFoldLoadThroughBitcast - try to cast constant to destination type returning null if unsuccessful. More...
 
bool isMathLibCallNoop (CallSite CS, const TargetLibraryInfo *TLI)
 Check whether the given call has no side-effects. More...
 
FunctionPasscreateDemandedBitsWrapperPass ()
 Create a demanded bits analysis pass. More...
 
FunctionPasscreateDependenceAnalysisWrapperPass ()
 createDependenceAnalysisPass - This creates an instance of the DependenceAnalysis wrapper pass. More...
 
FunctionPasscreateDomPrinterPass ()
 
FunctionPasscreateDomOnlyPrinterPass ()
 
FunctionPasscreateDomViewerPass ()
 
FunctionPasscreateDomOnlyViewerPass ()
 
FunctionPasscreatePostDomPrinterPass ()
 
FunctionPasscreatePostDomOnlyPrinterPass ()
 
FunctionPasscreatePostDomViewerPass ()
 
FunctionPasscreatePostDomOnlyViewerPass ()
 
EHPersonality classifyEHPersonality (const Value *Pers)
 See if the given exception handling personality function is one that we understand. More...
 
StringRef getEHPersonalityName (EHPersonality Pers)
 
EHPersonality getDefaultEHPersonality (const Triple &T)
 
bool isAsynchronousEHPersonality (EHPersonality Pers)
 Returns true if this personality function catches asynchronous exceptions. More...
 
bool isFuncletEHPersonality (EHPersonality Pers)
 Returns true if this is a personality function that invokes handler funclets (which must return to it). More...
 
bool isScopedEHPersonality (EHPersonality Pers)
 Returns true if this personality uses scope-style EH IR instructions: catchswitch, catchpad/ret, and cleanuppad/ret. More...
 
bool isNoOpWithoutInvoke (EHPersonality Pers)
 Return true if this personality may be safely removed if there are no invoke instructions remaining in the current function. More...
 
bool canSimplifyInvokeNoUnwind (const Function *F)
 
DenseMap< BasicBlock *, ColorVectorcolorEHFunclets (Function &F)
 If an EH funclet personality is in use (see isFuncletEHPersonality), this will recompute which blocks are in which funclet. More...
 
ModulePasscreateGlobalsAAWrapperPass ()
 
bool isGuard (const User *U)
 Returns true iff U has semantics of a guard. More...
 
std::vector< Instruction * > findIndirectCalls (Function &F)
 
InlineParams getInlineParams ()
 Generate the parameters to tune the inline cost analysis based only on the commandline options. More...
 
InlineParams getInlineParams (int Threshold)
 Generate the parameters to tune the inline cost analysis based on command line options. More...
 
InlineParams getInlineParams (unsigned OptLevel, unsigned SizeOptLevel)
 Generate the parameters to tune the inline cost analysis based on command line options. More...
 
int getCallsiteCost (CallSite CS, const DataLayout &DL)
 Return the cost associated with a callsite, including parameter passing and the call/return instruction. More...
 
InlineCost getInlineCost (CallSite CS, const InlineParams &Params, TargetTransformInfo &CalleeTTI, std::function< AssumptionCache &(Function &)> &GetAssumptionCache, Optional< function_ref< BlockFrequencyInfo &(Function &)>> GetBFI, ProfileSummaryInfo *PSI, OptimizationRemarkEmitter *ORE=nullptr)
 Get an InlineCost object representing the cost of inlining this callsite. More...
 
InlineCost getInlineCost (CallSite CS, Function *Callee, const InlineParams &Params, TargetTransformInfo &CalleeTTI, std::function< AssumptionCache &(Function &)> &GetAssumptionCache, Optional< function_ref< BlockFrequencyInfo &(Function &)>> GetBFI, ProfileSummaryInfo *PSI, OptimizationRemarkEmitter *ORE)
 Get an InlineCost with the callee explicitly specified. More...
 
bool isInlineViable (Function &Callee)
 Minimal filter to detect invalid constructs for inlining. More...
 
ValueSimplifyAddInst (Value *LHS, Value *RHS, bool isNSW, bool isNUW, const SimplifyQuery &Q)
 Given operands for an Add, fold the result or return null. More...
 
ValueSimplifySubInst (Value *LHS, Value *RHS, bool isNSW, bool isNUW, const SimplifyQuery &Q)
 Given operands for a Sub, fold the result or return null. More...
 
ValueSimplifyFAddInst (Value *LHS, Value *RHS, FastMathFlags FMF, const SimplifyQuery &Q)
 Given operands for an FAdd, fold the result or return null. More...
 
ValueSimplifyFSubInst (Value *LHS, Value *RHS, FastMathFlags FMF, const SimplifyQuery &Q)
 Given operands for an FSub, fold the result or return null. More...
 
ValueSimplifyFMulInst (Value *LHS, Value *RHS, FastMathFlags FMF, const SimplifyQuery &Q)
 Given operands for an FMul, fold the result or return null. More...
 
ValueSimplifyMulInst (Value *LHS, Value *RHS, const SimplifyQuery &Q)
 Given operands for a Mul, fold the result or return null. More...
 
ValueSimplifySDivInst (Value *LHS, Value *RHS, const SimplifyQuery &Q)
 Given operands for an SDiv, fold the result or return null. More...
 
ValueSimplifyUDivInst (Value *LHS, Value *RHS, const SimplifyQuery &Q)
 Given operands for a UDiv, fold the result or return null. More...
 
ValueSimplifyFDivInst (Value *LHS, Value *RHS, FastMathFlags FMF, const SimplifyQuery &Q)
 Given operands for an FDiv, fold the result or return null. More...
 
ValueSimplifySRemInst (Value *LHS, Value *RHS, const SimplifyQuery &Q)
 Given operands for an SRem, fold the result or return null. More...
 
ValueSimplifyURemInst (Value *LHS, Value *RHS, const SimplifyQuery &Q)
 Given operands for a URem, fold the result or return null. More...
 
ValueSimplifyFRemInst (Value *LHS, Value *RHS, FastMathFlags FMF, const SimplifyQuery &Q)
 Given operands for an FRem, fold the result or return null. More...
 
ValueSimplifyShlInst (Value *Op0, Value *Op1, bool isNSW, bool isNUW, const SimplifyQuery &Q)
 Given operands for a Shl, fold the result or return null. More...
 
ValueSimplifyLShrInst (Value *Op0, Value *Op1, bool isExact, const SimplifyQuery &Q)
 Given operands for a LShr, fold the result or return null. More...
 
ValueSimplifyAShrInst (Value *Op0, Value *Op1, bool isExact, const SimplifyQuery &Q)
 Given operands for a AShr, fold the result or return nulll. More...
 
ValueSimplifyAndInst (Value *LHS, Value *RHS, const SimplifyQuery &Q)
 Given operands for an And, fold the result or return null. More...
 
ValueSimplifyOrInst (Value *LHS, Value *RHS, const SimplifyQuery &Q)
 Given operands for an Or, fold the result or return null. More...
 
ValueSimplifyXorInst (Value *LHS, Value *RHS, const SimplifyQuery &Q)
 Given operands for an Xor, fold the result or return null. More...
 
ValueSimplifyICmpInst (unsigned Predicate, Value *LHS, Value *RHS, const SimplifyQuery &Q)
 Given operands for an ICmpInst, fold the result or return null. More...
 
ValueSimplifyFCmpInst (unsigned Predicate, Value *LHS, Value *RHS, FastMathFlags FMF, const SimplifyQuery &Q)
 Given operands for an FCmpInst, fold the result or return null. More...
 
ValueSimplifySelectInst (Value *Cond, Value *TrueVal, Value *FalseVal, const SimplifyQuery &Q)
 Given operands for a SelectInst, fold the result or return null. More...
 
ValueSimplifyGEPInst (Type *SrcTy, ArrayRef< Value *> Ops, const SimplifyQuery &Q)
 Given operands for a GetElementPtrInst, fold the result or return null. More...
 
ValueSimplifyInsertValueInst (Value *Agg, Value *Val, ArrayRef< unsigned > Idxs, const SimplifyQuery &Q)
 Given operands for an InsertValueInst, fold the result or return null. More...
 
ValueSimplifyInsertElementInst (Value *Vec, Value *Elt, Value *Idx, const SimplifyQuery &Q)
 Given operands for an InsertElement, fold the result or return null. More...
 
ValueSimplifyExtractValueInst (Value *Agg, ArrayRef< unsigned > Idxs, const SimplifyQuery &Q)
 Given operands for an ExtractValueInst, fold the result or return null. More...
 
ValueSimplifyExtractElementInst (Value *Vec, Value *Idx, const SimplifyQuery &Q)
 Given operands for an ExtractElementInst, fold the result or return null. More...
 
ValueSimplifyCastInst (unsigned CastOpc, Value *Op, Type *Ty, const SimplifyQuery &Q)
 Given operands for a CastInst, fold the result or return null. More...
 
ValueSimplifyShuffleVectorInst (Value *Op0, Value *Op1, Constant *Mask, Type *RetTy, const SimplifyQuery &Q)
 Given operands for a ShuffleVectorInst, fold the result or return null. More...
 
ValueSimplifyCmpInst (unsigned Predicate, Value *LHS, Value *RHS, const SimplifyQuery &Q)
 Given operands for a CmpInst, fold the result or return null. More...
 
ValueSimplifyBinOp (unsigned Opcode, Value *LHS, Value *RHS, const SimplifyQuery &Q)
 Given operands for a BinaryOperator, fold the result or return null. More...
 
ValueSimplifyFPBinOp (unsigned Opcode, Value *LHS, Value *RHS, FastMathFlags FMF, const SimplifyQuery &Q)
 Given operands for an FP BinaryOperator, fold the result or return null. More...
 
ValueSimplifyCall (ImmutableCallSite CS, const SimplifyQuery &Q)
 Given a callsite, fold the result or return null. More...
 
ValueSimplifyCall (ImmutableCallSite CS, Value *V, User::op_iterator ArgBegin, User::op_iterator ArgEnd, const SimplifyQuery &Q)
 Given a function and iterators over arguments, fold the result or return null. More...
 
ValueSimplifyCall (ImmutableCallSite CS, Value *V, ArrayRef< Value *> Args, const SimplifyQuery &Q)
 Given a function and set of arguments, fold the result or return null. More...
 
ValueSimplifyInstruction (Instruction *I, const SimplifyQuery &Q, OptimizationRemarkEmitter *ORE=nullptr)
 See if we can compute a simplified version of this instruction. More...
 
bool replaceAndRecursivelySimplify (Instruction *I, Value *SimpleV, const TargetLibraryInfo *TLI=nullptr, const DominatorTree *DT=nullptr, AssumptionCache *AC=nullptr)
 Replace all uses of 'I' with 'SimpleV' and simplify the uses recursively. More...
 
bool recursivelySimplifyInstruction (Instruction *I, const TargetLibraryInfo *TLI=nullptr, const DominatorTree *DT=nullptr, AssumptionCache *AC=nullptr)
 Recursively attempt to simplify an instruction. More...
 
const SimplifyQuery getBestSimplifyQuery (Pass &, Function &)
 
template<class T , class... TArgs>
const SimplifyQuery getBestSimplifyQuery (AnalysisManager< T, TArgs... > &, Function &)
 
const SimplifyQuery getBestSimplifyQuery (LoopStandardAnalysisResults &, const DataLayout &)
 
Interval::succ_iterator succ_begin (Interval *I)
 succ_begin/succ_end - define methods so that Intervals may be used just like BasicBlocks can with the succ_* functions, and *succ_iterator. More...
 
Interval::succ_iterator succ_end (Interval *I)
 
Interval::pred_iterator pred_begin (Interval *I)
 pred_begin/pred_end - define methods so that Intervals may be used just like BasicBlocks can with the pred_* functions, and *pred_iterator. More...
 
Interval::pred_iterator pred_end (Interval *I)
 
BasicBlockgetNodeHeader (BasicBlock *BB)
 
BasicBlockgetNodeHeader (Interval *I)
 
BasicBlockgetSourceGraphNode (Function *, BasicBlock *BB)
 
IntervalgetSourceGraphNode (IntervalPartition *IP, BasicBlock *BB)
 
void addNodeToInterval (Interval *Int, BasicBlock *BB)
 
void addNodeToInterval (Interval *Int, Interval *I)
 
function_interval_iterator intervals_begin (Function *F, bool DeleteInts=true)
 
function_interval_iterator intervals_end (Function *)
 
interval_part_interval_iterator intervals_begin (IntervalPartition &IP, bool DeleteIntervals=true)
 
interval_part_interval_iterator intervals_end (IntervalPartition &IP)
 
PasscreateIVUsersPass ()
 
void initializeLazyBFIPassPass (PassRegistry &Registry)
 Helper for client passes to initialize dependent passes for LBFI. More...
 
void initializeLazyBPIPassPass (PassRegistry &Registry)
 Helper for client passes to initialize dependent passes for LBPI. More...
 
FunctionPasscreateLintPass ()
 Create a lint pass. More...
 
void lintModule (const Module &M)
 Check a module. More...
 
void lintFunction (const Function &F)
 lintFunction - Check a function for errors, printing messages on stderr. More...
 
bool isDereferenceablePointer (const Value *V, const DataLayout &DL, const Instruction *CtxI=nullptr, const DominatorTree *DT=nullptr)
 Return true if this is always a dereferenceable pointer. More...
 
bool isDereferenceableAndAlignedPointer (const Value *V, unsigned Align, const DataLayout &DL, const Instruction *CtxI=nullptr, const DominatorTree *DT=nullptr)
 Returns true if V is always a dereferenceable pointer with alignment greater or equal than requested. More...
 
bool isDereferenceableAndAlignedPointer (const Value *V, unsigned Align, const APInt &Size, const DataLayout &DL, const Instruction *CtxI=nullptr, const DominatorTree *DT=nullptr)
 Returns true if V is always dereferenceable for Size byte with alignment greater or equal than requested. More...
 
bool isSafeToLoadUnconditionally (Value *V, unsigned Align, const DataLayout &DL, Instruction *ScanFrom=nullptr, const DominatorTree *DT=nullptr)
 Return true if we know that executing a load from this value cannot trap. More...
 
ValueFindAvailableLoadedValue (LoadInst *Load, BasicBlock *ScanBB, BasicBlock::iterator &ScanFrom, unsigned MaxInstsToScan=DefMaxInstsToScan, AliasAnalysis *AA=nullptr, bool *IsLoadCSE=nullptr, unsigned *NumScanedInst=nullptr)
 Scan backwards to see if we have the value of the given load available locally within a small number of instructions. More...
 
ValueFindAvailablePtrLoadStore (Value *Ptr, Type *AccessTy, bool AtLeastAtomic, BasicBlock *ScanBB, BasicBlock::iterator &ScanFrom, unsigned MaxInstsToScan, AliasAnalysis *AA, bool *IsLoad, unsigned *NumScanedInst)
 Scan backwards to see if we have the value of the given pointer available locally within a small number of instructions. More...
 
ValuestripIntegerCast (Value *V)
 
const SCEVreplaceSymbolicStrideSCEV (PredicatedScalarEvolution &PSE, const ValueToValueMap &PtrToStride, Value *Ptr, Value *OrigPtr=nullptr)
 Return the SCEV corresponding to a pointer with the symbolic stride replaced with constant one, assuming the SCEV predicate associated with PSE is true. More...
 
int64_t getPtrStride (PredicatedScalarEvolution &PSE, Value *Ptr, const Loop *Lp, const ValueToValueMap &StridesMap=ValueToValueMap(), bool Assume=false, bool ShouldCheckWrap=true)
 If the pointer has a constant stride return it in units of its element size. More...
 
bool sortPtrAccesses (ArrayRef< Value *> VL, const DataLayout &DL, ScalarEvolution &SE, SmallVectorImpl< unsigned > &SortedIndices)
 Attempt to sort the pointers in VL and return the sorted indices in SortedIndices, if reordering is required. More...
 
bool isConsecutiveAccess (Value *A, Value *B, const DataLayout &DL, ScalarEvolution &SE, bool CheckType=true)
 Returns true if the memory operations A and B are consecutive. More...
 
PreservedAnalyses getLoopPassPreservedAnalyses ()
 Returns the minimum set of Analyses that all loop passes must preserve. More...
 
template<class BlockT , class LoopT >
raw_ostreamoperator<< (raw_ostream &OS, const LoopBase< BlockT, LoopT > &Loop)
 
void printLoop (Loop &L, raw_ostream &OS, const std::string &Banner="")
 Function to print a loop's contents as LLVM's text IR assembly. More...
 
MDNodefindOptionMDForLoopID (MDNode *LoopID, StringRef Name)
 Find and return the loop attribute node for the attribute Name in LoopID. More...
 
MDNodefindOptionMDForLoop (const Loop *TheLoop, StringRef Name)
 Find string metadata for a loop. More...
 
bool isValidAsAccessGroup (MDNode *AccGroup)
 Return whether an MDNode might represent an access group. More...
 
template<class BlockT , class LoopT >
static void discoverAndMapSubloop (LoopT *L, ArrayRef< BlockT *> Backedges, LoopInfoBase< BlockT, LoopT > *LI, const DomTreeBase< BlockT > &DomTree)
 Stable LoopInfo Analysis - Build a loop tree using stable iterators so the result does / not depend on use list (block predecessor) order. More...
 
template<typename T >
bool compareVectors (std::vector< T > &BB1, std::vector< T > &BB2)
 
template<class BlockT , class LoopT >
void addInnerLoopsToHeadersMap (DenseMap< BlockT *, const LoopT *> &LoopHeaders, const LoopInfoBase< BlockT, LoopT > &LI, const LoopT &L)
 
template<class BlockT , class LoopT >
static void compareLoops (const LoopT *L, const LoopT *OtherL, DenseMap< BlockT *, const LoopT *> &OtherLoopHeaders)
 
bool isAllocationFn (const Value *V, const TargetLibraryInfo *TLI, bool LookThroughBitCast=false)
 Tests if a value is a call or invoke to a library function that allocates or reallocates memory (either malloc, calloc, realloc, or strdup like). More...
 
bool isNoAliasFn (const Value *V, const TargetLibraryInfo *TLI, bool LookThroughBitCast=false)
 Tests if a value is a call or invoke to a function that returns a NoAlias pointer (including malloc/calloc/realloc/strdup-like functions). More...
 
bool isMallocLikeFn (const Value *V, const TargetLibraryInfo *TLI, bool LookThroughBitCast=false)
 Tests if a value is a call or invoke to a library function that allocates uninitialized memory (such as malloc). More...
 
bool isCallocLikeFn (const Value *V, const TargetLibraryInfo *TLI, bool LookThroughBitCast=false)
 Tests if a value is a call or invoke to a library function that allocates zero-filled memory (such as calloc). More...
 
bool isMallocOrCallocLikeFn (const Value *V, const TargetLibraryInfo *TLI, bool LookThroughBitCast=false)
 Tests if a value is a call or invoke to a library function that allocates memory similar to malloc or calloc. More...
 
bool isAllocLikeFn (const Value *V, const TargetLibraryInfo *TLI, bool LookThroughBitCast=false)
 Tests if a value is a call or invoke to a library function that allocates memory (either malloc, calloc, or strdup like). More...
 
const CallInstextractMallocCall (const Value *I, const TargetLibraryInfo *TLI)
 extractMallocCall - Returns the corresponding CallInst if the instruction is a malloc call. More...
 
CallInstextractMallocCall (Value *I, const TargetLibraryInfo *TLI)
 
PointerTypegetMallocType (const CallInst *CI, const TargetLibraryInfo *TLI)
 getMallocType - Returns the PointerType resulting from the malloc call. More...
 
TypegetMallocAllocatedType (const CallInst *CI, const TargetLibraryInfo *TLI)
 getMallocAllocatedType - Returns the Type allocated by malloc call. More...
 
ValuegetMallocArraySize (CallInst *CI, const DataLayout &DL, const TargetLibraryInfo *TLI, bool LookThroughSExt=false)
 getMallocArraySize - Returns the array size of a malloc call. More...
 
const CallInstextractCallocCall (const Value *I, const TargetLibraryInfo *TLI)
 extractCallocCall - Returns the corresponding CallInst if the instruction is a calloc call. More...
 
CallInstextractCallocCall (Value *I, const TargetLibraryInfo *TLI)
 
const CallInstisFreeCall (const Value *I, const TargetLibraryInfo *TLI)
 isFreeCall - Returns non-null if the value is a call to the builtin free() More...
 
CallInstisFreeCall (Value *I, const TargetLibraryInfo *TLI)
 
bool getObjectSize (const Value *Ptr, uint64_t &Size, const DataLayout &DL, const TargetLibraryInfo *TLI, ObjectSizeOpts Opts={})
 Compute the size of the object pointed by Ptr. More...
 
ConstantIntlowerObjectSizeCall (IntrinsicInst *ObjectSize, const DataLayout &DL, const TargetLibraryInfo *TLI, bool MustSucceed)
 Try to turn a call to @llvm.objectsize into an integer value of the given Type. More...
 
raw_ostreamoperator<< (raw_ostream &OS, LocationSize Size)
 
raw_ostreamoperator<< (raw_ostream &OS, const MemoryAccess &MA)
 
upward_defs_iterator upward_defs_begin (const MemoryAccessPair &Pair)
 
upward_defs_iterator upward_defs_end ()
 
iterator_range< upward_defs_iteratorupward_defs (const MemoryAccessPair &Pair)
 
template<class T >
iterator_range< def_chain_iterator< T > > def_chain (T MA, MemoryAccess *UpTo=nullptr)
 
template<class T >
iterator_range< def_chain_iterator< T, true > > optimized_def_chain (T MA)
 
ModuleSummaryIndex buildModuleSummaryIndex (const Module &M, std::function< BlockFrequencyInfo *(const Function &F)> GetBFICallback, ProfileSummaryInfo *PSI)
 Direct function to compute a ModuleSummaryIndex from a given module. More...
 
ModulePasscreateModuleSummaryIndexWrapperPass ()
 
ImmutablePasscreateObjCARCAAWrapperPass ()
 
FunctionPasscreatePAEvalPass ()
 
FunctionPasscreateLazyValueInfoPass ()
 createLazyValueInfoPass - This creates an instance of the LazyValueInfo pass. More...
 
FunctionPasscreateCostModelAnalysisPass ()
 
FunctionPasscreateDelinearizationPass ()
 
FunctionPasscreateLegacyDivergenceAnalysisPass ()
 
FunctionPasscreateInstCountPass ()
 
FunctionPasscreateRegionInfoPass ()
 
ModulePasscreateModuleDebugInfoPrinterPass ()
 
FunctionPasscreateMemDepPrinter ()
 
FunctionPasscreateMemDerefPrinter ()
 
FunctionPasscreateMustExecutePrinter ()
 
FunctionPasscreatePostDomTree ()
 
template<class Tr >
raw_ostreamoperator<< (raw_ostream &OS, const RegionNodeBase< Tr > &Node)
 Print a RegionNode. More...
 
template<class NodeRef , class BlockT , class RegionT >
RNSuccIterator< NodeRef, BlockT, RegionT > succ_begin (NodeRef Node)
 
template<class NodeRef , class BlockT , class RegionT >
RNSuccIterator< NodeRef, BlockT, RegionT > succ_end (NodeRef Node)
 
 RegionNodeGraphTraits (RegionNode, BasicBlock, Region)
 
 RegionGraphTraits (Region, RegionNode)
 
FunctionPasscreateRegionViewerPass ()
 
FunctionPasscreateRegionOnlyViewerPass ()
 
FunctionPasscreateRegionPrinterPass ()
 
FunctionPasscreateRegionOnlyPrinterPass ()
 
void viewRegion (llvm::RegionInfo *RI)
 Open a viewer to display the GraphViz vizualization of the analysis result. More...
 
void viewRegion (const llvm::Function *F)
 Analyze the regions of a function and open its GraphViz visualization in a viewer. More...
 
void viewRegionOnly (llvm::RegionInfo *RI)
 Open a viewer to display the GraphViz vizualization of the analysis result. More...
 
void viewRegionOnly (const llvm::Function *F)
 Analyze the regions of a function and open its GraphViz visualization in a viewer. More...
 
raw_ostreamoperator<< (raw_ostream &OS, const SCEV &S)
 
raw_ostreamoperator<< (raw_ostream &OS, const SCEVPredicate &P)
 
FunctionPasscreateSCEVAAWrapperPass ()
 Creates an instance of SCEVAAWrapperPass. More...
 
bool isSafeToExpand (const SCEV *S, ScalarEvolution &SE)
 Return true if the given expression is safe to expand in the sense that all materialized values are safe to speculate anywhere their operands are defined. More...
 
bool isSafeToExpandAt (const SCEV *S, const Instruction *InsertionPoint, ScalarEvolution &SE)
 Return true if the given expression is safe to expand in the sense that all materialized values are defined and safe to speculate at the specified location and their operands are defined at this location. More...
 
template<typename SV >
void visitAll (const SCEV *Root, SV &Visitor)
 Use SCEVTraversal to visit all nodes in the given expression tree. More...
 
template<typename PredTy >
bool SCEVExprContains (const SCEV *Root, PredTy Pred)
 Return true if any node in Root satisfies the predicate Pred. More...
 
const SCEVnormalizeForPostIncUse (const SCEV *S, const PostIncLoopSet &Loops, ScalarEvolution &SE)
 Normalize S to be post-increment for all loops present in Loops. More...
 
const SCEVnormalizeForPostIncUseIf (const SCEV *S, NormalizePredTy Pred, ScalarEvolution &SE)
 Normalize S for all add recurrence sub-expressions for which Pred returns true. More...
 
const SCEVdenormalizeForPostIncUse (const SCEV *S, const PostIncLoopSet &Loops, ScalarEvolution &SE)
 Denormalize S to be post-increment for all loops present in Loops. More...
 
ImmutablePasscreateScopedNoAliasAAWrapperPass ()
 
ImmutablePasscreateTargetTransformInfoWrapperPass (TargetIRAnalysis TIRA)
 Create an analysis pass wrapper around a TTI object. More...
 
ImmutablePasscreateTypeBasedAAWrapperPass ()
 
void findDevirtualizableCallsForTypeTest (SmallVectorImpl< DevirtCallSite > &DevirtCalls, SmallVectorImpl< CallInst *> &Assumes, const CallInst *CI, DominatorTree &DT)
 Given a call to the intrinsic @llvm.type.test, find all devirtualizable call sites based on the call and return them in DevirtCalls. More...
 
void findDevirtualizableCallsForTypeCheckedLoad (SmallVectorImpl< DevirtCallSite > &DevirtCalls, SmallVectorImpl< Instruction *> &LoadedPtrs, SmallVectorImpl< Instruction *> &Preds, bool &HasNonCallUses, const CallInst *CI, DominatorTree &DT)
 Given a call to the intrinsic @llvm.type.checked.load, find all devirtualizable call sites based on the call and return them in DevirtCalls. More...
 
template<typename IRBuilderTy >
ValueEmitGEPOffset (IRBuilderTy *Builder, const DataLayout &DL, User *GEP, bool NoAssumptions=false)
 Given a getelementptr instruction/constantexpr, emit the code necessary to compute the offset from the base pointer (without adding in the base pointer). More...
 
raw_ostreamoperator<< (raw_ostream &OS, const ValueLatticeElement &Val)
 
bool canTrackArgumentsInterprocedurally (Function *F)
 Determine if the values of the given function's arguments can be tracked interprocedurally. More...
 
bool canTrackReturnsInterprocedurally (Function *F)
 Determine if the values of the given function's returns can be tracked interprocedurally. More...
 
bool canTrackGlobalVariableInterprocedurally (GlobalVariable *GV)
 Determine if the value maintained in the given global variable can be tracked interprocedurally. More...
 
void computeKnownBits (const Value *V, KnownBits &Known, const DataLayout &DL, unsigned Depth=0, AssumptionCache *AC=nullptr, const Instruction *CxtI=nullptr, const DominatorTree *DT=nullptr, OptimizationRemarkEmitter *ORE=nullptr, bool UseInstrInfo=true)
 Determine which bits of V are known to be either zero or one and return them in the KnownZero/KnownOne bit sets. More...
 
KnownBits computeKnownBits (const Value *V, const DataLayout &DL, unsigned Depth=0, AssumptionCache *AC=nullptr, const Instruction *CxtI=nullptr, const DominatorTree *DT=nullptr, OptimizationRemarkEmitter *ORE=nullptr, bool UseInstrInfo=true)
 Returns the known bits rather than passing by reference. More...
 
void computeKnownBitsFromRangeMetadata (const MDNode &Ranges, KnownBits &Known)
 Compute known bits from the range metadata. More...
 
bool haveNoCommonBitsSet (const Value *LHS, const Value *RHS, const DataLayout &DL, AssumptionCache *AC=nullptr, const Instruction *CxtI=nullptr, const DominatorTree *DT=nullptr, bool UseInstrInfo=true)
 Return true if LHS and RHS have no common bits set. More...
 
bool isKnownToBeAPowerOfTwo (const Value *V, const DataLayout &DL, bool OrZero=false, unsigned Depth=0, AssumptionCache *AC=nullptr, const Instruction *CxtI=nullptr, const DominatorTree *DT=nullptr, bool UseInstrInfo=true)
 Return true if the given value is known to have exactly one bit set when defined. More...
 
bool isOnlyUsedInZeroEqualityComparison (const Instruction *CxtI)
 
bool isKnownNonZero (const Value *V, const DataLayout &DL, unsigned Depth=0, AssumptionCache *AC=nullptr, const Instruction *CxtI=nullptr, const DominatorTree *DT=nullptr, bool UseInstrInfo=true)
 Return true if the given value is known to be non-zero when defined. More...
 
bool isKnownNegation (const Value *X, const Value *Y, bool NeedNSW=false)
 Return true if the two given values are negation. More...
 
bool isKnownNonNegative (const Value *V, const DataLayout &DL, unsigned Depth=0, AssumptionCache *AC=nullptr, const Instruction *CxtI=nullptr, const DominatorTree *DT=nullptr, bool UseInstrInfo=true)
 Returns true if the give value is known to be non-negative. More...
 
bool isKnownPositive (const Value *V, const DataLayout &DL, unsigned Depth=0, AssumptionCache *AC=nullptr, const Instruction *CxtI=nullptr, const DominatorTree *DT=nullptr, bool UseInstrInfo=true)
 Returns true if the given value is known be positive (i.e. More...
 
bool isKnownNegative (const Value *V, const DataLayout &DL, unsigned Depth=0, AssumptionCache *AC=nullptr, const Instruction *CxtI=nullptr, const DominatorTree *DT=nullptr, bool UseInstrInfo=true)
 Returns true if the given value is known be negative (i.e. More...
 
bool isKnownNonEqual (const Value *V1, const Value *V2, const DataLayout &DL, AssumptionCache *AC=nullptr, const Instruction *CxtI=nullptr, const DominatorTree *DT=nullptr, bool UseInstrInfo=true)
 Return true if the given values are known to be non-equal when defined. More...
 
bool MaskedValueIsZero (const Value *V, const APInt &Mask, const DataLayout &DL, unsigned Depth=0, AssumptionCache *AC=nullptr, const Instruction *CxtI=nullptr, const DominatorTree *DT=nullptr, bool UseInstrInfo=true)
 Return true if 'V & Mask' is known to be zero. More...
 
unsigned ComputeNumSignBits (const Value *Op, const DataLayout &DL, unsigned Depth=0, AssumptionCache *AC=nullptr, const Instruction *CxtI=nullptr, const DominatorTree *DT=nullptr, bool UseInstrInfo=true)
 Return the number of times the sign bit of the register is replicated into the other bits. More...
 
bool ComputeMultiple (Value *V, unsigned Base, Value *&Multiple, bool LookThroughSExt=false, unsigned Depth=0)
 This function computes the integer multiple of Base that equals V. More...
 
Intrinsic::ID getIntrinsicForCallSite (ImmutableCallSite ICS, const TargetLibraryInfo *TLI)
 Map a call instruction to an intrinsic ID. More...
 
bool CannotBeNegativeZero (const Value *V, const TargetLibraryInfo *TLI, unsigned Depth=0)
 Return true if we can prove that the specified FP value is never equal to -0.0. More...
 
bool CannotBeOrderedLessThanZero (const Value *V, const TargetLibraryInfo *TLI)
 Return true if we can prove that the specified FP value is either NaN or never less than -0.0. More...
 
bool isKnownNeverNaN (const Value *V, const TargetLibraryInfo *TLI, unsigned Depth=0)
 Return true if the floating-point scalar value is not a NaN or if the floating-point vector value has no NaN elements. More...
 
bool SignBitMustBeZero (const Value *V, const TargetLibraryInfo *TLI)
 Return true if we can prove that the specified FP value's sign bit is 0. More...
 
ValueisBytewiseValue (Value *V)
 If the specified value can be set by repeating the same byte in memory, return the i8 value that it is represented with. More...
 
ValueFindInsertedValue (Value *V, ArrayRef< unsigned > idx_range, Instruction *InsertBefore=nullptr)
 Given an aggregrate and an sequence of indices, see if the scalar value indexed is already around as a register, for example if it were inserted directly into the aggregrate. More...
 
ValueGetPointerBaseWithConstantOffset (Value *Ptr, int64_t &Offset, const DataLayout &DL)
 Analyze the specified pointer to see if it can be expressed as a base pointer plus a constant offset. More...
 
const ValueGetPointerBaseWithConstantOffset (const Value *Ptr, int64_t &Offset, const DataLayout &DL)
 
bool isGEPBasedOnPointerToString (const GEPOperator *GEP, unsigned CharSize=8)
 Returns true if the GEP is based on a pointer to a string (array of. More...
 
bool getConstantDataArrayInfo (const Value *V, ConstantDataArraySlice &Slice, unsigned ElementSize, uint64_t Offset=0)
 Returns true if the value V is a pointer into a ConstantDataArray. More...
 
bool getConstantStringInfo (const Value *V, StringRef &Str, uint64_t Offset=0, bool TrimAtNul=true)
 This function computes the length of a null-terminated C string pointed to by V. More...
 
uint64_t GetStringLength (const Value *V, unsigned CharSize=8)
 If we can compute the length of the string pointed to by the specified pointer, return 'len+1'. More...
 
const ValuegetArgumentAliasingToReturnedPointer (const CallBase *Call)
 This function returns call pointer argument that is considered the same by aliasing rules. More...
 
ValuegetArgumentAliasingToReturnedPointer (CallBase *Call)
 
bool isIntrinsicReturningPointerAliasingArgumentWithoutCapturing (const CallBase *Call)
 
ValueGetUnderlyingObject (Value *V, const DataLayout &DL, unsigned MaxLookup=6)
 This method strips off any GEP address adjustments and pointer casts from the specified value, returning the original object being addressed. More...
 
const ValueGetUnderlyingObject (const Value *V, const DataLayout &DL, unsigned MaxLookup=6)
 
void GetUnderlyingObjects (Value *V, SmallVectorImpl< Value *> &Objects, const DataLayout &DL, LoopInfo *LI=nullptr, unsigned MaxLookup=6)
 This method is similar to GetUnderlyingObject except that it can look through phi and select instructions and return multiple objects. More...
 
bool getUnderlyingObjectsForCodeGen (const Value *V, SmallVectorImpl< Value *> &Objects, const DataLayout &DL)
 This is a wrapper around GetUnderlyingObjects and adds support for basic ptrtoint+arithmetic+inttoptr sequences. More...
 
bool onlyUsedByLifetimeMarkers (const Value *V)
 Return true if the only users of this pointer are lifetime markers. More...
 
bool isSafeToSpeculativelyExecute (const Value *V, const Instruction *CtxI=nullptr, const DominatorTree *DT=nullptr)
 Return true if the instruction does not have any effects besides calculating the result and does not have undefined behavior. More...
 
bool mayBeMemoryDependent (const Instruction &I)
 Returns true if the result or effects of the given instructions I depend on or influence global memory. More...
 
bool isAssumeLikeIntrinsic (const Instruction *I)
 Return true if it is an intrinsic that cannot be speculated but also cannot trap. More...
 
bool isValidAssumeForContext (const Instruction *I, const Instruction *CxtI, const DominatorTree *DT=nullptr)
 Return true if it is valid to use the assumptions provided by an assume intrinsic, I, at the point in the control-flow identified by the context instruction, CxtI. More...
 
OverflowResult computeOverflowForUnsignedMul (const Value *LHS, const Value *RHS, const DataLayout &DL, AssumptionCache *AC, const Instruction *CxtI, const DominatorTree *DT, bool UseInstrInfo=true)
 
OverflowResult computeOverflowForSignedMul (const Value *LHS, const Value *RHS, const DataLayout &DL, AssumptionCache *AC, const Instruction *CxtI, const DominatorTree *DT, bool UseInstrInfo=true)
 
OverflowResult computeOverflowForUnsignedAdd (const Value *LHS, const Value *RHS, const DataLayout &DL, AssumptionCache *AC, const Instruction *CxtI, const DominatorTree *DT, bool UseInstrInfo=true)
 
OverflowResult computeOverflowForSignedAdd (const Value *LHS, const Value *RHS, const DataLayout &DL, AssumptionCache *AC=nullptr, const Instruction *CxtI=nullptr, const DominatorTree *DT=nullptr)
 
OverflowResult computeOverflowForSignedAdd (const AddOperator *Add, const DataLayout &DL, AssumptionCache *AC=nullptr, const Instruction *CxtI=nullptr, const DominatorTree *DT=nullptr)
 This version also leverages the sign bit of Add if known. More...
 
OverflowResult computeOverflowForUnsignedSub (const Value *LHS, const Value *RHS, const DataLayout &DL, AssumptionCache *AC, const Instruction *CxtI, const DominatorTree *DT)
 
OverflowResult computeOverflowForSignedSub (const Value *LHS, const Value *RHS, const DataLayout &DL, AssumptionCache *AC, const Instruction *CxtI, const DominatorTree *DT)
 
bool isOverflowIntrinsicNoWrap (const IntrinsicInst *II, const DominatorTree &DT)
 Returns true if the arithmetic part of the II 's result is used only along the paths control dependent on the computation not overflowing, II being an <op>.with.overflow intrinsic. More...
 
bool isGuaranteedToTransferExecutionToSuccessor (const Instruction *I)
 Return true if this function can prove that the instruction I will always transfer execution to one of its successors (including the next instruction that follows within a basic block). More...
 
bool isGuaranteedToTransferExecutionToSuccessor (const BasicBlock *BB)
 Returns true if this block does not contain a potential implicit exit. More...
 
bool isGuaranteedToExecuteForEveryIteration (const Instruction *I, const Loop *L)
 Return true if this function can prove that the instruction I is executed for every iteration of the loop L. More...
 
bool propagatesFullPoison (const Instruction *I)
 Return true if this function can prove that I is guaranteed to yield full-poison (all bits poison) if at least one of its operands are full-poison (all bits poison). More...
 
const ValuegetGuaranteedNonFullPoisonOp (const Instruction *I)
 Return either nullptr or an operand of I such that I will trigger undefined behavior if I is executed and that operand has a full-poison value (all bits poison). More...
 
bool programUndefinedIfFullPoison (const Instruction *PoisonI)
 Return true if this function can prove that if PoisonI is executed and yields a full-poison value (all bits poison), then that will trigger undefined behavior. More...
 
SelectPatternResult matchSelectPattern (Value *V, Value *&LHS, Value *&RHS, Instruction::CastOps *CastOp=nullptr, unsigned Depth=0)
 Pattern match integer [SU]MIN, [SU]MAX and ABS idioms, returning the kind and providing the out parameter results if we successfully match. More...
 
SelectPatternResult matchSelectPattern (const Value *V, const Value *&LHS, const Value *&RHS, Instruction::CastOps *CastOp=nullptr)
 
CmpInst::Predicate getMinMaxPred (SelectPatternFlavor SPF, bool Ordered=false)
 Return the canonical comparison predicate for the specified minimum/maximum flavor. More...
 
SelectPatternFlavor getInverseMinMaxFlavor (SelectPatternFlavor SPF)
 Return the inverse minimum/maximum flavor of the specified flavor. More...
 
CmpInst::Predicate getInverseMinMaxPred (SelectPatternFlavor SPF)
 Return the canonical inverse comparison predicate for the specified minimum/maximum flavor. More...
 
Optional< boolisImpliedCondition (const Value *LHS, const Value *RHS, const DataLayout &DL, bool LHSIsTrue=true, unsigned Depth=0)
 Return true if RHS is known to be implied true by LHS. More...
 
Optional< boolisImpliedByDomCondition (const Value *Cond, const Instruction *ContextI, const DataLayout &DL)
 Return the boolean condition value in the context of the given instruction if it is known based on dominating conditions. More...
 
bool isTriviallyVectorizable (Intrinsic::ID ID)
 Identify if the intrinsic is trivially vectorizable. More...
 
bool hasVectorInstrinsicScalarOpd (Intrinsic::ID ID, unsigned ScalarOpdIdx)
 Identifies if the intrinsic has a scalar operand. More...
 
Intrinsic::ID getVectorIntrinsicIDForCall (const CallInst *CI, const TargetLibraryInfo *TLI)
 Returns intrinsic ID for call. More...
 
unsigned getGEPInductionOperand (const GetElementPtrInst *Gep)
 Find the operand of the GEP that should be checked for consecutive stores. More...
 
ValuestripGetElementPtr (Value *Ptr, ScalarEvolution *SE, Loop *Lp)
 If the argument is a GEP, then returns the operand identified by getGEPInductionOperand. More...
 
ValuegetUniqueCastUse (Value *Ptr, Loop *Lp, Type *Ty)
 If a value has only one user that is a CastInst, return it. More...
 
ValuegetStrideFromPointer (Value *Ptr, ScalarEvolution *SE, Loop *Lp)
 Get the stride of a pointer access in a loop. More...
 
ValuefindScalarElement (Value *V, unsigned EltNo)
 Given a vector and an element number, see if the scalar value is already around as a register, for example if it were inserted then extracted from the vector. More...
 
const ValuegetSplatValue (const Value *V)
 Get splat value if the input is a splat vector or return nullptr. More...
 
MapVector< Instruction *, uint64_t > computeMinimumValueSizes (ArrayRef< BasicBlock *> Blocks, DemandedBits &DB, const TargetTransformInfo *TTI=nullptr)
 Compute a map of integer instructions to their minimum legal type size. More...
 
MDNodeuniteAccessGroups (MDNode *AccGroups1, MDNode *AccGroups2)
 Compute the union of two access-group lists. More...
 
MDNodeintersectAccessGroups (const Instruction *Inst1, const Instruction *Inst2)
 Compute the access-group list of access groups that Inst1 and Inst2 are both in. More...
 
InstructionpropagateMetadata (Instruction *I, ArrayRef< Value *> VL)
 Specifically, let Kinds = [MD_tbaa, MD_alias_scope, MD_noalias, MD_fpmath, MD_nontemporal, MD_access_group]. More...
 
ConstantcreateBitMaskForGaps (IRBuilder<> &Builder, unsigned VF, const InterleaveGroup< Instruction > &Group)
 Create a mask that filters the members of an interleave group where there are gaps. More...
 
ConstantcreateReplicatedMask (IRBuilder<> &Builder, unsigned ReplicationFactor, unsigned VF)
 Create a mask with replicated elements. More...
 
ConstantcreateInterleaveMask (IRBuilder<> &Builder, unsigned VF, unsigned NumVecs)
 Create an interleave shuffle mask. More...
 
ConstantcreateStrideMask (IRBuilder<> &Builder, unsigned Start, unsigned Stride, unsigned VF)
 Create a stride shuffle mask. More...
 
ConstantcreateSequentialMask (IRBuilder<> &Builder, unsigned Start, unsigned NumInts, unsigned NumUndefs)
 Create a sequential shuffle mask. More...
 
ValueconcatenateVectors (IRBuilder<> &Builder, ArrayRef< Value *> Vecs)
 Concatenate a list of vectors. More...
 
std::unique_ptr< ModuleparseAssemblyFile (StringRef Filename, SMDiagnostic &Err, LLVMContext &Context, SlotMapping *Slots=nullptr, bool UpgradeDebugInfo=true, StringRef DataLayoutString="")
 This function is a main interface to the LLVM Assembly Parser. More...
 
std::unique_ptr< ModuleparseAssemblyString (StringRef AsmString, SMDiagnostic &Err, LLVMContext &Context, SlotMapping *Slots=nullptr, bool UpgradeDebugInfo=true, StringRef DataLayoutString="")
 The function is a secondary interface to the LLVM Assembly Parser. More...
 
ParsedModuleAndIndex parseAssemblyFileWithIndex (StringRef Filename, SMDiagnostic &Err, LLVMContext &Context, SlotMapping *Slots=nullptr, bool UpgradeDebugInfo=true, StringRef DataLayoutString="")
 This function is a main interface to the LLVM Assembly Parser. More...
 
std::unique_ptr< ModuleSummaryIndexparseSummaryIndexAssemblyFile (StringRef Filename, SMDiagnostic &Err)
 This function is a main interface to the LLVM Assembly Parser. More...
 
std::unique_ptr< ModuleparseAssembly (MemoryBufferRef F, SMDiagnostic &Err, LLVMContext &Context, SlotMapping *Slots=nullptr, bool UpgradeDebugInfo=true, StringRef DataLayoutString="")
 parseAssemblyFile and parseAssemblyString are wrappers around this function. More...
 
ParsedModuleAndIndex parseAssemblyWithIndex (MemoryBufferRef F, SMDiagnostic &Err, LLVMContext &Context, SlotMapping *Slots=nullptr, bool UpgradeDebugInfo=true, StringRef DataLayoutString="")
 Parse LLVM Assembly including the summary index from a MemoryBuffer. More...
 
std::unique_ptr< ModuleSummaryIndexparseSummaryIndexAssembly (MemoryBufferRef F, SMDiagnostic &Err)
 Parse LLVM Assembly for summary index from a MemoryBuffer. More...
 
bool parseAssemblyInto (MemoryBufferRef F, Module *M, ModuleSummaryIndex *Index, SMDiagnostic &Err, SlotMapping *Slots=nullptr, bool UpgradeDebugInfo=true, StringRef DataLayoutString="")
 This function is the low-level interface to the LLVM Assembly Parser. More...
 
ConstantparseConstantValue (StringRef Asm, SMDiagnostic &Err, const Module &M, const SlotMapping *Slots=nullptr)
 Parse a type and a constant value in the given string. More...
 
TypeparseType (StringRef Asm, SMDiagnostic &Err, const Module &M, const SlotMapping *Slots=nullptr)
 Parse a type in the given string. More...
 
TypeparseTypeAtBeginning (StringRef Asm, unsigned &Read, SMDiagnostic &Err, const Module &M, const SlotMapping *Slots=nullptr)
 Parse a string Asm that starts with a type. More...
 
file_magic identify_magic (StringRef magic)
 Identify the type of a binary file based on how magical it is. More...
 
std::error_code identify_magic (const Twine &path, file_magic &result)
 Get and identify path's type based on its content. More...
 
std::error_code errorToErrorCodeAndEmitErrors (LLVMContext &Ctx, Error Err)
 
template<typename T >
ErrorOr< TexpectedToErrorOrAndEmitErrors (LLVMContext &Ctx, Expected< T > Val)
 
Expected< BitcodeFileContentsgetBitcodeFileContents (MemoryBufferRef Buffer)
 Returns the contents of a bitcode file. More...
 
Expected< std::vector< BitcodeModule > > getBitcodeModuleList (MemoryBufferRef Buffer)
 Returns a list of modules in the specified bitcode buffer. More...
 
Expected< std::unique_ptr< Module > > getLazyBitcodeModule (MemoryBufferRef Buffer, LLVMContext &Context, bool ShouldLazyLoadMetadata=false, bool IsImporting=false)
 Read the header of the specified bitcode buffer and prepare for lazy deserialization of function bodies. More...
 
Expected< std::unique_ptr< Module > > getOwningLazyBitcodeModule (std::unique_ptr< MemoryBuffer > &&Buffer, LLVMContext &Context, bool ShouldLazyLoadMetadata=false, bool IsImporting=false)
 Like getLazyBitcodeModule, except that the module takes ownership of the memory buffer if successful. More...
 
Expected< std::string > getBitcodeTargetTriple (MemoryBufferRef Buffer)
 Read the header of the specified bitcode buffer and extract just the triple information. More...
 
Expected< boolisBitcodeContainingObjCCategory (MemoryBufferRef Buffer)
 Return true if Buffer contains a bitcode file with ObjC code (category or class) in it. More...
 
Expected< std::string > getBitcodeProducerString (MemoryBufferRef Buffer)
 Read the header of the specified bitcode buffer and extract just the producer string information. More...
 
Expected< std::unique_ptr< Module > > parseBitcodeFile (MemoryBufferRef Buffer, LLVMContext &Context)
 Read the specified bitcode file, returning the module. More...
 
Expected< BitcodeLTOInfogetBitcodeLTOInfo (MemoryBufferRef Buffer)
 Returns LTO information for the specified bitcode file. More...
 
Expected< std::unique_ptr< ModuleSummaryIndex > > getModuleSummaryIndex (MemoryBufferRef Buffer)
 Parse the specified bitcode buffer, returning the module summary index. More...
 
Error readModuleSummaryIndex (MemoryBufferRef Buffer, ModuleSummaryIndex &CombinedIndex, uint64_t ModuleId)
 Parse the specified bitcode buffer and merge the index into CombinedIndex. More...
 
Expected< std::unique_ptr< ModuleSummaryIndex > > getModuleSummaryIndexForFile (StringRef Path, bool IgnoreEmptyThinLTOIndexFile=false)
 Parse the module summary index out of an IR file and return the module summary index object if found, or an empty summary if not. More...
 
bool isBitcodeWrapper (const unsigned char *BufPtr, const unsigned char *BufEnd)
 isBitcodeWrapper - Return true if the given bytes are the magic bytes for an LLVM IR bitcode wrapper. More...
 
bool isRawBitcode (const unsigned char *BufPtr, const unsigned char *BufEnd)
 isRawBitcode - Return true if the given bytes are the magic bytes for raw LLVM IR bitcode (without a wrapper). More...
 
bool isBitcode (const unsigned char *BufPtr, const unsigned char *BufEnd)
 isBitcode - Return true if the given bytes are the magic bytes for LLVM IR bitcode, either with or without a wrapper. More...
 
bool SkipBitcodeWrapperHeader (const unsigned char *&BufPtr, const unsigned char *&BufEnd, bool VerifyBufferSize)
 SkipBitcodeWrapperHeader - Some systems wrap bc files with a special header for padding or other reasons. More...
 
const std::error_categoryBitcodeErrorCategory ()
 
std::error_code make_error_code (BitcodeError E)
 
void WriteBitcodeToFile (const Module &M, raw_ostream &Out, bool ShouldPreserveUseListOrder=false, const ModuleSummaryIndex *Index=nullptr, bool GenerateHash=false, ModuleHash *ModHash=nullptr)
 Write the specified module to the specified raw output stream. More...
 
void WriteThinLinkBitcodeToFile (const Module &M, raw_ostream &Out, const ModuleSummaryIndex &Index, const ModuleHash &ModHash)
 Write the specified thin link bitcode file (i.e., the minimized bitcode file) to the given raw output stream, where it will be written in a new bitcode block. More...
 
void WriteIndexToFile (const ModuleSummaryIndex &Index, raw_ostream &Out, const std::map< std::string, GVSummaryMapTy > *ModuleToSummariesForIndex=nullptr)
 Write the specified module summary index to the given raw output stream, where it will be written in a new bitcode block. More...
 
ModulePasscreateBitcodeWriterPass (raw_ostream &Str, bool ShouldPreserveUseListOrder=false, bool EmitSummaryIndex=false, bool EmitModuleHash=false)
 Create and return a pass that writes the module to the specified ostream. More...
 
bool isBitcodeWriterPass (Pass *P)
 Check whether a pass is a BitcodeWriterPass. More...
 
void emitAppleAccelTableImpl (AsmPrinter *Asm, AccelTableBase &Contents, StringRef Prefix, const MCSymbol *SecBegin, ArrayRef< AppleAccelTableData::Atom > Atoms)
 
template<typename DataT >
void emitAppleAccelTable (AsmPrinter *Asm, AccelTable< DataT > &Contents, StringRef Prefix, const MCSymbol *SecBegin)
 Emit an Apple Accelerator Table consisting of entries in the specified AccelTable. More...
 
void emitDWARF5AccelTable (AsmPrinter *Asm, AccelTable< DWARF5AccelTableData > &Contents, const DwarfDebug &DD, ArrayRef< std::unique_ptr< DwarfCompileUnit >> CUs)
 
void emitDWARF5AccelTable (AsmPrinter *Asm, AccelTable< DWARF5AccelTableStaticData > &Contents, ArrayRef< MCSymbol *> CUs, llvm::function_ref< unsigned(const DWARF5AccelTableStaticData &)> getCUIndexForEntry)
 
unsigned ComputeLinearIndex (Type *Ty, const unsigned *Indices, const unsigned *IndicesEnd, unsigned CurIndex=0)
 Compute the linearized index of a member in a nested aggregate/struct/array. More...
 
unsigned ComputeLinearIndex (Type *Ty, ArrayRef< unsigned > Indices, unsigned CurIndex=0)
 
void ComputeValueVTs (const TargetLowering &TLI, const DataLayout &DL, Type *Ty, SmallVectorImpl< EVT > &ValueVTs, SmallVectorImpl< uint64_t > *Offsets=nullptr, uint64_t StartingOffset=0)
 ComputeValueVTs - Given an LLVM IR type, compute a sequence of EVTs that represent all the individual underlying non-aggregate types that comprise it. More...
 
GlobalValueExtractTypeInfo (Value *V)
 ExtractTypeInfo - Returns the type info, possibly bitcast, encoded in V. More...
 
bool hasInlineAsmMemConstraint (InlineAsm::ConstraintInfoVector &CInfos, const TargetLowering &TLI)
 hasInlineAsmMemConstraint - Return true if the inline asm instruction being processed uses a memory 'm' constraint. More...
 
ISD::CondCode getFCmpCondCode (FCmpInst::Predicate Pred)
 getFCmpCondCode - Return the ISD condition code corresponding to the given LLVM IR floating-point condition code. More...
 
ISD::CondCode getFCmpCodeWithoutNaN (ISD::CondCode CC)
 getFCmpCodeWithoutNaN - Given an ISD condition code comparing floats, return the equivalent code if we're allowed to assume that NaNs won't occur. More...
 
ISD::CondCode getICmpCondCode (ICmpInst::Predicate Pred)
 getICmpCondCode - Return the ISD condition code corresponding to the given LLVM IR integer condition code. More...
 
bool isInTailCallPosition (ImmutableCallSite CS, const TargetMachine &TM)
 Test if the given instruction is in a position to be optimized with a tail-call. More...
 
bool attributesPermitTailCall (const Function *F, const Instruction *I, const ReturnInst *Ret, const TargetLoweringBase &TLI, bool *AllowDifferingSizes=nullptr)
 Test if given that the input instruction is in the tail call position, if there is an attribute mismatch between the caller and the callee that will inhibit tail call optimizations. More...
 
bool returnTypeIsEligibleForTailCall (const Function *F, const Instruction *I, const ReturnInst *Ret, const TargetLoweringBase &TLI)
 Test if given that the input instruction is in the tail call position if the return type or any attributes of the function will inhibit tail call optimization. More...
 
DenseMap< const MachineBasicBlock *, int > getEHScopeMembership (const MachineFunction &MF)
 
bool expandAtomicRMWToCmpXchg (AtomicRMWInst *AI, CreateCmpXchgInstFun CreateCmpXchg)
 Expand an atomic RMW instruction into a loop utilizing cmpxchg. More...
 
void linkAllBuiltinGCs ()
 FIXME: Collector instances are not useful on their own. More...
 
void linkOcamlGCPrinter ()
 Creates an ocaml-compatible metadata printer. More...
 
void linkErlangGCPrinter ()
 Creates an erlang-compatible metadata printer. More...
 
static float normalizeSpillWeight (float UseDefFreq, unsigned Size, unsigned NumInstr)
 Normalize the spill weight of a live interval. More...
 
void calculateSpillWeightsAndHints (LiveIntervals &LIS, MachineFunction &MF, VirtRegMap *VRM, const MachineLoopInfo &MLI, const MachineBlockFrequencyInfo &MBFI, VirtRegAuxInfo::NormalizingFn norm=normalizeSpillWeight)
 Compute spill weights and allocation hints for all virtual register live intervals. More...
 
const CostTblEntryCostTableLookup (ArrayRef< CostTblEntry > Tbl, int ISD, MVT Ty)
 Find in cost table, TypeTy must be comparable to CompareTy by ==. More...
 
const TypeConversionCostTblEntryConvertCostTableLookup (ArrayRef< TypeConversionCostTblEntry > Tbl, int ISD, MVT Dst, MVT Src)
 Find in type conversion cost table, TypeTy must be comparable to CompareTy by ==. More...
 
void calculateDbgEntityHistory (const MachineFunction *MF, const TargetRegisterInfo *TRI, DbgValueHistoryMap &DbgValues, DbgLabelInstrMap &DbgLabels)
 
raw_ostreamoperator<< (raw_ostream &OS, const FaultMapParser::FunctionFaultInfoAccessor &)
 
raw_ostreamoperator<< (raw_ostream &OS, const FaultMapParser::FunctionInfoAccessor &)
 
raw_ostreamoperator<< (raw_ostream &OS, const FaultMapParser &)
 
LegalizerHelper::LegalizeResult createLibcall (MachineIRBuilder &MIRBuilder, RTLIB::Libcall Libcall, const CallLowering::ArgInfo &Result, ArrayRef< CallLowering::ArgInfo > Args)
 Helper function that creates the given libcall. More...
 
const MachineInstrmachineFunctionIsIllegal (const MachineFunction &MF)
 Checks that MIR is fully legal, returns an illegal instruction if it's not, nullptr otherwise. More...
 
raw_ostreamoperator<< (raw_ostream &OS, const RegisterBank &RegBank)
 
class llvm::RegisterBankInfo ScalarAddx2 (0x00FF, GPR)
 
class llvm::RegisterBankInfo *void applyMapping (const OperandsMapper &OpdMapper) const
 Apply OpdMapper.getInstrMapping() to OpdMapper.getMI(). More...
 
unsigned getSizeInBits (unsigned Reg, const MachineRegisterInfo &MRI, const TargetRegisterInfo &TRI) const
 Get the size in bits of Reg. More...
 
bool verify (const TargetRegisterInfo &TRI) const
 Check that information hold by this instance make sense for the given TRI. More...
 
unsigned constrainRegToClass (MachineRegisterInfo &MRI, const TargetInstrInfo &TII, const RegisterBankInfo &RBI, MachineInstr &InsertPt, unsigned Reg, const TargetRegisterClass &RegClass)
 Try to constrain Reg to the specified register class. More...
 
unsigned constrainOperandRegClass (const MachineFunction &MF, const TargetRegisterInfo &TRI, MachineRegisterInfo &MRI, const TargetInstrInfo &TII, const RegisterBankInfo &RBI, MachineInstr &InsertPt, const MCInstrDesc &II, const MachineOperand &RegMO, unsigned OpIdx)
 Try to constrain Reg so that it is usable by argument OpIdx of the provided MCInstrDesc II. More...
 
bool constrainSelectedInstRegOperands (MachineInstr &I, const TargetInstrInfo &TII, const TargetRegisterInfo &TRI, const RegisterBankInfo &RBI)
 Mutate the newly-selected instruction I to constrain its (possibly generic) virtual register operands to the instruction's register class. More...
 
bool isTriviallyDead (const MachineInstr &MI, const MachineRegisterInfo &MRI)
 Check whether an instruction MI is dead: it only defines dead virtual registers, and doesn't have other side effects. More...
 
void reportGISelFailure (MachineFunction &MF, const TargetPassConfig &TPC, MachineOptimizationRemarkEmitter &MORE, MachineOptimizationRemarkMissed &R)
 Report an ISel error as a missed optimization remark to the LLVMContext's diagnostic stream. More...
 
void reportGISelFailure (MachineFunction &MF, const TargetPassConfig &TPC, MachineOptimizationRemarkEmitter &MORE, const char *PassName, StringRef Msg, const MachineInstr &MI)
 
Optional< int64_t > getConstantVRegVal (unsigned VReg, const MachineRegisterInfo &MRI)
 
const ConstantFPgetConstantFPVRegVal (unsigned VReg, const MachineRegisterInfo &MRI)
 
MachineInstrgetOpcodeDef (unsigned Opcode, unsigned Reg, const MachineRegisterInfo &MRI)
 See if Reg is defined by an single def instruction that is Opcode. More...
 
APFloat getAPFloatFromSize (double Val, unsigned Size)
 Returns an APFloat from Val converted to the appropriate size. More...
 
void getSelectionDAGFallbackAnalysisUsage (AnalysisUsage &AU)
 Modify analysis usage so it preserves passes required for the SelectionDAG fallback. More...
 
Optional< APIntConstantFoldBinOp (unsigned Opcode, const unsigned Op1, const unsigned Op2, const MachineRegisterInfo &MRI)
 
raw_ostreamoperator<< (raw_ostream &OS, const LiveRange &LR)
 
raw_ostreamoperator<< (raw_ostream &OS, const LiveInterval::SubRange &SR)
 
raw_ostreamoperator<< (raw_ostream &OS, const LiveInterval &LI)
 
raw_ostreamoperator<< (raw_ostream &OS, const LiveRange::Segment &S)
 
bool operator< (SlotIndex V, const LiveRange::Segment &S)
 
bool operator< (const LiveRange::Segment &S, SlotIndex V)
 
raw_ostreamoperator<< (raw_ostream &OS, const LiveRangeUpdater &X)
 
raw_ostreamoperator<< (raw_ostream &OS, const LivePhysRegs &LR)
 
void computeLiveIns (LivePhysRegs &LiveRegs, const MachineBasicBlock &MBB)
 Computes registers live-in to MBB assuming all of its successors live-in lists are up-to-date. More...
 
void recomputeLivenessFlags (MachineBasicBlock &MBB)
 Recomputes dead and kill flags in MBB. More...
 
void addLiveIns (MachineBasicBlock &MBB, const LivePhysRegs &LiveRegs)
 Adds registers contained in LiveRegs to the block live-in list of MBB. More...
 
void computeAndAddLiveIns (LivePhysRegs &LiveRegs, MachineBasicBlock &MBB)
 Convenience function combining computeLiveIns() and addLiveIns(). More...
 
static void recomputeLiveIns (MachineBasicBlock &MBB)
 Convenience function for recomputing live-in's for MBB. More...
 
LLT getLLTForType (Type &Ty, const DataLayout &DL)
 Construct a low-level type based on an LLVM type. More...
 
raw_ostreamoperator<< (raw_ostream &OS, const MachineBasicBlock &MBB)
 
Printable printMBBReference (const MachineBasicBlock &MBB)
 Prints a machine basic block reference. More...
 
template<typename IterT >
IterT skipDebugInstructionsForward (IterT It, IterT End)
 Increment It until it points to a non-debug instruction or to End and return the resulting iterator. More...
 
template<class IterT >
IterT skipDebugInstructionsBackward (IterT It, IterT Begin)
 Decrement It until it points to a non-debug instruction or to Begin and return the resulting iterator. More...
 
raw_ostreamoperator<< (raw_ostream &OS, const MachineConstantPoolValue &V)
 
raw_ostreamoperator<< (raw_ostream &OS, const MachineInstr &MI)
 
MachineInstrBuilder BuildMI (MachineFunction &MF, const DebugLoc &DL, const MCInstrDesc &MCID)
 Builder interface. Specify how to create the initial instruction itself. More...
 
MachineInstrBuilder BuildMI (MachineFunction &MF, const DebugLoc &DL, const MCInstrDesc &MCID, unsigned DestReg)
 This version of the builder sets up the first operand as a destination virtual register. More...
 
MachineInstrBuilder BuildMI (MachineBasicBlock &BB, MachineBasicBlock::iterator I, const DebugLoc &DL, const MCInstrDesc &MCID, unsigned DestReg)
 This version of the builder inserts the newly-built instruction before the given position in the given MachineBasicBlock, and sets up the first operand as a destination virtual register. More...
 
MachineInstrBuilder BuildMI (MachineBasicBlock &BB, MachineBasicBlock::instr_iterator I, const DebugLoc &DL, const MCInstrDesc &MCID, unsigned DestReg)
 This version of the builder inserts the newly-built instruction before the given position in the given MachineBasicBlock, and sets up the first operand as a destination virtual register. More...
 
MachineInstrBuilder BuildMI (MachineBasicBlock &BB, MachineInstr &I, const DebugLoc &DL, const MCInstrDesc &MCID, unsigned DestReg)
 
MachineInstrBuilder BuildMI (MachineBasicBlock &BB, MachineInstr *I, const DebugLoc &DL, const MCInstrDesc &MCID, unsigned DestReg)
 
MachineInstrBuilder BuildMI (MachineBasicBlock &BB, MachineBasicBlock::iterator I, const DebugLoc &DL, const MCInstrDesc &MCID)
 This version of the builder inserts the newly-built instruction before the given position in the given MachineBasicBlock, and does NOT take a destination register. More...
 
MachineInstrBuilder BuildMI (MachineBasicBlock &BB, MachineBasicBlock::instr_iterator I, const DebugLoc &DL, const MCInstrDesc &MCID)
 
MachineInstrBuilder BuildMI (MachineBasicBlock &BB, MachineInstr &I, const DebugLoc &DL, const MCInstrDesc &MCID)
 
MachineInstrBuilder BuildMI (MachineBasicBlock &BB, MachineInstr *I, const DebugLoc &DL, const MCInstrDesc &MCID)
 
MachineInstrBuilder BuildMI (MachineBasicBlock *BB, const DebugLoc &DL, const MCInstrDesc &MCID)
 This version of the builder inserts the newly-built instruction at the end of the given MachineBasicBlock, and does NOT take a destination register. More...
 
MachineInstrBuilder BuildMI (MachineBasicBlock *BB, const DebugLoc &DL, const MCInstrDesc &MCID, unsigned DestReg)
 This version of the builder inserts the newly-built instruction at the end of the given MachineBasicBlock, and sets up the first operand as a destination virtual register. More...
 
MachineInstrBuilder BuildMI (MachineFunction &MF, const DebugLoc &DL, const MCInstrDesc &MCID, bool IsIndirect, unsigned Reg, const MDNode *Variable, const MDNode *Expr)
 This version of the builder builds a DBG_VALUE intrinsic for either a value in a register or a register-indirect address. More...
 
MachineInstrBuilder BuildMI (MachineFunction &MF, const DebugLoc &DL, const MCInstrDesc &MCID, bool IsIndirect, MachineOperand &MO, const MDNode *Variable, const MDNode *Expr)
 This version of the builder builds a DBG_VALUE intrinsic for a MachineOperand. More...
 
MachineInstrBuilder BuildMI (MachineBasicBlock &BB, MachineBasicBlock::iterator I, const DebugLoc &DL, const MCInstrDesc &MCID, bool IsIndirect, unsigned Reg, const MDNode *Variable, const MDNode *Expr)
 This version of the builder builds a DBG_VALUE intrinsic for either a value in a register or a register-indirect address and inserts it at position I. More...
 
MachineInstrBuilder BuildMI (MachineBasicBlock &BB, MachineBasicBlock::iterator I, const DebugLoc &DL, const MCInstrDesc &MCID, bool IsIndirect, MachineOperand &MO, const MDNode *Variable, const MDNode *Expr)
 This version of the builder builds a DBG_VALUE intrinsic for a machine operand and inserts it at position I. More...
 
MachineInstrbuildDbgValueForSpill (MachineBasicBlock &BB, MachineBasicBlock::iterator I, const MachineInstr &Orig, int FrameIndex)
 Clone a DBG_VALUE whose value has been spilled to FrameIndex. More...
 
void updateDbgValueForSpill (MachineInstr &Orig, int FrameIndex)
 Update a DBG_VALUE whose value has been spilled to FrameIndex. More...
 
unsigned getDefRegState (bool B)
 
unsigned getImplRegState (bool B)
 
unsigned getKillRegState (bool B)
 
unsigned getDeadRegState (bool B)
 
unsigned getUndefRegState (bool B)
 
unsigned getInternalReadRegState (bool B)
 
unsigned getDebugRegState (bool B)
 
unsigned getRenamableRegState (bool B)
 
unsigned getRegState (const MachineOperand &RegOp)
 Get all register state flags from machine operand RegOp. More...
 
void finalizeBundle (MachineBasicBlock &MBB, MachineBasicBlock::instr_iterator FirstMI, MachineBasicBlock::instr_iterator LastMI)
 finalizeBundle - Finalize a machine instruction bundle which includes a sequence of instructions starting from FirstMI to LastMI (exclusive). More...
 
MachineBasicBlock::instr_iterator finalizeBundle (MachineBasicBlock &MBB, MachineBasicBlock::instr_iterator FirstMI)
 finalizeBundle - Same functionality as the previous finalizeBundle except the last instruction in the bundle is not provided as an input. More...
 
bool finalizeBundles (MachineFunction &MF)
 finalizeBundles - Finalize instruction bundles in the specified MachineFunction. More...
 
MachineBasicBlock::instr_iterator getBundleStart (MachineBasicBlock::instr_iterator I)
 Returns an iterator to the first instruction in the bundle containing I. More...
 
MachineBasicBlock::const_instr_iterator getBundleStart (MachineBasicBlock::const_instr_iterator I)
 Returns an iterator to the first instruction in the bundle containing I. More...
 
MachineBasicBlock::instr_iterator getBundleEnd (MachineBasicBlock::instr_iterator I)
 Returns an iterator pointing beyond the bundle containing I. More...
 
MachineBasicBlock::const_instr_iterator getBundleEnd (MachineBasicBlock::const_instr_iterator I)
 Returns an iterator pointing beyond the bundle containing I. More...
 
Printable printJumpTableEntryReference (unsigned Idx)
 Prints a jump table entry reference. More...
 
raw_ostreamoperator<< (raw_ostream &OS, const MachineMemOperand &MRO)
 
void computeUsesVAFloatArgument (const CallInst &I, MachineModuleInfo &MMI)
 Determine if any floating-point values are being passed to this variadic function, and set the MachineModuleInfo's usesVAFloatArgument flag if so. More...
 
raw_ostreamoperator<< (raw_ostream &OS, const MachineOperand &MO)
 
hash_code hash_value (const MachineOperand &MO)
 
 RegionNodeGraphTraits (MachineRegionNode, MachineBasicBlock, MachineRegion)
 
 RegionGraphTraits (MachineRegion, MachineRegionNode)
 
bool tryLess (int TryVal, int CandVal, GenericSchedulerBase::SchedCandidate &TryCand, GenericSchedulerBase::SchedCandidate &Cand, GenericSchedulerBase::CandReason Reason)
 Return true if this heuristic determines order. More...
 
bool tryGreater (int TryVal, int CandVal, GenericSchedulerBase::SchedCandidate &TryCand, GenericSchedulerBase::SchedCandidate &Cand, GenericSchedulerBase::CandReason Reason)
 
bool tryLatency (GenericSchedulerBase::SchedCandidate &TryCand, GenericSchedulerBase::SchedCandidate &Cand, SchedBoundary &Zone)
 
bool tryPressure (const PressureChange &TryP, const PressureChange &CandP, GenericSchedulerBase::SchedCandidate &TryCand, GenericSchedulerBase::SchedCandidate &Cand, GenericSchedulerBase::CandReason Reason, const TargetRegisterInfo *TRI, const MachineFunction &MF)
 
unsigned getWeakLeft (const SUnit *SU, bool isTop)
 
int biasPhysReg (const SUnit *SU, bool isTop)
 Minimize physical register live ranges. More...
 
ScheduleDAGMILivecreateGenericSchedLive (MachineSchedContext *C)
 Create the standard converging machine scheduler. More...
 
ScheduleDAGMIcreateGenericSchedPostRA (MachineSchedContext *C)
 Create a generic scheduler with no vreg liveness or DAG mutation passes. More...
 
std::unique_ptr< ScheduleDAGMutationcreateLoadClusterDAGMutation (const TargetInstrInfo *TII, const TargetRegisterInfo *TRI)
 
std::unique_ptr< ScheduleDAGMutationcreateStoreClusterDAGMutation (const TargetInstrInfo *TII, const TargetRegisterInfo *TRI)
 
std::unique_ptr< ScheduleDAGMutationcreateCopyConstrainDAGMutation (const TargetInstrInfo *TII, const TargetRegisterInfo *TRI)
 
raw_ostreamoperator<< (raw_ostream &OS, const MachineTraceMetrics::Trace &Tr)
 
raw_ostreamoperator<< (raw_ostream &OS, const MachineTraceMetrics::Ensemble &En)
 
std::unique_ptr< ScheduleDAGMutationcreateMacroFusionDAGMutation (ShouldSchedulePredTy shouldScheduleAdjacent)
 Create a DAG scheduling mutation to pair instructions back to back for instructions that benefit according to the target-specific shouldScheduleAdjacent predicate function. More...
 
std::unique_ptr< ScheduleDAGMutationcreateBranchMacroFusionDAGMutation (ShouldSchedulePredTy shouldScheduleAdjacent)
 Create a DAG scheduling mutation to pair branch instructions with one of their predecessors back to back for instructions that benefit according to the target-specific shouldScheduleAdjacent predicate function. More...
 
std::unique_ptr< MIRParsercreateMIRParserFromFile (StringRef Filename, SMDiagnostic &Error, LLVMContext &Context)
 This function is the main interface to the MIR serialization format parser. More...
 
std::unique_ptr< MIRParsercreateMIRParser (std::unique_ptr< MemoryBuffer > Contents, LLVMContext &Context)
 This function is another interface to the MIR serialization format parser. More...
 
void printMIR (raw_ostream &OS, const Module &M)
 Print LLVM IR using the MIR serialization format to the given output stream. More...
 
void printMIR (raw_ostream &OS, const MachineFunction &MF)
 Print a machine function using the MIR serialization format to the given output stream. More...
 
void guessSuccessors (const MachineBasicBlock &MBB, SmallVectorImpl< MachineBasicBlock *> &Result, bool &IsFallthrough)
 Determine a possible list of successors of a basic block based on the basic block machine operand being used inside the block. More...
 
std::unique_ptr< ModulesplitCodeGen (std::unique_ptr< Module > M, ArrayRef< raw_pwrite_stream *> OSs, ArrayRef< llvm::raw_pwrite_stream *> BCOSs, const std::function< std::unique_ptr< TargetMachine >()> &TMFactory, TargetMachine::CodeGenFileType FileType=TargetMachine::CGFT_ObjectFile, bool PreserveLocals=false)
 Split M into OSs.size() partitions, and generate code for each. More...
 
FunctionPasscreateAtomicExpandPass ()
 
FunctionPasscreateUnreachableBlockEliminationPass ()
 createUnreachableBlockEliminationPass - The LLVM code generator does not work well with unreachable basic blocks (what live ranges make sense for a block that cannot be reached?). More...
 
MachineFunctionPasscreateMachineFunctionPrinterPass (raw_ostream &OS, const std::string &Banner="")
 MachineFunctionPrinter pass - This pass prints out the machine function to the given stream as a debugging tool. More...
 
MachineFunctionPasscreatePrintMIRPass (raw_ostream &OS)
 MIRPrinting pass - this pass prints out the LLVM IR into the given stream using the MIR serialization format. More...
 
MachineFunctionPasscreateResetMachineFunctionPass (bool EmitFallbackDiag, bool AbortOnFailedISel)
 This pass resets a MachineFunction when it has the FailedISel property as if it was just created. More...
 
FunctionPasscreateCodeGenPreparePass ()
 createCodeGenPreparePass - Transform the code to expose more pattern matching during instruction selection. More...
 
FunctionPasscreateScalarizeMaskedMemIntrinPass ()
 createScalarizeMaskedMemIntrinPass - Replace masked load, store, gather and scatter intrinsics with scalar code when target doesn't support them. More...
 
FunctionPasscreateFastRegisterAllocator ()
 FastRegisterAllocation Pass - This pass register allocates as fast as possible. More...
 
FunctionPasscreateBasicRegisterAllocator ()
 BasicRegisterAllocation Pass - This pass implements a degenerate global register allocator using the basic regalloc framework. More...
 
FunctionPasscreateGreedyRegisterAllocator ()
 Greedy register allocation pass - This pass implements a global register allocator for optimized builds. More...
 
FunctionPasscreateDefaultPBQPRegisterAllocator ()
 PBQPRegisterAllocation Pass - This pass implements the Partitioned Boolean Quadratic Prograaming (PBQP) based register allocator. More...
 
MachineFunctionPasscreatePrologEpilogInserterPass ()
 
FunctionPasscreateIfConverter (std::function< bool(const MachineFunction &)> Ftor)
 
FunctionPasscreateGCLoweringPass ()
 GCLowering Pass - Used by gc.root to perform its default lowering operations. More...
 
FunctionPasscreateShadowStackGCLoweringPass ()
 ShadowStackGCLowering - Implements the custom lowering mechanism used by the shadow stack GC. More...
 
FunctionPasscreateGCInfoPrinter (raw_ostream &OS)
 Creates a pass to print GC metadata. More...
 
FunctionPasscreateStackProtectorPass ()
 createStackProtectorPass - This pass adds stack protectors to functions. More...
 
FunctionPasscreateMachineVerifierPass (const std::string &Banner)
 createMachineVerifierPass - This pass verifies cenerated machine code instructions for correctness. More...
 
FunctionPasscreateDwarfEHPass ()
 createDwarfEHPass - This pass mulches exception handling code into a form adapted to code generation. More...
 
FunctionPasscreateWinEHPass (bool DemoteCatchSwitchPHIOnly=false)
 createWinEHPass - Prepares personality functions used by MSVC on Windows, in addition to the Itanium LSDA based personalities. More...
 
FunctionPasscreateSjLjEHPreparePass ()
 createSjLjEHPreparePass - This pass adapts exception handling code to use the GCC-style builtin setjmp/longjmp (sjlj) to handling EH control flow. More...
 
FunctionPasscreateWasmEHPass ()
 createWasmEHPass - This pass adapts exception handling code to use WebAssembly's exception handling scheme. More...
 
FunctionPasscreateUnpackMachineBundles (std::function< bool(const MachineFunction &)> Ftor)
 
ModulePasscreateJumpInstrTablesPass ()
 createJumpInstrTables - This pass creates jump-instruction tables. More...
 
ModulePasscreateForwardControlFlowIntegrityPass ()
 createForwardControlFlowIntegrityPass - This pass adds control-flow integrity. More...
 
FunctionPasscreateInterleavedAccessPass ()
 InterleavedAccess Pass - This pass identifies and matches interleaved memory accesses to target specific intrinsics. More...
 
FunctionPasscreateInterleavedLoadCombinePass ()
 InterleavedLoadCombines Pass - This pass identifies interleaved loads and combines them into wide loads detectable by InterleavedAccessPass. More...
 
ModulePasscreateLowerEmuTLSPass ()
 LowerEmuTLS - This pass generates __emutls_[vt].xyz variables for all TLS variables for the emulated TLS model. More...
 
ModulePasscreatePreISelIntrinsicLoweringPass ()
 This pass lowers the @llvm.load.relative and @llvm.objc. More...
 
PasscreateGlobalMergePass (const TargetMachine *TM, unsigned MaximalOffset, bool OnlyOptimizeForSize=false, bool MergeExternalByDefault=false)
 GlobalMerge - This pass merges internal (by default) globals into structs to enable reuse of a base pointer by indexed addressing modes. More...
 
FunctionPasscreateSafeStackPass ()
 This pass splits the stack into a safe stack and an unsafe stack to protect against stack-based overflow vulnerabilities. More...
 
FunctionPasscreateRegUsageInfoCollector ()
 This pass is executed POST-RA to collect which physical registers are preserved by given machine function. More...
 
FunctionPasscreateRegUsageInfoPropPass ()
 Return a MachineFunction pass that identifies call sites and propagates register usage information of callee to caller if available with PysicalRegisterUsageInfo pass. More...
 
FunctionPasscreateFreeMachineFunctionPass ()
 This pass frees the memory occupied by the MachineFunction. More...
 
ModulePasscreateMachineOutlinerPass (bool RunOnAllFunctions=true)
 This pass performs outlining on machine instructions directly before printing assembly. More...
 
FunctionPasscreateExpandReductionsPass ()
 This pass expands the experimental reduction intrinsics into sequences of shuffles. More...
 
FunctionPasscreateExpandMemCmpPass ()
 
FunctionPasscreateBreakFalseDeps ()
 Creates Break False Dependencies pass. More...
 
FunctionPasscreateIndirectBrExpandPass ()
 
FunctionPasscreateCFIInstrInserter ()
 Creates CFI Instruction Inserter pass. More...
 
raw_ostreamoperator<< (raw_ostream &OS, const PseudoSourceValue *PSV)
 
FunctionPasscreatePBQPRegisterAllocator (char *customPassID=nullptr)
 Create a PBQP register allocator instance. More...
 
void dumpRegSetPressure (ArrayRef< unsigned > SetPressure, const TargetRegisterInfo *TRI)
 
void scavengeFrameVirtualRegs (MachineFunction &MF, RegScavenger &RS)
 Replaces all frame index virtual registers with physical registers. More...
 
raw_ostreamoperator<< (raw_ostream &OS, const ILPValue &Val)
 
ScheduleDAGSDNodescreateBURRListDAGScheduler (SelectionDAGISel *IS, CodeGenOpt::Level OptLevel)
 createBURRListDAGScheduler - This creates a bottom up register usage reduction list scheduler. More...
 
ScheduleDAGSDNodescreateSourceListDAGScheduler (SelectionDAGISel *IS, CodeGenOpt::Level OptLevel)
 createBURRListDAGScheduler - This creates a bottom up list scheduler that schedules nodes in source code order when possible. More...
 
ScheduleDAGSDNodescreateHybridListDAGScheduler (SelectionDAGISel *IS, CodeGenOpt::Level)
 createHybridListDAGScheduler - This creates a bottom up register pressure aware list scheduler that make use of latency information to avoid stalls for long latency instructions in low register pressure mode. More...
 
ScheduleDAGSDNodescreateILPListDAGScheduler (SelectionDAGISel *IS, CodeGenOpt::Level)
 createILPListDAGScheduler - This creates a bottom up register pressure aware list scheduler that tries to increase instruction level parallelism in low register pressure mode. More...
 
ScheduleDAGSDNodescreateFastDAGScheduler (SelectionDAGISel *IS, CodeGenOpt::Level OptLevel)
 createFastDAGScheduler - This creates a "fast" scheduler. More...
 
ScheduleDAGSDNodescreateVLIWDAGScheduler (SelectionDAGISel *IS, CodeGenOpt::Level OptLevel)
 createVLIWDAGScheduler - Scheduler for VLIW targets. More...
 
ScheduleDAGSDNodescreateDefaultScheduler (SelectionDAGISel *IS, CodeGenOpt::Level OptLevel)
 createDefaultScheduler - This creates an instruction scheduler appropriate for the target. More...
 
ScheduleDAGSDNodescreateDAGLinearizer (SelectionDAGISel *IS, CodeGenOpt::Level OptLevel)
 createDAGLinearizer - This creates a "no-scheduling" scheduler which linearize the DAG using topological order. More...
 
void checkForCycles (const SelectionDAG *DAG, bool force=false)
 
void checkForCycles (const SDNode *N, const SelectionDAG *DAG=nullptr, bool force=false)
 
bool isNullConstant (SDValue V)
 Returns true if V is a constant integer zero. More...
 
bool isNullFPConstant (SDValue V)
 Returns true if V is an FP constant with a value of positive zero. More...
 
bool isAllOnesConstant (SDValue V)
 Returns true if V is an integer constant with all bits set. More...
 
bool isOneConstant (SDValue V)
 Returns true if V is a constant integer one. More...
 
SDValue peekThroughBitcasts (SDValue V)
 Return the non-bitcasted source operand of V if it exists. More...
 
SDValue peekThroughOneUseBitcasts (SDValue V)
 Return the non-bitcasted and one-use source operand of V if it exists. More...
 
bool isBitwiseNot (SDValue V)
 Returns true if V is a bitwise not operation. More...
 
ConstantSDNodeisConstOrConstSplat (SDValue N, bool AllowUndefs=false)
 Returns the SDNode if it is a constant splat BuildVector or constant int. More...
 
ConstantFPSDNodeisConstOrConstSplatFP (SDValue N, bool AllowUndefs=false)
 Returns the SDNode if it is a constant splat BuildVector or constant float. More...
 
bool isNullOrNullSplat (SDValue V)
 Return true if the value is a constant 0 integer or a splatted vector of a constant 0 integer (with no undefs). More...
 
bool isOneOrOneSplat (SDValue V)
 Return true if the value is a constant 1 integer or a splatted vector of a constant 1 integer (with no undefs). More...
 
bool isAllOnesOrAllOnesSplat (SDValue V)
 Return true if the value is a constant -1 integer or a splatted vector of a constant -1 integer (with no undefs). More...
 
raw_ostreamoperator<< (raw_ostream &os, SlotIndex li)
 
bool operator< (SlotIndex V, const IdxMBBPair &IM)
 
bool operator< (const IdxMBBPair &IM, SlotIndex V)
 
void GetReturnInfo (CallingConv::ID CC, Type *ReturnType, AttributeList attr, SmallVectorImpl< ISD::OutputArg > &Outs, const TargetLowering &TLI, const DataLayout &DL)
 Given an LLVM IR type and return type attributes, compute the return value EVTs and flags, and optionally also the offsets, if the return value is being lowered to memory. More...
 
bool isPreISelGenericOpcode (unsigned Opcode)
 Check whether the given Opcode is a generic opcode that is not supposed to appear after ISel. More...
 
bool isTargetSpecificOpcode (unsigned Opcode)
 Check whether the given Opcode is a target-specific opcode. More...
 
Printable printReg (unsigned Reg, const TargetRegisterInfo *TRI=nullptr, unsigned SubIdx=0, const MachineRegisterInfo *MRI=nullptr)
 Prints virtual and physical registers with or without a TRI instance. More...
 
Printable printRegUnit (unsigned Unit, const TargetRegisterInfo *TRI)
 Create Printable object to print register units on a raw_ostream. More...
 
Printable printVRegOrUnit (unsigned VRegOrUnit, const TargetRegisterInfo *TRI)
 Create Printable object to print virtual registers and physical registers on a raw_ostream. More...
 
Printable printRegClassOrBank (unsigned Reg, const MachineRegisterInfo &RegInfo, const TargetRegisterInfo *TRI)
 Create Printable object to print register classes or register banks on a raw_ostream. More...
 
raw_ostreamoperator<< (raw_ostream &OS, const VirtRegMap &VRM)
 
void calculateWasmEHInfo (const Function *F, WasmEHFuncInfo &EHInfo)
 
void calculateWinCXXEHStateNumbers (const Function *ParentFn, WinEHFuncInfo &FuncInfo)
 Analyze the IR in ParentFn and it's handlers to build WinEHFuncInfo, which describes the state numbers and tables used by __CxxFrameHandler3. More...
 
void calculateSEHStateNumbers (const Function *ParentFn, WinEHFuncInfo &FuncInfo)
 
void calculateClrEHStateNumbers (const Function *Fn, WinEHFuncInfo &FuncInfo)
 
static bool operator< (const DWARFAddressRange &LHS, const DWARFAddressRange &RHS)
 
raw_ostreamoperator<< (raw_ostream &OS, const DWARFAddressRange &R)
 
bool operator== (const DWARFDie::attribute_iterator &LHS, const DWARFDie::attribute_iterator &RHS)
 
bool operator!= (const DWARFDie::attribute_iterator &LHS, const DWARFDie::attribute_iterator &RHS)
 
bool operator== (const DWARFDie &LHS, const DWARFDie &RHS)
 
bool operator!= (const DWARFDie &LHS, const DWARFDie &RHS)
 
bool operator< (const DWARFDie &LHS, const DWARFDie &RHS)
 
bool operator== (const DWARFDie::iterator &LHS, const DWARFDie::iterator &RHS)
 
bool operator!= (const DWARFDie::iterator &LHS, const DWARFDie::iterator &RHS)
 
bool operator== (const std::reverse_iterator< DWARFDie::iterator > &LHS, const std::reverse_iterator< DWARFDie::iterator > &RHS)
 
bool operator!= (const std::reverse_iterator< DWARFDie::iterator > &LHS, const std::reverse_iterator< DWARFDie::iterator > &RHS)
 
bool operator== (const DWARFExpression::iterator &LHS, const DWARFExpression::iterator &RHS)
 
bool operator!= (const DWARFExpression::iterator &LHS, const DWARFExpression::iterator &RHS)
 
const DWARFUnitIndexgetDWARFUnitIndex (DWARFContext &Context, DWARFSectionKind Kind)
 
static bool operator< (const DWARFVerifier::DieRangeInfo &LHS, const DWARFVerifier::DieRangeInfo &RHS)
 
charitaniumDemangle (const char *mangled_name, char *buf, size_t *n, int *status)
 
charmicrosoftDemangle (const char *mangled_name, char *buf, size_t *n, int *status, MSDemangleFlags Flags=MSDF_None)
 
GenericValue PTOGV (void *P)
 
void * GVTOP (const GenericValue &GV)
 
template<typename T >
T jitTargetAddressToPointer (JITTargetAddress Addr)
 Convert a JITTargetAddress to a pointer. More...
 
template<typename T >
JITTargetAddress pointerToJITTargetAddress (T *Ptr)
 
JITSymbolFlags operator & (const JITSymbolFlags &LHS, const JITSymbolFlags::FlagNames &RHS)
 
JITSymbolFlags operator| (const JITSymbolFlags &LHS, const JITSymbolFlags::FlagNames &RHS)
 
void jitLinkForORC (object::ObjectFile &Obj, std::unique_ptr< MemoryBuffer > UnderlyingBuffer, RuntimeDyld::MemoryManager &MemMgr, JITSymbolResolver &Resolver, bool ProcessAllSections, std::function< Error(std::unique_ptr< LoadedObjectInfo >, std::map< StringRef, JITEvaluatedSymbol >)> OnLoaded, std::function< void(Error)> OnEmitted)
 
void parseFuzzerCLOpts (int ArgC, char *ArgV[])
 Parse cl::opts from a fuzz target commandline. More...
 
void handleExecNameEncodedBEOpts (StringRef ExecName)
 Handle backend options that are encoded in the executable name. More...
 
void handleExecNameEncodedOptimizerOpts (StringRef ExecName)
 Handle optimizer options which are encoded in the executable name. More...
 
int runFuzzerOnInputs (int ArgC, char *ArgV[], FuzzerTestFun TestOne, FuzzerInitFun Init=[](int *, char ***) { return 0;})
 Runs a fuzz target on the inputs specified on the command line. More...
 
std::unique_ptr< ModuleparseModule (const uint8_t *Data, size_t Size, LLVMContext &Context)
 Fuzzer friendly interface for the llvm bitcode parser. More...
 
size_t writeModule (const Module &M, uint8_t *Dest, size_t MaxSize)
 Fuzzer friendly interface for the llvm bitcode printer. More...
 
std::unique_ptr< ModuleparseAndVerify (const uint8_t *Data, size_t Size, LLVMContext &Context)
 Try to parse module and verify it. More...
 
template<typename T , typename GenT >
T uniform (GenT &Gen, T Min, T Max)
 Return a uniformly distributed random value between Min and Max. More...
 
template<typename T , typename GenT >
T uniform (GenT &Gen)
 Return a uniformly distributed random value of type T. More...
 
template<typename GenT , typename RangeT , typename ElT = typename std::remove_reference< decltype(*std::begin(std::declval<RangeT>()))>::type>
ReservoirSampler< ElT, GenT > makeSampler (GenT &RandGen, RangeT &&Items)
 
template<typename GenT , typename T >
ReservoirSampler< T, GenT > makeSampler (GenT &RandGen, const T &Item, uint64_t Weight)
 
template<typename T , typename GenT >
ReservoirSampler< T, GenT > makeSampler (GenT &RandGen)
 
void initializeCore (PassRegistry &)
 Initialize all passes linked into the TransformUtils library. More...
 
void initializeTransformUtils (PassRegistry &)
 Initialize all passes linked into the TransformUtils library. More...
 
void initializeScalarOpts (PassRegistry &)
 Initialize all passes linked into the ScalarOpts library. More...
 
void initializeObjCARCOpts (PassRegistry &)
 Initialize all passes linked into the ObjCARCOpts library. More...
 
void initializeVectorization (PassRegistry &)
 Initialize all passes linked into the Vectorize library. More...
 
void initializeInstCombine (PassRegistry &)
 Initialize all passes linked into the InstCombine library. More...
 
void initializeAggressiveInstCombine (PassRegistry &)
 Initialize all passes linked into the AggressiveInstCombine library. More...
 
void initializeIPO (PassRegistry &)
 Initialize all passes linked into the IPO library. More...
 
void initializeInstrumentation (PassRegistry &)
 Initialize all passes linked into the Instrumentation library. More...
 
void initializeAnalysis (PassRegistry &)
 Initialize all passes linked into the Analysis library. More...
 
void initializeCoroutines (PassRegistry &)
 Initialize all passes linked into the Coroutines library. More...
 
void initializeCodeGen (PassRegistry &)
 Initialize all passes linked into the CodeGen library. More...
 
void initializeGlobalISel (PassRegistry &)
 Initialize all passes linked into the GlobalISel library. More...
 
void initializeTarget (PassRegistry &)
 Initialize all passes linked into the CodeGen library. More...
 
void initializeAAEvalLegacyPassPass (PassRegistry &)
 
void initializeAAResultsWrapperPassPass (PassRegistry &)
 
void initializeADCELegacyPassPass (PassRegistry &)
 
void initializeAddDiscriminatorsLegacyPassPass (PassRegistry &)
 
void initializeAddressSanitizerModulePass (PassRegistry &)
 
void initializeAddressSanitizerPass (PassRegistry &)
 
void initializeAggressiveInstCombinerLegacyPassPass (PassRegistry &)
 
void initializeAliasSetPrinterPass (PassRegistry &)
 
void initializeAlignmentFromAssumptionsPass (PassRegistry &)
 
void initializeAlwaysInlinerLegacyPassPass (PassRegistry &)
 
void initializeArgPromotionPass (PassRegistry &)
 
void initializeAssumptionCacheTrackerPass (PassRegistry &)
 
void initializeAtomicExpandPass (PassRegistry &)
 
void initializeBDCELegacyPassPass (PassRegistry &)
 
void initializeBarrierNoopPass (PassRegistry &)
 
void initializeBasicAAWrapperPassPass (PassRegistry &)
 
void initializeBlockExtractorPass (PassRegistry &)
 
void initializeBlockFrequencyInfoWrapperPassPass (PassRegistry &)
 
void initializeBoundsCheckingLegacyPassPass (PassRegistry &)
 
void initializeBranchFolderPassPass (PassRegistry &)
 
void initializeBranchProbabilityInfoWrapperPassPass (PassRegistry &)
 
void initializeBranchRelaxationPass (PassRegistry &)
 
void initializeBreakCriticalEdgesPass (PassRegistry &)
 
void initializeBreakFalseDepsPass (PassRegistry &)
 
void initializeCanonicalizeAliasesLegacyPassPass (PassRegistry &)
 
void initializeCFGOnlyPrinterLegacyPassPass (PassRegistry &)
 
void initializeCFGOnlyViewerLegacyPassPass (PassRegistry &)
 
void initializeCFGPrinterLegacyPassPass (PassRegistry &)
 
void initializeCFGSimplifyPassPass (PassRegistry &)
 
void initializeCFGViewerLegacyPassPass (PassRegistry &)
 
void initializeCFIInstrInserterPass (PassRegistry &)
 
void initializeCFLAndersAAWrapperPassPass (PassRegistry &)
 
void initializeCFLSteensAAWrapperPassPass (PassRegistry &)
 
void initializeCallGraphDOTPrinterPass (PassRegistry &)
 
void initializeCallGraphPrinterLegacyPassPass (PassRegistry &)
 
void initializeCallGraphViewerPass (PassRegistry &)
 
void initializeCallGraphWrapperPassPass (PassRegistry &)
 
void initializeCallSiteSplittingLegacyPassPass (PassRegistry &)
 
void initializeCalledValuePropagationLegacyPassPass (PassRegistry &)
 
void initializeCodeGenPreparePass (PassRegistry &)
 
void initializeConstantHoistingLegacyPassPass (PassRegistry &)
 
void initializeConstantMergeLegacyPassPass (PassRegistry &)
 
void initializeConstantPropagationPass (PassRegistry &)
 
void initializeControlHeightReductionLegacyPassPass (PassRegistry &)
 
void initializeCorrelatedValuePropagationPass (PassRegistry &)
 
void initializeCostModelAnalysisPass (PassRegistry &)
 
void initializeCrossDSOCFIPass (PassRegistry &)
 
void initializeDAEPass (PassRegistry &)
 
void initializeDAHPass (PassRegistry &)
 
void initializeDCELegacyPassPass (PassRegistry &)
 
void initializeDSELegacyPassPass (PassRegistry &)
 
void initializeDataFlowSanitizerPass (PassRegistry &)
 
void initializeDeadInstEliminationPass (PassRegistry &)
 
void initializeDeadMachineInstructionElimPass (PassRegistry &)
 
void initializeDelinearizationPass (PassRegistry &)
 
void initializeDemandedBitsWrapperPassPass (PassRegistry &)
 
void initializeDependenceAnalysisPass (PassRegistry &)
 
void initializeDependenceAnalysisWrapperPassPass (PassRegistry &)
 
void initializeDetectDeadLanesPass (PassRegistry &)
 
void initializeDivRemPairsLegacyPassPass (PassRegistry &)
 
void initializeDomOnlyPrinterPass (PassRegistry &)
 
void initializeDomOnlyViewerPass (PassRegistry &)
 
void initializeDomPrinterPass (PassRegistry &)
 
void initializeDomViewerPass (PassRegistry &)
 
void initializeDominanceFrontierWrapperPassPass (PassRegistry &)
 
void initializeDominatorTreeWrapperPassPass (PassRegistry &)
 
void initializeDwarfEHPreparePass (PassRegistry &)
 
void initializeEarlyCSELegacyPassPass (PassRegistry &)
 
void initializeEarlyCSEMemSSALegacyPassPass (PassRegistry &)
 
void initializeEarlyIfConverterPass (PassRegistry &)
 
void initializeEarlyMachineLICMPass (PassRegistry &)
 
void initializeEarlyTailDuplicatePass (PassRegistry &)
 
void initializeEdgeBundlesPass (PassRegistry &)
 
void initializeEfficiencySanitizerPass (PassRegistry &)
 
void initializeEliminateAvailableExternallyLegacyPassPass (PassRegistry &)
 
void initializeEntryExitInstrumenterPass (PassRegistry &)
 
void initializeExpandISelPseudosPass (PassRegistry &)
 
void initializeExpandMemCmpPassPass (PassRegistry &)
 
void initializeExpandPostRAPass (PassRegistry &)
 
void initializeExpandReductionsPass (PassRegistry &)
 
void initializeMakeGuardsExplicitLegacyPassPass (PassRegistry &)
 
void initializeExternalAAWrapperPassPass (PassRegistry &)
 
void initializeFEntryInserterPass (PassRegistry &)
 
void initializeFinalizeMachineBundlesPass (PassRegistry &)
 
void initializeFlattenCFGPassPass (PassRegistry &)
 
void initializeFloat2IntLegacyPassPass (PassRegistry &)
 
void initializeForceFunctionAttrsLegacyPassPass (PassRegistry &)
 
void initializeForwardControlFlowIntegrityPass (PassRegistry &)
 
void initializeFuncletLayoutPass (PassRegistry &)
 
void initializeFunctionImportLegacyPassPass (PassRegistry &)
 
void initializeGCMachineCodeAnalysisPass (PassRegistry &)
 
void initializeGCModuleInfoPass (PassRegistry &)
 
void initializeGCOVProfilerLegacyPassPass (PassRegistry &)
 
void initializeGVNHoistLegacyPassPass (PassRegistry &)
 
void initializeGVNLegacyPassPass (PassRegistry &)
 
void initializeGVNSinkLegacyPassPass (PassRegistry &)
 
void initializeGlobalDCELegacyPassPass (PassRegistry &)
 
void initializeGlobalMergePass (PassRegistry &)
 
void initializeGlobalOptLegacyPassPass (PassRegistry &)
 
void initializeGlobalSplitPass (PassRegistry &)
 
void initializeGlobalsAAWrapperPassPass (PassRegistry &)
 
void initializeGuardWideningLegacyPassPass (PassRegistry &)
 
void initializeHotColdSplittingLegacyPassPass (PassRegistry &)
 
void initializeHWAddressSanitizerPass (PassRegistry &)
 
void initializeIPCPPass (PassRegistry &)
 
void initializeIPSCCPLegacyPassPass (PassRegistry &)
 
void initializeIRCELegacyPassPass (PassRegistry &)
 
void initializeIRTranslatorPass (PassRegistry &)
 
void initializeIVUsersWrapperPassPass (PassRegistry &)
 
void initializeIfConverterPass (PassRegistry &)
 
void initializeImplicitNullChecksPass (PassRegistry &)
 
void initializeIndVarSimplifyLegacyPassPass (PassRegistry &)
 
void initializeIndirectBrExpandPassPass (PassRegistry &)
 
void initializeInferAddressSpacesPass (PassRegistry &)
 
void initializeInferFunctionAttrsLegacyPassPass (PassRegistry &)
 
void initializeInlineCostAnalysisPass (PassRegistry &)
 
void initializeInstCountPass (PassRegistry &)
 
void initializeInstNamerPass (PassRegistry &)
 
void initializeInstSimplifyLegacyPassPass (PassRegistry &)
 
void initializeInstrProfilingLegacyPassPass (PassRegistry &)
 
void initializeInstructionCombiningPassPass (PassRegistry &)
 
void initializeInstructionSelectPass (PassRegistry &)
 
void initializeInterleavedAccessPass (PassRegistry &)
 
void initializeInterleavedLoadCombinePass (PassRegistry &)
 
void initializeInternalizeLegacyPassPass (PassRegistry &)
 
void initializeIntervalPartitionPass (PassRegistry &)
 
void initializeJumpThreadingPass (PassRegistry &)
 
void initializeLCSSAVerificationPassPass (PassRegistry &)
 
void initializeLCSSAWrapperPassPass (PassRegistry &)
 
void initializeLazyBlockFrequencyInfoPassPass (PassRegistry &)
 
void initializeLazyBranchProbabilityInfoPassPass (PassRegistry &)
 
void initializeLazyMachineBlockFrequencyInfoPassPass (PassRegistry &)
 
void initializeLazyValueInfoPrinterPass (PassRegistry &)
 
void initializeLazyValueInfoWrapperPassPass (PassRegistry &)
 
void initializeLegacyDivergenceAnalysisPass (PassRegistry &)
 
void initializeLegacyLICMPassPass (PassRegistry &)
 
void initializeLegacyLoopSinkPassPass (PassRegistry &)
 
void initializeLegalizerPass (PassRegistry &)
 
void initializeGISelCSEAnalysisWrapperPassPass (PassRegistry &)
 
void initializeLibCallsShrinkWrapLegacyPassPass (PassRegistry &)
 
void initializeLintPass (PassRegistry &)
 
void initializeLiveDebugValuesPass (PassRegistry &)
 
void initializeLiveDebugVariablesPass (PassRegistry &)
 
void initializeLiveIntervalsPass (PassRegistry &)
 
void initializeLiveRangeShrinkPass (PassRegistry &)
 
void initializeLiveRegMatrixPass (PassRegistry &)
 
void initializeLiveStacksPass (PassRegistry &)
 
void initializeLiveVariablesPass (PassRegistry &)
 
void initializeLoadStoreVectorizerLegacyPassPass (PassRegistry &)
 
void initializeLoaderPassPass (PassRegistry &)
 
void initializeLocalStackSlotPassPass (PassRegistry &)
 
void initializeLocalizerPass (PassRegistry &)
 
void initializeLoopAccessLegacyAnalysisPass (PassRegistry &)
 
void initializeLoopDataPrefetchLegacyPassPass (PassRegistry &)
 
void initializeLoopDeletionLegacyPassPass (PassRegistry &)
 
void initializeLoopDistributeLegacyPass (PassRegistry &)
 
void initializeLoopExtractorPass (PassRegistry &)
 
void initializeLoopGuardWideningLegacyPassPass (PassRegistry &)
 
void initializeLoopIdiomRecognizeLegacyPassPass (PassRegistry &)
 
void initializeLoopInfoWrapperPassPass (PassRegistry &)
 
void initializeLoopInstSimplifyLegacyPassPass (PassRegistry &)
 
void initializeLoopInterchangePass (PassRegistry &)
 
void initializeLoopLoadEliminationPass (PassRegistry &)
 
void initializeLoopPassPass (PassRegistry &)
 Manually defined generic "LoopPass" dependency initialization. More...
 
void initializeLoopPredicationLegacyPassPass (PassRegistry &)
 
void initializeLoopRerollPass (PassRegistry &)
 
void initializeLoopRotateLegacyPassPass (PassRegistry &)
 
void initializeLoopSimplifyCFGLegacyPassPass (PassRegistry &)
 
void initializeLoopSimplifyPass (PassRegistry &)
 
void initializeLoopStrengthReducePass (PassRegistry &)
 
void initializeLoopUnrollAndJamPass (PassRegistry &)
 
void initializeLoopUnrollPass (PassRegistry &)
 
void initializeLoopUnswitchPass (PassRegistry &)
 
void initializeLoopVectorizePass (PassRegistry &)
 
void initializeLoopVersioningLICMPass (PassRegistry &)
 
void initializeLoopVersioningPassPass (PassRegistry &)
 
void initializeLowerAtomicLegacyPassPass (PassRegistry &)
 
void initializeLowerEmuTLSPass (PassRegistry &)
 
void initializeLowerExpectIntrinsicPass (PassRegistry &)
 
void initializeLowerGuardIntrinsicLegacyPassPass (PassRegistry &)
 
void initializeLowerIntrinsicsPass (PassRegistry &)
 
void initializeLowerInvokeLegacyPassPass (PassRegistry &)
 
void initializeLowerSwitchPass (PassRegistry &)
 
void initializeLowerTypeTestsPass (PassRegistry &)
 
void initializeMIRCanonicalizerPass (PassRegistry &)
 
void initializeMIRPrintingPassPass (PassRegistry &)
 
void initializeMachineBlockFrequencyInfoPass (PassRegistry &)
 
void initializeMachineBlockPlacementPass (PassRegistry &)
 
void initializeMachineBlockPlacementStatsPass (PassRegistry &)
 
void initializeMachineBranchProbabilityInfoPass (PassRegistry &)
 
void initializeMachineCSEPass (PassRegistry &)
 
void initializeMachineCombinerPass (PassRegistry &)
 
void initializeMachineCopyPropagationPass (PassRegistry &)
 
void initializeMachineDominanceFrontierPass (PassRegistry &)
 
void initializeMachineDominatorTreePass (PassRegistry &)
 
void initializeMachineFunctionPrinterPassPass (PassRegistry &)
 
void initializeMachineLICMPass (PassRegistry &)
 
void initializeMachineLoopInfoPass (PassRegistry &)
 
void initializeMachineModuleInfoPass (PassRegistry &)
 
void initializeMachineOptimizationRemarkEmitterPassPass (PassRegistry &)
 
void initializeMachineOutlinerPass (PassRegistry &)
 
void initializeMachinePipelinerPass (PassRegistry &)
 
void initializeMachinePostDominatorTreePass (PassRegistry &)
 
void initializeMachineRegionInfoPassPass (PassRegistry &)
 
void initializeMachineSchedulerPass (PassRegistry &)
 
void initializeMachineSinkingPass (PassRegistry &)
 
void initializeMachineTraceMetricsPass (PassRegistry &)
 
void initializeMachineVerifierPassPass (PassRegistry &)
 
void initializeMemCpyOptLegacyPassPass (PassRegistry &)
 
void initializeMemDepPrinterPass (PassRegistry &)
 
void initializeMemDerefPrinterPass (PassRegistry &)
 
void initializeMemoryDependenceWrapperPassPass (PassRegistry &)
 
void initializeMemorySSAPrinterLegacyPassPass (PassRegistry &)
 
void initializeMemorySSAWrapperPassPass (PassRegistry &)
 
void initializeMemorySanitizerLegacyPassPass (PassRegistry &)
 
void initializeMergeFunctionsPass (PassRegistry &)
 
void initializeMergeICmpsPass (PassRegistry &)
 
void initializeMergedLoadStoreMotionLegacyPassPass (PassRegistry &)
 
void initializeMetaRenamerPass (PassRegistry &)
 
void initializeModuleDebugInfoPrinterPass (PassRegistry &)
 
void initializeModuleSummaryIndexWrapperPassPass (PassRegistry &)
 
void initializeMustExecutePrinterPass (PassRegistry &)
 
void initializeNameAnonGlobalLegacyPassPass (PassRegistry &)
 
void initializeNaryReassociateLegacyPassPass (PassRegistry &)
 
void initializeNewGVNLegacyPassPass (PassRegistry &)
 
void initializeObjCARCAAWrapperPassPass (PassRegistry &)
 
void initializeObjCARCAPElimPass (PassRegistry &)
 
void initializeObjCARCContractPass (PassRegistry &)
 
void initializeObjCARCExpandPass (PassRegistry &)
 
void initializeObjCARCOptPass (PassRegistry &)
 
void initializeOptimizationRemarkEmitterWrapperPassPass (PassRegistry &)
 
void initializeOptimizePHIsPass (PassRegistry &)
 
void initializePAEvalPass (PassRegistry &)
 
void initializePEIPass (PassRegistry &)
 
void initializePGOIndirectCallPromotionLegacyPassPass (PassRegistry &)
 
void initializePGOInstrumentationGenLegacyPassPass (PassRegistry &)
 
void initializePGOInstrumentationUseLegacyPassPass (PassRegistry &)
 
void initializePGOMemOPSizeOptLegacyPassPass (PassRegistry &)
 
void initializePHIEliminationPass (PassRegistry &)
 
void initializePartialInlinerLegacyPassPass (PassRegistry &)
 
void initializePartiallyInlineLibCallsLegacyPassPass (PassRegistry &)
 
void initializePatchableFunctionPass (PassRegistry &)
 
void initializePeepholeOptimizerPass (PassRegistry &)
 
void initializePhiValuesWrapperPassPass (PassRegistry &)
 
void initializePhysicalRegisterUsageInfoPass (PassRegistry &)
 
void initializePlaceBackedgeSafepointsImplPass (PassRegistry &)
 
void initializePlaceSafepointsPass (PassRegistry &)
 
void initializePostDomOnlyPrinterPass (PassRegistry &)
 
void initializePostDomOnlyViewerPass (PassRegistry &)
 
void initializePostDomPrinterPass (PassRegistry &)
 
void initializePostDomViewerPass (PassRegistry &)
 
void initializePostDominatorTreeWrapperPassPass (PassRegistry &)
 
void initializePostInlineEntryExitInstrumenterPass (PassRegistry &)
 
void initializePostMachineSchedulerPass (PassRegistry &)
 
void initializePostOrderFunctionAttrsLegacyPassPass (PassRegistry &)
 
void initializePostRAHazardRecognizerPass (PassRegistry &)
 
void initializePostRAMachineSinkingPass (PassRegistry &)
 
void initializePostRASchedulerPass (PassRegistry &)
 
void initializePreISelIntrinsicLoweringLegacyPassPass (PassRegistry &)
 
void initializePredicateInfoPrinterLegacyPassPass (PassRegistry &)
 
void initializePrintBasicBlockPassPass (PassRegistry &)
 
void initializePrintFunctionPassWrapperPass (PassRegistry &)
 
void initializePrintModulePassWrapperPass (PassRegistry &)
 
void initializeProcessImplicitDefsPass (PassRegistry &)
 
void initializeProfileSummaryInfoWrapperPassPass (PassRegistry &)
 
void initializePromoteLegacyPassPass (PassRegistry &)
 
void initializePruneEHPass (PassRegistry &)
 
void initializeRABasicPass (PassRegistry &)
 
void initializeRAGreedyPass (PassRegistry &)
 
void initializeReachingDefAnalysisPass (PassRegistry &)
 
void initializeReassociateLegacyPassPass (PassRegistry &)
 
void initializeRegAllocFastPass (PassRegistry &)
 
void initializeRegBankSelectPass (PassRegistry &)
 
void initializeRegToMemPass (PassRegistry &)
 
void initializeRegUsageInfoCollectorPass (PassRegistry &)
 
void initializeRegUsageInfoPropagationPass (PassRegistry &)
 
void initializeRegionInfoPassPass (PassRegistry &)
 
void initializeRegionOnlyPrinterPass (PassRegistry &)
 
void initializeRegionOnlyViewerPass (PassRegistry &)
 
void initializeRegionPrinterPass (PassRegistry &)
 
void initializeRegionViewerPass (PassRegistry &)
 
void initializeRegisterCoalescerPass (PassRegistry &)
 
void initializeRenameIndependentSubregsPass (PassRegistry &)
 
void initializeResetMachineFunctionPass (PassRegistry &)
 
void initializeReversePostOrderFunctionAttrsLegacyPassPass (PassRegistry &)
 
void initializeRewriteStatepointsForGCLegacyPassPass (PassRegistry &)
 
void initializeRewriteSymbolsLegacyPassPass (PassRegistry &)
 
void initializeSCCPLegacyPassPass (PassRegistry &)
 
void initializeSCEVAAWrapperPassPass (PassRegistry &)
 
void initializeSLPVectorizerPass (PassRegistry &)
 
void initializeSROALegacyPassPass (PassRegistry &)
 
void initializeSafeStackLegacyPassPass (PassRegistry &)
 
void initializeSafepointIRVerifierPass (PassRegistry &)
 
void initializeSampleProfileLoaderLegacyPassPass (PassRegistry &)
 
void initializeSanitizerCoverageModulePass (PassRegistry &)
 
void initializeScalarEvolutionWrapperPassPass (PassRegistry &)
 
void initializeScalarizeMaskedMemIntrinPass (PassRegistry &)
 
void initializeScalarizerLegacyPassPass (PassRegistry &)
 
void initializeScavengerTestPass (PassRegistry &)
 
void initializeScopedNoAliasAAWrapperPassPass (PassRegistry &)
 
void initializeSeparateConstOffsetFromGEPPass (PassRegistry &)
 
void initializeShadowStackGCLoweringPass (PassRegistry &)
 
void initializeShrinkWrapPass (PassRegistry &)
 
void initializeSimpleInlinerPass (PassRegistry &)
 
void initializeSimpleLoopUnswitchLegacyPassPass (PassRegistry &)
 
void initializeSingleLoopExtractorPass (PassRegistry &)
 
void initializeSinkingLegacyPassPass (PassRegistry &)
 
void initializeSjLjEHPreparePass (PassRegistry &)
 
void initializeSlotIndexesPass (PassRegistry &)
 
void initializeSpeculativeExecutionLegacyPassPass (PassRegistry &)
 
void initializeSpillPlacementPass (PassRegistry &)
 
void initializeStackColoringPass (PassRegistry &)
 
void initializeStackMapLivenessPass (PassRegistry &)
 
void initializeStackProtectorPass (PassRegistry &)
 
void initializeStackSafetyGlobalInfoWrapperPassPass (PassRegistry &)
 
void initializeStackSafetyInfoWrapperPassPass (PassRegistry &)
 
void initializeStackSlotColoringPass (PassRegistry &)
 
void initializeStraightLineStrengthReducePass (PassRegistry &)
 
void initializeStripDeadDebugInfoPass (PassRegistry &)
 
void initializeStripDeadPrototypesLegacyPassPass (PassRegistry &)
 
void initializeStripDebugDeclarePass (PassRegistry &)
 
void initializeStripGCRelocatesPass (PassRegistry &)
 
void initializeStripNonDebugSymbolsPass (PassRegistry &)
 
void initializeStripNonLineTableDebugInfoPass (PassRegistry &)
 
void initializeStripSymbolsPass (PassRegistry &)
 
void initializeStructurizeCFGPass (PassRegistry &)
 
void initializeTailCallElimPass (PassRegistry &)
 
void initializeTailDuplicatePass (PassRegistry &)
 
void initializeTargetLibraryInfoWrapperPassPass (PassRegistry &)
 
void initializeTargetPassConfigPass (PassRegistry &)
 
void initializeTargetTransformInfoWrapperPassPass (PassRegistry &)
 
void initializeThreadSanitizerLegacyPassPass (PassRegistry &)
 
void initializeTwoAddressInstructionPassPass (PassRegistry &)
 
void initializeTypeBasedAAWrapperPassPass (PassRegistry &)
 
void initializeUnifyFunctionExitNodesPass (PassRegistry &)
 
void initializeUnpackMachineBundlesPass (PassRegistry &)
 
void initializeUnreachableBlockElimLegacyPassPass (PassRegistry &)
 
void initializeUnreachableMachineBlockElimPass (PassRegistry &)
 
void initializeVerifierLegacyPassPass (PassRegistry &)
 
void initializeVirtRegMapPass (PassRegistry &)
 
void initializeVirtRegRewriterPass (PassRegistry &)
 
void initializeWarnMissedTransformationsLegacyPass (PassRegistry &)
 
void initializeWasmEHPreparePass (PassRegistry &)
 
void initializeWholeProgramDevirtPass (PassRegistry &)
 
void initializeWinEHPreparePass (PassRegistry &)
 
void initializeWriteBitcodePassPass (PassRegistry &)
 
void initializeWriteThinLTOBitcodePass (PassRegistry &)
 
void initializeXRayInstrumentationPass (PassRegistry &)
 
LLVMAttributeRef wrap (Attribute Attr)
 
Attribute unwrap (LLVMAttributeRef Attr)
 
bool UpgradeIntrinsicFunction (Function *F, Function *&NewFn)
 This is a more granular function that simply checks an intrinsic function for upgrading, and returns true if it requires upgrading. More...
 
void UpgradeIntrinsicCall (CallInst *CI, Function *NewFn)
 This is the complement to the above, replacing a specific call to an intrinsic function with a call to the specified new function. More...
 
void UpgradeInlineAsmString (std::string *AsmStr)
 Upgrade comment in call to inline asm that represents an objc retain release marker. More...
 
void UpgradeCallsToIntrinsic (Function *F)
 This is an auto-upgrade hook for any old intrinsic function syntaxes which need to have both the function updated as well as all calls updated to the new function. More...
 
bool UpgradeGlobalVariable (GlobalVariable *GV)
 This checks for global variables which should be upgraded. More...
 
bool UpgradeModuleFlags (Module &M)
 This checks for module flags which should be upgraded. More...
 
bool UpgradeRetainReleaseMarker (Module &M)
 This checks for objc retain release marker which should be upgraded. More...
 
void UpgradeSectionAttributes (Module &M)
 
MDNodeUpgradeTBAANode (MDNode &TBAANode)
 If the given TBAA tag uses the scalar TBAA format, create a new node corresponding to the upgrade to the struct-path aware TBAA format. More...
 
InstructionUpgradeBitCastInst (unsigned Opc, Value *V, Type *DestTy, Instruction *&Temp)
 This is an auto-upgrade for bitcast between pointers with different address spaces: the instruction is replaced by a pair ptrtoint+inttoptr. More...
 
ValueUpgradeBitCastExpr (unsigned Opc, Constant *C, Type *DestTy)
 This is an auto-upgrade for bitcast constant expression between pointers with different address spaces: the instruction is replaced by a pair ptrtoint+inttoptr. More...
 
bool UpgradeDebugInfo (Module &M)
 Check the debug info version number, if it is out-dated, drop the debug info. More...
 
bool mayBeOldLoopAttachmentTag (StringRef Name)
 Check whether a string looks like an old loop attachment tag. More...
 
MDNodeupgradeInstructionLoopAttachment (MDNode &N)
 Upgrade the loop attachment metadata node. More...
 
BasicBlock::iterator skipDebugIntrinsics (BasicBlock::iterator It)
 Advance It while it points to a debug instruction and return the result. More...
 
pred_iterator pred_begin (BasicBlock *BB)
 
const_pred_iterator pred_begin (const BasicBlock *BB)
 
pred_iterator pred_end (BasicBlock *BB)
 
const_pred_iterator pred_end (const BasicBlock *BB)
 
bool pred_empty (const BasicBlock *BB)
 
unsigned pred_size (const BasicBlock *BB)
 Get the number of predecessors of BB. More...
 
pred_range predecessors (BasicBlock *BB)
 
pred_const_range predecessors (const BasicBlock *BB)
 
succ_iterator succ_begin (Instruction *I)
 
succ_const_iterator succ_begin (const Instruction *I)
 
succ_iterator succ_end (Instruction *I)
 
succ_const_iterator succ_end (const Instruction *I)
 
bool succ_empty (const Instruction *I)
 
unsigned succ_size (const Instruction *I)
 
succ_range successors (Instruction *I)
 
succ_const_range successors (const Instruction *I)
 
succ_iterator succ_begin (BasicBlock *BB)
 
succ_const_iterator succ_begin (const BasicBlock *BB)
 
succ_iterator succ_end (BasicBlock *BB)
 
succ_const_iterator succ_end (const BasicBlock *BB)
 
bool succ_empty (const BasicBlock *BB)
 
unsigned succ_size (const BasicBlock *BB)
 
succ_range successors (BasicBlock *BB)
 
succ_const_range successors (const BasicBlock *BB)
 
raw_ostreamoperator<< (raw_ostream &OS, const Comdat &C)
 
raw_ostreamoperator<< (raw_ostream &OS, const ConstantRange &CR)
 
ConstantRange getConstantRangeFromMetadata (const MDNode &RangeMD)
 Parse out a conservative ConstantRange from !range metadata. More...
 
DataLayoutunwrap (LLVMTargetDataRef P)
 
LLVMTargetDataRef wrap (const DataLayout *P)
 
DISubprogramgetDISubprogram (const MDNode *Scope)
 Find subprogram that is enclosing this scope. More...
 
bool StripDebugInfo (Module &M)
 Strip debug info in the module if it exists. More...
 
bool stripDebugInfo (Function &F)
 
bool stripNonLineTableDebugInfo (Module &M)
 Downgrade the debug info in a module to contain only line table information. More...
 
unsigned getDebugMetadataVersionFromModule (const Module &M)
 Return Debug Info Metadata Version by checking module flags. More...
 
int getNextAvailablePluginDiagnosticKind ()
 Get the next available kind ID for a plugin diagnostic. More...
 
template<class RemarkT >
RemarkT & operator<< (RemarkT &R, typename std::enable_if< std::is_base_of< DiagnosticInfoOptimizationBase, RemarkT >::value, StringRef >::type S)
 Allow the insertion operator to return the actual remark type rather than a common base class. More...
 
template<class RemarkT >
RemarkT & operator<< (RemarkT &&R, typename std::enable_if< std::is_base_of< DiagnosticInfoOptimizationBase, RemarkT >::value, StringRef >::type S)
 Also allow r-value for the remark to allow insertion into a temporarily-constructed remark. More...
 
template<class RemarkT >
RemarkT & operator<< (RemarkT &R, typename std::enable_if< std::is_base_of< DiagnosticInfoOptimizationBase, RemarkT >::value, DiagnosticInfoOptimizationBase::Argument >::type A)
 
template<class RemarkT >
RemarkT & operator<< (RemarkT &&R, typename std::enable_if< std::is_base_of< DiagnosticInfoOptimizationBase, RemarkT >::value, DiagnosticInfoOptimizationBase::Argument >::type A)
 
template<class RemarkT >
RemarkT & operator<< (RemarkT &R, typename std::enable_if< std::is_base_of< DiagnosticInfoOptimizationBase, RemarkT >::value, DiagnosticInfoOptimizationBase::setIsVerbose >::type V)
 
template<class RemarkT >
RemarkT & operator<< (RemarkT &&R, typename std::enable_if< std::is_base_of< DiagnosticInfoOptimizationBase, RemarkT >::value, DiagnosticInfoOptimizationBase::setIsVerbose >::type V)
 
template<class RemarkT >
RemarkT & operator<< (RemarkT &R, typename std::enable_if< std::is_base_of< DiagnosticInfoOptimizationBase, RemarkT >::value, DiagnosticInfoOptimizationBase::setExtraArgs >::type EA)
 
bool NullPointerIsDefined (const Function *F, unsigned AS=0)
 Check whether null pointer dereferencing is considered undefined behavior for a given function or an address space. More...
 
gep_type_iterator gep_type_begin (const User *GEP)
 
gep_type_iterator gep_type_end (const User *GEP)
 
gep_type_iterator gep_type_begin (const User &GEP)
 
gep_type_iterator gep_type_end (const User &GEP)
 
template<typename T >
generic_gep_type_iterator< const T * > gep_type_begin (Type *Op0, ArrayRef< T > A)
 
template<typename T >
generic_gep_type_iterator< const T * > gep_type_end (Type *, ArrayRef< T > A)
 
inst_iterator inst_begin (Function *F)
 
inst_iterator inst_end (Function *F)
 
inst_range instructions (Function *F)
 
const_inst_iterator inst_begin (const Function *F)
 
const_inst_iterator inst_end (const Function *F)
 
const_inst_range instructions (const Function *F)
 
inst_iterator inst_begin (Function &F)
 
inst_iterator inst_end (Function &F)
 
inst_range instructions (Function &F)
 
const_inst_iterator inst_begin (const Function &F)
 
const_inst_iterator inst_end (const Function &F)
 
const_inst_range instructions (const Function &F)
 
TypecheckGEPType (Type *Ty)
 
ValuegetLoadStorePointerOperand (Value *V)
 A helper function that returns the pointer operand of a load or store instruction. More...
 
ValuegetPointerOperand (Value *V)
 A helper function that returns the pointer operand of a load, store or GEP instruction. More...
 
unsigned getLoadStoreAlignment (Value *I)
 A helper function that returns the alignment of load or store instruction. More...
 
unsigned getLoadStoreAddressSpace (Value *I)
 A helper function that returns the address space of the pointer operand of load or store instruction. More...
 
ModulePasscreatePrintModulePass (raw_ostream &OS, const std::string &Banner="", bool ShouldPreserveUseListOrder=false)
 Create and return a pass that writes the module to the specified raw_ostream. More...
 
FunctionPasscreatePrintFunctionPass (raw_ostream &OS, const std::string &Banner="")
 Create and return a pass that prints functions to the specified raw_ostream as they are processed. More...
 
BasicBlockPasscreatePrintBasicBlockPass (raw_ostream &OS, const std::string &Banner="")
 Create and return a pass that writes the BB to the specified raw_ostream. More...
 
void printLLVMNameWithoutPrefix (raw_ostream &OS, StringRef Name)
 Print out a name of an LLVM value without any prefixes. More...
 
bool isIRPrintingPass (Pass *P)
 Return true if a pass is for IR printing. More...
 
bool isFunctionInPrintList (StringRef FunctionName)
 isFunctionInPrintList - returns true if a function should be printed via More...
 
bool forcePrintModuleIR ()
 forcePrintModuleIR - returns true if IR printing passes should More...
 
bool shouldPrintBeforePass ()
 This is a helper to determine whether to print IR before or after a pass. More...
 
bool shouldPrintBeforePass (StringRef)
 
bool shouldPrintAfterPass ()
 
bool shouldPrintAfterPass (StringRef)
 
LLVMContext ** unwrap (LLVMContextRef *Tys)
 
LLVMContextRefwrap (const LLVMContext **Tys)
 
void emitLinkerFlagsForGlobalCOFF (raw_ostream &OS, const GlobalValue *GV, const Triple &TT, Mangler &Mangler)
 
void emitLinkerFlagsForUsedCOFF (raw_ostream &OS, const GlobalValue *GV, const Triple &T, Mangler &M)
 
Metadata ** unwrap (LLVMMetadataRef *MDs)
 
raw_ostreamoperator<< (raw_ostream &OS, const Metadata &MD)
 
GlobalVariablecollectUsedGlobalVariables (const Module &M, SmallPtrSetImpl< GlobalValue *> &Set, bool CompilerUsed)
 Given "llvm.used" or "llvm.compiler.used" as a global name, collect the initializer elements of that global in Set and return the global itself. More...
 
raw_ostreamoperator<< (raw_ostream &O, const Module &M)
 An raw_ostream inserter for modules. More...
 
Moduleunwrap (LLVMModuleProviderRef MP)
 
const chargetHotnessName (CalleeInfo::HotnessType HT)
 
raw_ostreamoperator<< (raw_ostream &OS, const ValueInfo &VI)
 
bool operator== (const ValueInfo &A, const ValueInfo &B)
 
bool operator!= (const ValueInfo &A, const ValueInfo &B)
 
bool operator< (const ValueInfo &A, const ValueInfo &B)
 
static bool canImportGlobalVar (GlobalValueSummary *S)
 
template<typename FunctionPassT >
ModuleToFunctionPassAdaptor< FunctionPassT > createModuleToFunctionPassAdaptor (FunctionPassT Pass)
 A function to deduce a function pass type and wrap it in the templated adaptor. More...
 
template<typename PassT >
RepeatedPass< PassT > createRepeatedPass (int Count, PassT P)
 
void reportAndResetTimings ()
 If -time-passes has been specified, report the timings immediately and then reset the timers to zero. More...
 
TimergetPassTimer (Pass *)
 Request the timer for this legacy-pass-manager's pass instance. More...
 
void verifySafepointIR (Function &F)
 Run the safepoint verifier over a single function. Crashes on failure. More...
 
FunctionPasscreateSafepointIRVerifierPass ()
 Create an instance of the safepoint verifier pass which can be added to a pass pipeline to check for relocation bugs. More...
 
bool isStatepoint (ImmutableCallSite CS)
 
bool isStatepoint (const Value *V)
 
bool isStatepoint (const Value &V)
 
bool isGCRelocate (ImmutableCallSite CS)
 
bool isGCRelocate (const Value *V)
 
bool isGCResult (ImmutableCallSite CS)
 
bool isGCResult (const Value *V)
 
StatepointDirectives parseStatepointDirectivesFromAttrs (AttributeList AS)
 Parse out statepoint directives from the function attributes present in AS. More...
 
bool isStatepointDirectiveAttr (Attribute Attr)
 Return true if the Attr is an attribute that is a statepoint directive. More...
 
raw_ostreamoperator<< (raw_ostream &OS, const Type &T)
 
Type ** unwrap (LLVMTypeRef *Tys)
 
LLVMTypeRefwrap (Type **Tys)
 
raw_ostreamoperator<< (raw_ostream &OS, const Value &V)
 
Value ** unwrap (LLVMValueRef *Vals)
 
template<typename T >
T ** unwrap (LLVMValueRef *Vals, unsigned Length)
 
LLVMValueRefwrap (const Value **Vals)
 
bool verifyFunction (const Function &F, raw_ostream *OS=nullptr)
 Check a function for errors, useful for use when debugging a pass. More...
 
bool verifyModule (const Module &M, raw_ostream *OS=nullptr, bool *BrokenDebugInfo=nullptr)
 Check a module for errors. More...
 
FunctionPasscreateVerifierPass (bool FatalErrors=true)
 
bool verifyModule (bool &BrokenDebugInfo, const Module &M, raw_ostream *OS)
 Check a module for errors, but report debug info errors separately. More...
 
std::unique_ptr< ModulegetLazyIRFileModule (StringRef Filename, SMDiagnostic &Err, LLVMContext &Context, bool ShouldLazyLoadMetadata=false)
 If the given file holds a bitcode image, return a Module for it which does lazy deserialization of function bodies. More...
 
std::unique_ptr< ModuleparseIR (MemoryBufferRef Buffer, SMDiagnostic &Err, LLVMContext &Context, bool UpgradeDebugInfo=true, StringRef DataLayoutString="")
 If the given MemoryBuffer holds a bitcode image, return a Module for it. More...
 
std::unique_ptr< ModuleparseIRFile (StringRef Filename, SMDiagnostic &Err, LLVMContext &Context, bool UpgradeDebugInfo=true, StringRef DataLayoutString="")
 If the given file holds a bitcode image, return a Module for it. More...
 
void updateCompilerUsed (Module &TheModule, const TargetMachine &TM, const StringSet<> &AsmUndefinedRefs)
 Find all globals in TheModule that are referenced in AsmUndefinedRefs, as well as the user-supplied functions definitions that are also libcalls, and create or update the magic "llvm.compiler_used" global in TheModule. More...
 
void thinLTOResolvePrevailingInIndex (ModuleSummaryIndex &Index, function_ref< bool(GlobalValue::GUID, const GlobalValueSummary *)> isPrevailing, function_ref< void(StringRef, GlobalValue::GUID, GlobalValue::LinkageTypes)> recordNewLinkage)
 Resolve linkage for prevailing symbols in the Index. More...
 
void thinLTOInternalizeAndPromoteInIndex (ModuleSummaryIndex &Index, function_ref< bool(StringRef, GlobalValue::GUID)> isExported)
 Update the linkages in the given Index to mark exported values as external and non-exported values as internal. More...
 
void computeLTOCacheKey (SmallString< 40 > &Key, const lto::Config &Conf, const ModuleSummaryIndex &Index, StringRef ModuleID, const FunctionImporter::ImportMapTy &ImportList, const FunctionImporter::ExportSetTy &ExportList, const std::map< GlobalValue::GUID, GlobalValue::LinkageTypes > &ResolvedODR, const GVSummaryMapTy &DefinedGlobals, const std::set< GlobalValue::GUID > &CfiFunctionDefs={}, const std::set< GlobalValue::GUID > &CfiFunctionDecls={})
 Computes a unique hash for the Module considering the current list of export/import and other global analysis results. More...
 
void computeSyntheticCounts (ModuleSummaryIndex &Index)
 Compute synthetic function entry counts. More...
 
Printable PrintLaneMask (LaneBitmask LaneMask)
 Create Printable object to print LaneBitmasks on a raw_ostream. More...
 
bool operator!= (const MachineLocation &LHS, const MachineLocation &RHS)
 
uint64_t computeBundlePadding (const MCAssembler &Assembler, const MCEncodedFragment *F, uint64_t FOffset, uint64_t FSize)
 Compute the amount of padding required before the fragment F to obey bundling restrictions, where FOffset is the fragment's offset in its section and FSize is the fragment's size. More...
 
std::unique_ptr< MCObjectWritercreateELFObjectWriter (std::unique_ptr< MCELFObjectTargetWriter > MOTW, raw_pwrite_stream &OS, bool IsLittleEndian)
 Construct a new ELF writer instance. More...
 
std::unique_ptr< MCObjectWritercreateELFDwoObjectWriter (std::unique_ptr< MCELFObjectTargetWriter > MOTW, raw_pwrite_stream &OS, raw_pwrite_stream &DwoOS, bool IsLittleEndian)
 
MCELFStreamercreateARMELFStreamer (MCContext &Context, std::unique_ptr< MCAsmBackend > TAB, std::unique_ptr< MCObjectWriter > OW, std::unique_ptr< MCCodeEmitter > Emitter, bool RelaxAll, bool IsThumb)
 
raw_ostreamoperator<< (raw_ostream &OS, const MCExpr &E)
 
raw_ostreamoperator<< (raw_ostream &OS, const MCOperand &MO)
 
raw_ostreamoperator<< (raw_ostream &OS, const MCInst &MI)
 
void dumpBytes (ArrayRef< uint8_t > Bytes, raw_ostream &OS)
 Convert `Bytes' to a hex string and output to `OS'. More...
 
raw_ostreamoperator<< (raw_ostream &OS, const MCLabel &Label)
 
static StringRef MCLOHDirectiveName ()
 
static bool isValidMCLOHType (unsigned Kind)
 
static int MCLOHNameToId (StringRef Name)
 
static StringRef MCLOHIdToName (MCLOHType Kind)
 
static int MCLOHIdToNbArgs (MCLOHType Kind)
 
std::unique_ptr< MCObjectWritercreateMachObjectWriter (std::unique_ptr< MCMachObjectTargetWriter > MOTW, raw_pwrite_stream &OS, bool IsLittleEndian)
 Construct a new Mach-O writer instance. More...
 
MCAsmParsercreateMCAsmParser (SourceMgr &, MCContext &, MCStreamer &, const MCAsmInfo &, unsigned CB=0)
 Create an MCAsmParser instance. More...
 
raw_ostreamoperator<< (raw_ostream &OS, const MCParsedAsmOperand &MO)
 
MCStreamercreateNullStreamer (MCContext &Ctx)
 Create a dummy machine code streamer, which does nothing. More...
 
MCStreamercreateAsmStreamer (MCContext &Ctx, std::unique_ptr< formatted_raw_ostream > OS, bool isVerboseAsm, bool useDwarfDirectory, MCInstPrinter *InstPrint, MCCodeEmitter *CE, MCAsmBackend *TAB, bool ShowInst)
 Create a machine code streamer which will print out assembly for the native target, suitable for compiling with a native assembler. More...
 
raw_ostreamoperator<< (raw_ostream &OS, const MCSymbol &Sym)
 
std::unique_ptr< MCObjectWritercreateWasmObjectWriter (std::unique_ptr< MCWasmObjectTargetWriter > MOTW, raw_pwrite_stream &OS)
 Construct a new Wasm writer instance. More...
 
std::unique_ptr< MCObjectWritercreateWinCOFFObjectWriter (std::unique_ptr< MCWinCOFFObjectTargetWriter > MOTW, raw_pwrite_stream &OS)
 Construct a new Win COFF writer instance. More...
 
Error writeArchive (StringRef ArcName, ArrayRef< NewArchiveMember > NewMembers, bool WriteSymtab, object::Archive::Kind Kind, bool Deterministic, bool Thin, std::unique_ptr< MemoryBuffer > OldArchiveBuf=nullptr)
 
raw_ostreamoperator<< (raw_ostream &OS, const object::WasmSymbol &Sym)
 
template<typename AnalysisT , typename IRUnitT , typename AnalysisManagerT , typename... ExtraArgTs>
bool parseAnalysisUtilityPasses (StringRef AnalysisName, StringRef PipelineName, PassManager< IRUnitT, AnalysisManagerT, ExtraArgTs... > &PM)
 This utility template takes care of adding require<> and invalidate<> passes for an analysis to a given PassManager. More...
 
template<typename PassName >
PasscallDefaultCtor ()
 
std::string getInstrProfSectionName (InstrProfSectKind IPSK, Triple::ObjectFormatType OF, bool AddSegmentInfo=true)
 Return the name of the profile section corresponding to IPSK. More...
 
StringRef getInstrProfValueProfFuncName ()
 Return the name profile runtime entry point to do value profiling for a given site. More...
 
StringRef getInstrProfValueRangeProfFuncName ()
 Return the name profile runtime entry point to do value range profiling. More...
 
StringRef getInstrProfNameVarPrefix ()
 Return the name prefix of variables containing instrumented function names. More...
 
StringRef getInstrProfDataVarPrefix ()
 Return the name prefix of variables containing per-function control data. More...
 
StringRef getInstrProfCountersVarPrefix ()
 Return the name prefix of profile counter variables. More...
 
StringRef getInstrProfValuesVarPrefix ()
 Return the name prefix of value profile variables. More...
 
StringRef getInstrProfVNodesVarName ()
 Return the name of value profile node array variables: More...
 
StringRef getInstrProfComdatPrefix ()
 Return the name prefix of the COMDAT group for instrumentation variables associated with a COMDAT function. More...
 
StringRef getInstrProfNamesVarName ()
 Return the name of the variable holding the strings (possibly compressed) of all function's PGO names. More...
 
StringRef getCoverageMappingVarName ()
 Return the name of a covarage mapping variable (internal linkage) for each instrumented source module. More...
 
StringRef getCoverageUnusedNamesVarName ()
 Return the name of the internal variable recording the array of PGO name vars referenced by the coverage mapping. More...
 
StringRef getInstrProfRegFuncsName ()
 Return the name of function that registers all the per-function control data at program startup time by calling __llvm_register_function. More...
 
StringRef getInstrProfRegFuncName ()
 Return the name of the runtime interface that registers per-function control data for one instrumented function. More...
 
StringRef getInstrProfNamesRegFuncName ()
 Return the name of the runtime interface that registers the PGO name strings. More...
 
StringRef getInstrProfInitFuncName ()
 Return the name of the runtime initialization method that is generated by the compiler. More...
 
StringRef getInstrProfRuntimeHookVarName ()
 Return the name of the hook variable defined in profile runtime library. More...
 
StringRef getInstrProfRuntimeHookVarUseFuncName ()
 Return the name of the compiler generated function that references the runtime hook variable. More...
 
StringRef getInstrProfNameSeparator ()
 Return the marker used to separate PGO names during serialization. More...
 
std::string getPGOFuncName (const Function &F, bool InLTO=false, uint64_t Version=INSTR_PROF_INDEX_VERSION)
 Return the modified name for function F suitable to be used the key for profile lookup. More...
 
std::string getPGOFuncName (StringRef RawFuncName, GlobalValue::LinkageTypes Linkage, StringRef FileName, uint64_t Version=INSTR_PROF_INDEX_VERSION)
 Return the modified name for a function suitable to be used the key for profile lookup. More...
 
std::string getPGOFuncNameVarName (StringRef FuncName, GlobalValue::LinkageTypes Linkage)
 Return the name of the global variable used to store a function name in PGO instrumentation. More...
 
GlobalVariablecreatePGOFuncNameVar (Function &F, StringRef PGOFuncName)
 Create and return the global variable for function name used in PGO instrumentation. More...
 
GlobalVariablecreatePGOFuncNameVar (Module &M, GlobalValue::LinkageTypes Linkage, StringRef PGOFuncName)
 Create and return the global variable for function name used in PGO instrumentation. More...
 
StringRef getPGOFuncNameVarInitializer (GlobalVariable *NameVar)
 Return the initializer in string of the PGO name var NameVar. More...
 
StringRef getFuncNameWithoutPrefix (StringRef PGOFuncName, StringRef FileName="<unknown>")
 Given a PGO function name, remove the filename prefix and return the original (static) function name. More...
 
Error collectPGOFuncNameStrings (ArrayRef< std::string > NameStrs, bool doCompression, std::string &Result)
 Given a vector of strings (function PGO names) NameStrs, the method generates a combined string Result thatis ready to be serialized. More...
 
Error collectPGOFuncNameStrings (ArrayRef< GlobalVariable *> NameVars, std::string &Result, bool doCompression=true)
 Produce Result string with the same format described above. More...
 
Error readPGOFuncNameStrings (StringRef NameStrings, InstrProfSymtab &Symtab)
 NameStrings is a string composed of one of more sub-strings encoded in the format described above. More...
 
bool isIRPGOFlagSet (const Module *M)
 Check if INSTR_PROF_RAW_VERSION_VAR is defined. More...
 
bool canRenameComdatFunc (const Function &F, bool CheckAddressTaken=false)
 Check if we can safely rename this Comdat function. More...
 
void annotateValueSite (Module &M, Instruction &Inst, const InstrProfRecord &InstrProfR, InstrProfValueKind ValueKind, uint32_t SiteIndx, uint32_t MaxMDCount=3)
 Get the value profile data for value site SiteIdx from InstrProfR and annotate the instruction Inst with the value profile meta data. More...
 
void annotateValueSite (Module &M, Instruction &Inst, ArrayRef< InstrProfValueData > VDs, uint64_t Sum, InstrProfValueKind ValueKind, uint32_t MaxMDCount)
 Same as the above interface but using an ArrayRef, as well as Sum. More...
 
bool getValueProfDataFromInst (const Instruction &Inst, InstrProfValueKind ValueKind, uint32_t MaxNumValueData, InstrProfValueData ValueData[], uint32_t &ActualNumValueData, uint64_t &TotalC)
 Extract the value profile data from Inst which is annotated with value profile meta data. More...
 
StringRef getPGOFuncNameMetadataName ()
 
MDNodegetPGOFuncNameMetadata (const Function &F)
 Return the PGOFuncName meta data associated with a function. More...
 
void createPGOFuncNameMetadata (Function &F, StringRef PGOFuncName)
 Create the PGOFuncName meta data if PGOFuncName is different from function's raw name. More...
 
bool needsComdatForCounter (const Function &F, const Module &M)
 Check if we can use Comdat for profile variables. More...
 
const std::error_categoryinstrprof_category ()
 
std::error_code make_error_code (instrprof_error E)
 
support::endianness getHostEndianness ()
 
void getMemOPSizeRangeFromOption (StringRef Str, int64_t &RangeStart, int64_t &RangeLast)
 
const chargetHotSectionPrefix ()
 
const chargetUnlikelySectionPrefix ()
 
const std::error_categorysampleprof_category ()
 
std::error_code make_error_code (sampleprof_error E)
 
sampleprof_error MergeResult (sampleprof_error &Accumulator, sampleprof_error Result)
 
bool operator< (AtomicOrderingCABI, AtomicOrderingCABI)=delete
 
bool operator> (AtomicOrderingCABI, AtomicOrderingCABI)=delete
 
bool operator<= (AtomicOrderingCABI, AtomicOrderingCABI)=delete
 
bool operator>= (AtomicOrderingCABI, AtomicOrderingCABI)=delete
 
template<typename Int >
bool isValidAtomicOrderingCABI (Int I)
 
bool operator< (AtomicOrdering, AtomicOrdering)=delete
 
bool operator> (AtomicOrdering, AtomicOrdering)=delete
 
bool operator<= (AtomicOrdering, AtomicOrdering)=delete
 
bool operator>= (AtomicOrdering, AtomicOrdering)=delete
 
template<typename Int >
bool isValidAtomicOrdering (Int I)
 
const chartoIRString (AtomicOrdering ao)
 String used by LLVM IR to represent atomic ordering. More...
 
bool isStrongerThan (AtomicOrdering ao, AtomicOrdering other)
 Returns true if ao is stronger than other as defined by the AtomicOrdering lattice, which is based on C++'s definition. More...
 
bool isAtLeastOrStrongerThan (AtomicOrdering ao, AtomicOrdering other)
 
bool isStrongerThanUnordered (AtomicOrdering ao)
 
bool isStrongerThanMonotonic (AtomicOrdering ao)
 
bool isAcquireOrStronger (AtomicOrdering ao)
 
bool isReleaseOrStronger (AtomicOrdering ao)
 
AtomicOrderingCABI toCABI (AtomicOrdering ao)
 
raw_ostreamoperator<< (raw_ostream &OS, BranchProbability Prob)
 
void BuryPointer (const void *Ptr)
 
template<typename T >
void BuryPointer (std::unique_ptr< T > Ptr)
 
Expected< CachePruningPolicyparseCachePruningPolicy (StringRef PolicyStr)
 Parse the given string as a cache pruning policy. More...
 
bool pruneCache (StringRef Path, CachePruningPolicy Policy)
 Peform pruning using the supplied policy, returns true if pruning occurred, i.e. More...
 
template<typename T >
static size_t capacity_in_bytes (const T &x)
 
template<class X , class Y >
LLVM_NODISCARD bool isa (const Y &Val)
 
template<class X , class Y >
std::enable_if<!is_simple_type< Y >::value, typename cast_retty< X, const Y >::ret_type >::type cast (const Y &Val)
 
template<class X , class Y >
cast_retty< X, Y >::ret_type cast (Y &Val)
 
template<class X , class Y >
cast_retty< X, Y * >::ret_type cast (Y *Val)
 
template<class X , class Y >
cast_retty< X, std::unique_ptr< Y > >::ret_type cast (std::unique_ptr< Y > &&Val)
 
template<class X , class Y >
LLVM_NODISCARD std::enable_if<!is_simple_type< Y >::value, typename cast_retty< X, const Y >::ret_type >::type cast_or_null (const Y &Val)
 
template<class X , class Y >
LLVM_NODISCARD std::enable_if<!is_simple_type< Y >::value, typename cast_retty< X, Y >::ret_type >::type cast_or_null (Y &Val)
 
template<class X , class Y >
LLVM_NODISCARD cast_retty< X, Y * >::ret_type cast_or_null (Y *Val)
 
template<class X , class Y >
cast_retty< X, std::unique_ptr< Y > >::ret_type cast_or_null (std::unique_ptr< Y > &&Val)
 
template<class X , class Y >
LLVM_NODISCARD std::enable_if<!is_simple_type< Y >::value, typename cast_retty< X, const Y >::ret_type >::type dyn_cast (const Y &Val)
 
template<class X , class Y >
LLVM_NODISCARD cast_retty< X, Y >::ret_type dyn_cast (Y &Val)
 
template<class X , class Y >
LLVM_NODISCARD cast_retty< X, Y * >::ret_type dyn_cast (Y *Val)
 
template<class X , class Y >
LLVM_NODISCARD std::enable_if<!is_simple_type< Y >::value, typename cast_retty< X, const Y >::ret_type >::type dyn_cast_or_null (const Y &Val)
 
template<class X , class Y >
LLVM_NODISCARD std::enable_if<!is_simple_type< Y >::value, typename cast_retty< X, Y >::ret_type >::type dyn_cast_or_null (Y &Val)
 
template<class X , class Y >
LLVM_NODISCARD cast_retty< X, Y * >::ret_type dyn_cast_or_null (Y *Val)
 
template<class X , class Y >
LLVM_NODISCARD auto unique_dyn_cast (std::unique_ptr< Y > &Val) -> decltype(cast< X >(Val))
 
template<class X , class Y >
LLVM_NODISCARD auto unique_dyn_cast (std::unique_ptr< Y > &&Val) -> decltype(cast< X >(Val))
 
template<class X , class Y >
LLVM_NODISCARD auto unique_dyn_cast_or_null (std::unique_ptr< Y > &Val) -> decltype(cast< X >(Val))
 
template<class X , class Y >
LLVM_NODISCARD auto unique_dyn_cast_or_null (std::unique_ptr< Y > &&Val) -> decltype(cast< X >(Val))
 
template<typename T >
std::enable_if< std::is_signed< T >::value, llvm::Optional< T > >::type checkedAdd (T LHS, T RHS)
 Add two signed integers LHS and RHS. More...
 
template<typename T >
std::enable_if< std::is_signed< T >::value, llvm::Optional< T > >::type checkedMul (T LHS, T RHS)
 Multiply two signed integers LHS and RHS. More...
 
template<typename T >
std::enable_if< std::is_signed< T >::value, llvm::Optional< T > >::type checkedMulAdd (T A, T B, T C)
 Multiply A and B, and add C to the resulting product. More...
 
template<typename T >
std::enable_if< std::is_unsigned< T >::value, llvm::Optional< T > >::type checkedAddUnsigned (T LHS, T RHS)
 Add two unsigned integers LHS and RHS. More...
 
template<typename T >
std::enable_if< std::is_unsigned< T >::value, llvm::Optional< T > >::type checkedMulUnsigned (T LHS, T RHS)
 Multiply two unsigned integers LHS and RHS. More...
 
template<typename T >
std::enable_if< std::is_unsigned< T >::value, llvm::Optional< T > >::type checkedMulAddUnsigned (T A, T B, T C)
 Multiply unsigned integers A and B, and add C to the resulting product. More...
 
raw_ostreamoperator<< (raw_ostream &OS, sys::TimePoint<> TP)
 
void * allocate_buffer (size_t Size, size_t Alignment)
 Allocate a buffer of memory with the given size and alignment. More...
 
void deallocate_buffer (void *Ptr, size_t Size, size_t Alignment)
 Deallocate a buffer of memory with the given size and alignment. More...
 
ConversionResult ConvertUTF8toUTF16 (const UTF8 **sourceStart, const UTF8 *sourceEnd, UTF16 **targetStart, UTF16 *targetEnd, ConversionFlags flags)
 
ConversionResult ConvertUTF8toUTF32Partial (const UTF8 **sourceStart, const UTF8 *sourceEnd, UTF32 **targetStart, UTF32 *targetEnd, ConversionFlags flags)
 Convert a partial UTF8 sequence to UTF32. More...
 
ConversionResult ConvertUTF8toUTF32 (const UTF8 **sourceStart, const UTF8 *sourceEnd, UTF32 **targetStart, UTF32 *targetEnd, ConversionFlags flags)
 Convert a partial UTF8 sequence to UTF32. More...
 
ConversionResult ConvertUTF16toUTF8 (const UTF16 **sourceStart, const UTF16 *sourceEnd, UTF8 **targetStart, UTF8 *targetEnd, ConversionFlags flags)
 
ConversionResult ConvertUTF32toUTF8 (const UTF32 **sourceStart, const UTF32 *sourceEnd, UTF8 **targetStart, UTF8 *targetEnd, ConversionFlags flags)
 
ConversionResult ConvertUTF16toUTF32 (const UTF16 **sourceStart, const UTF16 *sourceEnd, UTF32 **targetStart, UTF32 *targetEnd, ConversionFlags flags)
 
ConversionResult ConvertUTF32toUTF16 (const UTF32 **sourceStart, const UTF32 *sourceEnd, UTF16 **targetStart, UTF16 *targetEnd, ConversionFlags flags)
 
Boolean isLegalUTF8Sequence (const UTF8 *source, const UTF8 *sourceEnd)
 
Boolean isLegalUTF8String (const UTF8 **source, const UTF8 *sourceEnd)
 
unsigned getNumBytesForUTF8 (UTF8 firstByte)
 
bool ConvertUTF8toWide (unsigned WideCharWidth, llvm::StringRef Source, char *&ResultPtr, const UTF8 *&ErrorPtr)
 Convert an UTF8 StringRef to UTF8, UTF16, or UTF32 depending on WideCharWidth. More...
 
bool ConvertUTF8toWide (llvm::StringRef Source, std::wstring &Result)
 Converts a UTF-8 StringRef to a std::wstring. More...
 
bool ConvertUTF8toWide (const char *Source, std::wstring &Result)
 Converts a UTF-8 C-string to a std::wstring. More...
 
bool convertWideToUTF8 (const std::wstring &Source, std::string &Result)
 Converts a std::wstring to a UTF-8 encoded std::string. More...
 
bool ConvertCodePointToUTF8 (unsigned Source, char *&ResultPtr)
 Convert an Unicode code point to UTF8 sequence. More...
 
ConversionResult convertUTF8Sequence (const UTF8 **source, const UTF8 *sourceEnd, UTF32 *target, ConversionFlags flags)
 Convert the first UTF8 sequence in the given source buffer to a UTF32 code point. More...
 
bool hasUTF16ByteOrderMark (ArrayRef< char > SrcBytes)
 Returns true if a blob of text starts with a UTF-16 big or little endian byte order mark. More...
 
bool convertUTF16ToUTF8String (ArrayRef< char > SrcBytes, std::string &Out)
 Converts a stream of raw bytes assumed to be UTF16 into a UTF8 std::string. More...
 
bool convertUTF16ToUTF8String (ArrayRef< UTF16 > Src, std::string &Out)
 Converts a UTF16 string into a UTF8 std::string. More...
 
bool convertUTF8ToUTF16String (StringRef SrcUTF8, SmallVectorImpl< UTF16 > &DstUTF16)
 Converts a UTF-8 string into a UTF-16 string with native endianness. More...
 
uint24_t getSwappedBytes (uint24_t C)
 Needed by swapByteOrder(). More...
 
bool isCurrentDebugType (const char *Type)
 isCurrentDebugType - Return true if the specified string is the debug type specified on the command line, or if none was specified on the command line with the -debug-only=X option. More...
 
void setCurrentDebugType (const char *Type)
 setCurrentDebugType - Set the current debug type, as if the -debug-only=X option were specified. More...
 
void setCurrentDebugTypes (const char **Types, unsigned Count)
 setCurrentDebugTypes - Set the current debug type, as if the -debug-only=X,Y,Z option were specified. More...
 
raw_ostreamdbgs ()
 dbgs() - This returns a reference to a raw_ostream for debugging messages. More...
 
uint32_t djbHash (StringRef Buffer, uint32_t H=5381)
 The Bernstein hash function used by the DWARF accelerator tables. More...
 
uint32_t caseFoldingDjbHash (StringRef Buffer, uint32_t H=5381)
 Computes the Bernstein hash after folding the input according to the Dwarf 5 standard case folding rules. More...
 
std::error_code make_error_code (errc E)
 
template<typename ErrT , typename... ArgTs>
Error make_error (ArgTs &&... Args)
 Make a Error instance representing failure using the given error info type. More...
 
Error joinErrors (Error E1, Error E2)
 Concatenate errors. More...
 
LLVM_ATTRIBUTE_NORETURN void report_fatal_error (Error Err, bool gen_crash_diag=true)
 Report a serious error, calling any installed error handler. More...
 
void cantFail (Error Err, const char *Msg=nullptr)
 Report a fatal error if Err is a failure value. More...
 
template<typename T >
T cantFail (Expected< T > ValOrErr, const char *Msg=nullptr)
 Report a fatal error if ValOrErr is a failure value, otherwise unwraps and returns the contained value. More...
 
template<typename T >
TcantFail (Expected< T &> ValOrErr, const char *Msg=nullptr)
 Report a fatal error if ValOrErr is a failure value, otherwise unwraps and returns the contained reference. More...
 
Error handleErrorImpl (std::unique_ptr< ErrorInfoBase > Payload)
 
template<typename HandlerT , typename... HandlerTs>
Error handleErrorImpl (std::unique_ptr< ErrorInfoBase > Payload, HandlerT &&Handler, HandlerTs &&... Handlers)
 
template<typename... HandlerTs>
Error handleErrors (Error E, HandlerTs &&... Hs)
 Pass the ErrorInfo(s) contained in E to their respective handlers. More...
 
template<typename... HandlerTs>
void handleAllErrors (Error E, HandlerTs &&... Handlers)
 Behaves the same as handleErrors, except that by contract all errors must be handled by the given handlers (i.e. More...
 
void handleAllErrors (Error E)
 Check that E is a non-error, then drop it. More...
 
template<typename T , typename RecoveryFtor , typename... HandlerTs>
Expected< ThandleExpected (Expected< T > ValOrErr, RecoveryFtor &&RecoveryPath, HandlerTs &&... Handlers)
 Handle any errors (if present) in an Expected<T>, then try a recovery path. More...
 
void logAllUnhandledErrors (Error E, raw_ostream &OS, Twine ErrorBanner={})
 Log all errors (if any) in E to OS. More...
 
std::string toString (Error E)
 Write all error messages (if any) in E to a string. More...
 
void consumeError (Error Err)
 Consume a Error without doing anything. More...
 
bool errorToBool (Error Err)
 Helper for converting an Error to a bool. More...
 
std::error_code inconvertibleErrorCode ()
 The value returned by this function can be returned from convertToErrorCode for Error values where no sensible translation to std::error_code exists. More...
 
Error errorCodeToError (std::error_code EC)
 Helper for converting an std::error_code to a Error. More...
 
std::error_code errorToErrorCode (Error Err)
 Helper for converting an ECError to a std::error_code. More...
 
template<typename T >
Expected< TerrorOrToExpected (ErrorOr< T > &&EO)
 Convert an ErrorOr<T> to an Expected<T>. More...
 
template<typename T >
ErrorOr< TexpectedToErrorOr (Expected< T > &&E)
 Convert an Expected<T> to an ErrorOr<T>. More...
 
template<typename... Ts>
Error createStringError (std::error_code EC, char const *Fmt, const Ts &... Vals)
 Create formatted StringError object. More...
 
Error createStringError (std::error_code EC, char const *Msg)
 
Error createFileError (std::string F, Error E)
 Concatenate a source file path and/or name with an Error. More...
 
Error createFileError (std::string F, ErrorSuccess)=delete
 
LLVMErrorRef wrap (Error Err)
 Conversion from Error to LLVMErrorRef for C error bindings. More...
 
Error unwrap (LLVMErrorRef ErrRef)
 Conversion from LLVMErrorRef to Error for C error bindings. More...
 
void install_fatal_error_handler (fatal_error_handler_t handler, void *user_data=nullptr)
 install_fatal_error_handler - Installs a new error handler to be used whenever a serious (non-recoverable) error is encountered by LLVM. More...
 
void remove_fatal_error_handler ()
 Restores default error handling behaviour. More...
 
LLVM_ATTRIBUTE_NORETURN void report_fatal_error (const char *reason, bool gen_crash_diag=true)
 Reports a serious error, calling any installed error handler. More...
 
LLVM_ATTRIBUTE_NORETURN void report_fatal_error (const std::string &reason, bool gen_crash_diag=true)
 
LLVM_ATTRIBUTE_NORETURN void report_fatal_error (StringRef reason, bool gen_crash_diag=true)
 
LLVM_ATTRIBUTE_NORETURN void report_fatal_error (const Twine &reason, bool gen_crash_diag=true)
 
void install_bad_alloc_error_handler (fatal_error_handler_t handler, void *user_data=nullptr)
 Installs a new bad alloc error handler that should be used whenever a bad alloc error, e.g. More...
 
void remove_bad_alloc_error_handler ()
 Restores default bad alloc error handling behavior. More...
 
void install_out_of_memory_new_handler ()
 
void report_bad_alloc_error (const char *Reason, bool GenCrashDiag=true)
 Reports a bad alloc error, calling any user defined bad alloc error handler. More...
 
LLVM_ATTRIBUTE_NORETURN void llvm_unreachable_internal (const char *msg=nullptr, const char *file=nullptr, unsigned line=0)
 This function calls abort(), and prints the optional message to stderr. More...
 
template<class T , class E >
std::enable_if< std::is_error_code_enum< E >::value||std::is_error_condition_enum< E >::value, bool >::type operator== (const ErrorOr< T > &Err, E Code)
 
int DiffFilesWithTolerance (StringRef FileA, StringRef FileB, double AbsTol, double RelTol, std::string *Error=nullptr)
 DiffFilesWithTolerance - Compare the two files specified, returning 0 if the files match, 1 if they are different, and 2 if there is a file error. More...
 
template<typename... Ts>
format_object< Ts... > format (const char *Fmt, const Ts &... Vals)
 These are helper functions used to produce formatted output. More...
 
FormattedString left_justify (StringRef Str, unsigned Width)
 left_justify - append spaces after string so total output is Width characters. More...
 
FormattedString right_justify (StringRef Str, unsigned Width)
 right_justify - add spaces before string so total output is Width characters. More...
 
FormattedString center_justify (StringRef Str, unsigned Width)
 center_justify - add spaces before and after string so total output is Width characters. More...
 
FormattedNumber format_hex (uint64_t N, unsigned Width, bool Upper=false)
 format_hex - Output N as a fixed width hexadecimal. More...
 
FormattedNumber format_hex_no_prefix (uint64_t N, unsigned Width, bool Upper=false)
 format_hex_no_prefix - Output N as a fixed width hexadecimal. More...
 
FormattedNumber format_decimal (int64_t N, unsigned Width)
 format_decimal - Output N as a right justified, fixed-width decimal. More...
 
FormattedBytes format_bytes (ArrayRef< uint8_t > Bytes, Optional< uint64_t > FirstByteOffset=None, uint32_t NumPerLine=16, uint8_t ByteGroupSize=4, uint32_t IndentLevel=0, bool Upper=false)
 
FormattedBytes format_bytes_with_ascii (ArrayRef< uint8_t > Bytes, Optional< uint64_t > FirstByteOffset=None, uint32_t NumPerLine=16, uint8_t ByteGroupSize=4, uint32_t IndentLevel=0, bool Upper=false)
 
template<typename T >
detail::AlignAdapter< Tfmt_align (T &&Item, AlignStyle Where, size_t Amount, char Fill=' ')
 
template<typename T >
detail::PadAdapter< Tfmt_pad (T &&Item, size_t Left, size_t Right)
 
template<typename T >
detail::RepeatAdapter< Tfmt_repeat (T &&Item, size_t Count)
 
detail::ErrorAdapter fmt_consume (Error &&Item)
 
formatted_raw_ostreamfouts ()
 fouts() - This returns a reference to a formatted_raw_ostream for standard output. More...
 
formatted_raw_ostreamferrs ()
 ferrs() - This returns a reference to a formatted_raw_ostream for standard error. More...
 
formatted_raw_ostreamfdbgs ()
 fdbgs() - This returns a reference to a formatted_raw_ostream for debug output. More...
 
template<typename... Ts>
auto formatv (const char *Fmt, Ts &&... Vals) -> formatv_object< decltype(std::make_tuple(detail::build_format_adapter(std::forward< Ts >(Vals))...))>
 
template<class NodeT >
raw_ostreamoperator<< (raw_ostream &O, const DomTreeNodeBase< NodeT > *Node)
 
template<class NodeT >
void PrintDomTree (const DomTreeNodeBase< NodeT > *N, raw_ostream &O, unsigned Lev)
 
bool DisplayGraph (StringRef Filename, bool wait=true, GraphProgram::Name program=GraphProgram::DOT)
 
template<typename GraphType >
raw_ostreamWriteGraph (raw_ostream &O, const GraphType &G, bool ShortNames=false, const Twine &Title="")
 
std::string createGraphFilename (const Twine &Name, int &FD)
 
unsigned encodeSLEB128 (int64_t Value, raw_ostream &OS, unsigned PadTo=0)
 Utility function to encode a SLEB128 value to an output stream. More...
 
unsigned encodeSLEB128 (int64_t Value, uint8_t *p, unsigned PadTo=0)
 Utility function to encode a SLEB128 value to a buffer. More...
 
unsigned encodeULEB128 (uint64_t Value, raw_ostream &OS, unsigned PadTo=0)
 Utility function to encode a ULEB128 value to an output stream. More...
 
unsigned encodeULEB128 (uint64_t Value, uint8_t *p, unsigned PadTo=0)
 Utility function to encode a ULEB128 value to a buffer. More...
 
uint64_t decodeULEB128 (const uint8_t *p, unsigned *n=nullptr, const uint8_t *end=nullptr, const char **error=nullptr)
 Utility function to decode a ULEB128 value. More...
 
int64_t decodeSLEB128 (const uint8_t *p, unsigned *n=nullptr, const uint8_t *end=nullptr, const char **error=nullptr)
 Utility function to decode a SLEB128 value. More...
 
unsigned getULEB128Size (uint64_t Value)
 Utility function to get the size of the ULEB128-encoded value. More...
 
unsigned getSLEB128Size (int64_t Value)
 Utility function to get the size of the SLEB128-encoded value. More...
 
raw_ostreamoperator<< (raw_ostream &OS, const LLT &Ty)
 
void llvm_shutdown ()
 llvm_shutdown - Deallocate and destroy all ManagedStatic variables. More...
 
template<typename T >
std::size_t countTrailingZeros (T Val, ZeroBehavior ZB=ZB_Width)
 Count number of 0's from the least significant bit to the most stopping at the first 1. More...
 
template<typename T >
std::size_t countLeadingZeros (T Val, ZeroBehavior ZB=ZB_Width)
 Count number of 0's from the most significant bit to the least stopping at the first 1. More...
 
template<typename T >
T findFirstSet (T Val, ZeroBehavior ZB=ZB_Max)
 Get the index of the first set bit starting from the least significant bit. More...
 
template<typename T >
T maskTrailingOnes (unsigned N)
 Create a bitmask with the N right-most bits set to 1, and all other bits set to 0. More...
 
template<typename T >
T maskLeadingOnes (unsigned N)
 Create a bitmask with the N left-most bits set to 1, and all other bits set to 0. More...
 
template<typename T >
T maskTrailingZeros (unsigned N)
 Create a bitmask with the N right-most bits set to 0, and all other bits set to 1. More...
 
template<typename T >
T maskLeadingZeros (unsigned N)
 Create a bitmask with the N left-most bits set to 0, and all other bits set to 1. More...
 
template<typename T >
T findLastSet (T Val, ZeroBehavior ZB=ZB_Max)
 Get the index of the last set bit starting from the least significant bit. More...
 
template<typename T >
T reverseBits (T Val)
 Reverse the bits in Val. More...
 
constexpr uint32_t Hi_32 (uint64_t Value)
 Return the high 32 bits of a 64 bit value. More...
 
constexpr uint32_t Lo_32 (uint64_t Value)
 Return the low 32 bits of a 64 bit value. More...
 
constexpr uint64_t Make_64 (uint32_t High, uint32_t Low)
 Make a 64-bit integer from a high / low pair of 32-bit integers. More...
 
template<unsigned N>
constexpr bool isInt (int64_t x)
 Checks if an integer fits into the given bit width. More...
 
template<>
constexpr bool isInt< 8 > (int64_t x)
 
template<>
constexpr bool isInt< 16 > (int64_t x)
 
template<>
constexpr bool isInt< 32 > (int64_t x)
 
template<unsigned N, unsigned S>
constexpr bool isShiftedInt (int64_t x)
 Checks if a signed integer is an N bit number shifted left by S. More...
 
template<unsigned N>
constexpr std::enable_if<(N< 64), bool >::type isUInt (uint64_t X)
 Checks if an unsigned integer fits into the given bit width. More...
 
template<unsigned N>
constexpr bool ::type isUInt (uint64_t X)
 
template<>
constexpr bool isUInt< 8 > (uint64_t x)
 
template<>
constexpr bool isUInt< 16 > (uint64_t x)
 
template<>
constexpr bool isUInt< 32 > (uint64_t x)
 
template<unsigned N, unsigned S>
constexpr bool isShiftedUInt (uint64_t x)
 Checks if a unsigned integer is an N bit number shifted left by S. More...
 
uint64_t maxUIntN (uint64_t N)
 Gets the maximum value for a N-bit unsigned integer. More...
 
int64_t minIntN (int64_t N)
 Gets the minimum value for a N-bit signed integer. More...
 
int64_t maxIntN (int64_t N)
 Gets the maximum value for a N-bit signed integer. More...
 
bool isUIntN (unsigned N, uint64_t x)
 Checks if an unsigned integer fits into the given (dynamic) bit width. More...
 
bool isIntN (unsigned N, int64_t x)
 Checks if an signed integer fits into the given (dynamic) bit width. More...
 
constexpr bool isMask_32 (uint32_t Value)
 Return true if the argument is a non-empty sequence of ones starting at the least significant bit with the remainder zero (32 bit version). More...
 
constexpr bool isMask_64 (uint64_t Value)
 Return true if the argument is a non-empty sequence of ones starting at the least significant bit with the remainder zero (64 bit version). More...
 
constexpr bool isShiftedMask_32 (uint32_t Value)
 Return true if the argument contains a non-empty sequence of ones with the remainder zero (32 bit version.) Ex. More...
 
constexpr bool isShiftedMask_64 (uint64_t Value)
 Return true if the argument contains a non-empty sequence of ones with the remainder zero (64 bit version.) More...
 
constexpr bool isPowerOf2_32 (uint32_t Value)
 Return true if the argument is a power of two > 0. More...
 
constexpr bool isPowerOf2_64 (uint64_t Value)
 Return true if the argument is a power of two > 0 (64 bit edition.) More...
 
uint16_t ByteSwap_16 (uint16_t Value)
 Return a byte-swapped representation of the 16-bit argument. More...
 
uint32_t ByteSwap_32 (uint32_t Value)
 Return a byte-swapped representation of the 32-bit argument. More...
 
uint64_t ByteSwap_64 (uint64_t Value)
 Return a byte-swapped representation of the 64-bit argument. More...
 
template<typename T >
std::size_t countLeadingOnes (T Value, ZeroBehavior ZB=ZB_Width)
 Count the number of ones from the most significant bit to the first zero bit. More...
 
template<typename T >
std::size_t countTrailingOnes (T Value, ZeroBehavior ZB=ZB_Width)
 Count the number of ones from the least significant bit to the first zero bit. More...
 
template<typename T >
unsigned countPopulation (T Value)
 Count the number of set bits in a value. More...
 
double Log2 (double Value)
 Return the log base 2 of the specified value. More...
 
unsigned Log2_32 (uint32_t Value)
 Return the floor log base 2 of the specified value, -1 if the value is zero. More...
 
unsigned Log2_64 (uint64_t Value)
 Return the floor log base 2 of the specified value, -1 if the value is zero. More...
 
unsigned Log2_32_Ceil (uint32_t Value)
 Return the ceil log base 2 of the specified value, 32 if the value is zero. More...
 
unsigned Log2_64_Ceil (uint64_t Value)
 Return the ceil log base 2 of the specified value, 64 if the value is zero. More...
 
uint64_t GreatestCommonDivisor64 (uint64_t A, uint64_t B)
 Return the greatest common divisor of the values using Euclid's algorithm. More...
 
double BitsToDouble (uint64_t Bits)
 This function takes a 64-bit integer and returns the bit equivalent double. More...
 
float BitsToFloat (uint32_t Bits)
 This function takes a 32-bit integer and returns the bit equivalent float. More...
 
uint64_t DoubleToBits (double Double)
 This function takes a double and returns the bit equivalent 64-bit integer. More...
 
uint32_t FloatToBits (float Float)
 This function takes a float and returns the bit equivalent 32-bit integer. More...
 
constexpr uint64_t MinAlign (uint64_t A, uint64_t B)
 A and B are either alignments or offsets. More...
 
uintptr_t alignAddr (const void *Addr, size_t Alignment)
 Aligns Addr to Alignment bytes, rounding up. More...
 
size_t alignmentAdjustment (const void *Ptr, size_t Alignment)
 Returns the necessary adjustment for aligning Ptr to Alignment bytes, rounding up. More...
 
uint64_t NextPowerOf2 (uint64_t A)
 Returns the next power of two (in 64-bits) that is strictly greater than A. More...
 
uint64_t PowerOf2Floor (uint64_t A)
 Returns the power of two which is less than or equal to the given value. More...
 
uint64_t PowerOf2Ceil (uint64_t A)
 Returns the power of two which is greater than or equal to the given value. More...
 
uint64_t alignTo (uint64_t Value, uint64_t Align, uint64_t Skew=0)
 Returns the next integer (mod 2**64) that is greater than or equal to Value and is a multiple of Align. More...
 
template<uint64_t Align>
constexpr uint64_t alignTo (uint64_t Value)
 Returns the next integer (mod 2**64) that is greater than or equal to Value and is a multiple of Align. More...
 
uint64_t divideCeil (uint64_t Numerator, uint64_t Denominator)
 Returns the integer ceil(Numerator / Denominator). More...
 
uint64_t alignDown (uint64_t Value, uint64_t Align, uint64_t Skew=0)
 Returns the largest uint64_t less than or equal to Value and is Skew mod Align. More...
 
uint64_t OffsetToAlignment (uint64_t Value, uint64_t Align)
 Returns the offset to the next integer (mod 2**64) that is greater than or equal to Value and is a multiple of Align. More...
 
template<unsigned B>
constexpr int32_t SignExtend32 (uint32_t X)
 Sign-extend the number in the bottom B bits of X to a 32-bit integer. More...
 
int32_t SignExtend32 (uint32_t X, unsigned B)
 Sign-extend the number in the bottom B bits of X to a 32-bit integer. More...
 
template<unsigned B>
constexpr int64_t SignExtend64 (uint64_t x)
 Sign-extend the number in the bottom B bits of X to a 64-bit integer. More...
 
int64_t SignExtend64 (uint64_t X, unsigned B)
 Sign-extend the number in the bottom B bits of X to a 64-bit integer. More...
 
template<typename T >
std::enable_if< std::is_unsigned< T >::value, T >::type AbsoluteDifference (T X, T Y)
 Subtract two unsigned integers, X and Y, of type T and return the absolute value of the result. More...
 
template<typename T >
std::enable_if< std::is_unsigned< T >::value, T >::type SaturatingAdd (T X, T Y, bool *ResultOverflowed=nullptr)
 Add two unsigned integers, X and Y, of type T. More...
 
template<typename T >
std::enable_if< std::is_unsigned< T >::value, T >::type SaturatingMultiply (T X, T Y, bool *ResultOverflowed=nullptr)
 Multiply two unsigned integers, X and Y, of type T. More...
 
template<typename T >
std::enable_if< std::is_unsigned< T >::value, T >::type SaturatingMultiplyAdd (T X, T Y, T A, bool *ResultOverflowed=nullptr)
 Multiply two unsigned integers, X and Y, and add the unsigned integer, A to the product. More...
 
bool operator== (const MD5::MD5Result &LHS, const MD5::MD5Result &RHS)
 
uint64_t MD5Hash (StringRef Str)
 Helper to compute and return lower 64 bits of the given string's MD5 hash. More...
 
LLVM_ATTRIBUTE_RETURNS_NONNULL void * safe_malloc (size_t Sz)
 
LLVM_ATTRIBUTE_RETURNS_NONNULL void * safe_calloc (size_t Count, size_t Sz)
 
LLVM_ATTRIBUTE_RETURNS_NONNULL void * safe_realloc (void *Ptr, size_t Sz)
 
size_t getDefaultPrecision (FloatStyle Style)
 
bool isPrefixedHexStyle (HexPrintStyle S)
 
void write_integer (raw_ostream &S, unsigned int N, size_t MinDigits, IntegerStyle Style)
 
void write_integer (raw_ostream &S, int N, size_t MinDigits, IntegerStyle Style)
 
void write_integer (raw_ostream &S, unsigned long N, size_t MinDigits, IntegerStyle Style)
 
void write_integer (raw_ostream &S, long N, size_t MinDigits, IntegerStyle Style)
 
void write_integer (raw_ostream &S, unsigned long long N, size_t MinDigits, IntegerStyle Style)
 
void write_integer (raw_ostream &S, long long N, size_t MinDigits, IntegerStyle Style)
 
void write_hex (raw_ostream &S, uint64_t N, HexPrintStyle Style, Optional< size_t > Width=None)
 
void write_double (raw_ostream &S, double D, FloatStyle Style, Optional< size_t > Precision=None)
 
static cl::opt< PluginLoader, false, cl::parser< std::string > > LoadOpt ("load", cl::ZeroOrMore, cl::value_desc("pluginfilename"), cl::desc("Load the specified plugin"))
 
void EnablePrettyStackTrace ()
 
const void * SavePrettyStackState ()
 Returns the topmost element of the "pretty" stack state. More...
 
void RestorePrettyStackState (const void *State)
 Restores the topmost element of the "pretty" stack state to State, which should come from a previous call to SavePrettyStackState(). More...
 
raw_ostreamoperator<< (raw_ostream &OS, const Printable &P)
 
std::error_code getRandomBytes (void *Buffer, size_t Size)
 
raw_ostreamouts ()
 This returns a reference to a raw_ostream for standard output. More...
 
raw_ostreamerrs ()
 This returns a reference to a raw_ostream for standard error. More...
 
raw_ostreamnulls ()
 This returns a reference to a raw_ostream which simply discards output. More...
 
void PrintRecyclerStats (size_t Size, size_t Align, size_t FreeListSize)
 PrintRecyclingAllocatorStats - Helper for RecyclingAllocator for printing statistics. More...
 
template<class T = void *>
bool shouldReverseIterate ()
 
template<class DigitsT >
ScaledNumber< DigitsT > operator<< (const ScaledNumber< DigitsT > &L, int16_t Shift)
 
template<class DigitsT >
ScaledNumber< DigitsT > operator>> (const ScaledNumber< DigitsT > &L, int16_t Shift)
 
template<class DigitsT >
raw_ostreamoperator<< (raw_ostream &OS, const ScaledNumber< DigitsT > &X)
 
raw_ostreamoperator<< (raw_ostream &OS, const HexNumber &Value)
 
const std::string to_hexString (uint64_t Value, bool UpperCase=true)
 
template<class T >
const std::string to_string (const T &Value)
 
template<>
void ScopedPrinter::printHex< support::ulittle16_t > (StringRef Label, support::ulittle16_t Value)
 
bool CheckBitcodeOutputToConsole (raw_ostream &stream_to_check, bool print_warning=true)
 Determine if the raw_ostream provided is connected to a terminal. More...
 
MCStreamercreateAsmStreamer (MCContext &Ctx, std::unique_ptr< formatted_raw_ostream > OS, bool isVerboseAsm, bool useDwarfDirectory, MCInstPrinter *InstPrint, std::unique_ptr< MCCodeEmitter > &&CE, std::unique_ptr< MCAsmBackend > &&TAB, bool ShowInst)
 Create a machine code streamer which will print out assembly for the native target, suitable for compiling with a native assembler. More...
 
MCStreamercreateELFStreamer (MCContext &Ctx, std::unique_ptr< MCAsmBackend > &&TAB, std::unique_ptr< MCObjectWriter > &&OW, std::unique_ptr< MCCodeEmitter > &&CE, bool RelaxAll)
 
MCStreamercreateMachOStreamer (MCContext &Ctx, std::unique_ptr< MCAsmBackend > &&TAB, std::unique_ptr< MCObjectWriter > &&OW, std::unique_ptr< MCCodeEmitter > &&CE, bool RelaxAll, bool DWARFMustBeAtTheEnd, bool LabelSections=false)
 
MCStreamercreateWasmStreamer (MCContext &Ctx, std::unique_ptr< MCAsmBackend > &&TAB, std::unique_ptr< MCObjectWriter > &&OW, std::unique_ptr< MCCodeEmitter > &&CE, bool RelaxAll)
 
MCRelocationInfocreateMCRelocationInfo (const Triple &TT, MCContext &Ctx)
 
MCSymbolizercreateMCSymbolizer (const Triple &TT, LLVMOpInfoCallback GetOpInfo, LLVMSymbolLookupCallback SymbolLookUp, void *DisInfo, MCContext *Ctx, std::unique_ptr< MCRelocationInfo > &&RelInfo)
 
void InitializeAllTargetInfos ()
 InitializeAllTargetInfos - The main program should call this function if it wants access to all available targets that LLVM is configured to support, to make them available via the TargetRegistry. More...
 
void InitializeAllTargets ()
 InitializeAllTargets - The main program should call this function if it wants access to all available target machines that LLVM is configured to support, to make them available via the TargetRegistry. More...
 
void InitializeAllTargetMCs ()
 InitializeAllTargetMCs - The main program should call this function if it wants access to all available target MC that LLVM is configured to support, to make them available via the TargetRegistry. More...
 
void InitializeAllAsmPrinters ()
 InitializeAllAsmPrinters - The main program should call this function if it wants all asm printers that LLVM is configured to support, to make them available via the TargetRegistry. More...
 
void InitializeAllAsmParsers ()
 InitializeAllAsmParsers - The main program should call this function if it wants all asm parsers that LLVM is configured to support, to make them available via the TargetRegistry. More...
 
void InitializeAllDisassemblers ()
 InitializeAllDisassemblers - The main program should call this function if it wants all disassemblers that LLVM is configured to support, to make them available via the TargetRegistry. More...
 
bool InitializeNativeTarget ()
 InitializeNativeTarget - The main program should call this function to initialize the native target corresponding to the host. More...
 
bool InitializeNativeTargetAsmPrinter ()
 InitializeNativeTargetAsmPrinter - The main program should call this function to initialize the native target asm printer. More...
 
bool InitializeNativeTargetAsmParser ()
 InitializeNativeTargetAsmParser - The main program should call this function to initialize the native target asm parser. More...
 
bool InitializeNativeTargetDisassembler ()
 InitializeNativeTargetDisassembler - The main program should call this function to initialize the native target disassembler. More...
 
bool llvm_is_multithreaded ()
 Returns true if LLVM is compiled with support for multi-threading, and false otherwise. More...
 
void llvm_execute_on_thread (void(*UserFn)(void *), void *UserData, unsigned RequestedStackSize=0)
 llvm_execute_on_thread - Execute the given UserFn on a separate thread, passing it the provided UserData and waits for thread completion. More...
 
template<typename Function , typename... Args>
void call_once (once_flag &flag, Function &&F, Args &&... ArgList)
 Execute the function specified as a parameter once. More...
 
unsigned heavyweight_hardware_concurrency ()
 Get the amount of currency to use for tasks requiring significant memory or other resources. More...
 
unsigned hardware_concurrency ()
 Get the number of threads that the current program can execute concurrently. More...
 
uint64_t get_threadid ()
 Return the current thread id, as used in various OS system calls. More...
 
uint32_t get_max_thread_name_length ()
 Get the maximum length of a thread name on this platform. More...
 
void set_thread_name (const Twine &Name)
 Set the name of the current thread. More...
 
void get_thread_name (SmallVectorImpl< char > &Name)
 Get the name of the current thread. More...
 
template<typename DesiredTypeName >
StringRef getTypeName ()
 We provide a function which tries to compute the (demangled) name of a type statically. More...
 
raw_ostreamoperator<< (raw_ostream &Out, const VersionTuple &V)
 Print a version number. More...
 
std::error_code mapWindowsError (unsigned EV)
 
uint64_t xxHash64 (llvm::StringRef Data)
 
uint64_t xxHash64 (llvm::ArrayRef< uint8_t > Data)
 
void PrintNote (ArrayRef< SMLoc > NoteLoc, const Twine &Msg)
 
void PrintWarning (ArrayRef< SMLoc > WarningLoc, const Twine &Msg)
 
void PrintWarning (const char *Loc, const Twine &Msg)
 
void PrintWarning (const Twine &Msg)
 
void PrintError (ArrayRef< SMLoc > ErrorLoc, const Twine &Msg)
 
void PrintError (const char *Loc, const Twine &Msg)
 
void PrintError (const Twine &Msg)
 
LLVM_ATTRIBUTE_NORETURN void PrintFatalError (const Twine &Msg)
 
LLVM_ATTRIBUTE_NORETURN void PrintFatalError (ArrayRef< SMLoc > ErrorLoc, const Twine &Msg)
 
int TableGenMain (char *argv0, TableGenMainFn *MainFn)
 
raw_ostreamoperator<< (raw_ostream &OS, const RecTy &Ty)
 
RecTyresolveTypes (RecTy *T1, RecTy *T2)
 Find a common type that T1 and T2 convert to. More...
 
raw_ostreamoperator<< (raw_ostream &OS, const Init &I)
 
raw_ostreamoperator<< (raw_ostream &OS, const RecordVal &RV)
 
raw_ostreamoperator<< (raw_ostream &OS, const Record &R)
 
raw_ostreamoperator<< (raw_ostream &OS, const RecordKeeper &RK)
 
void EmitJSON (RecordKeeper &RK, raw_ostream &OS)
 
void emitSourceFileHeader (StringRef Desc, raw_ostream &OS)
 emitSourceFileHeader - Output an LLVM style file header to the specified raw_ostream. More...
 
Optional< CodeModel::Modelunwrap (LLVMCodeModel Model, bool &JIT)
 
LLVMCodeModel wrap (CodeModel::Model Model)
 
CodeModel::Model getEffectiveCodeModel (Optional< CodeModel::Model > CM, CodeModel::Model Default)
 Helper method for getting the code model, returning Default if CM does not have a value. More...
 
 MATCHER (Succeeded, "")
 
 MATCHER (Failed, "")
 
template<typename InfoT >
testing::Matcher< const detail::ErrorHolder & > Failed ()
 
template<typename InfoT , typename M >
testing::Matcher< const detail::ErrorHolder & > Failed (M Matcher)
 
template<typename M >
detail::ValueMatchesPoly< M > HasValue (M Matcher)
 
int dlltoolDriverMain (ArrayRef< const char *> ArgsArr)
 
int libDriverMain (ArrayRef< const char *> ARgs)
 
FunctionPasscreateAggressiveInstCombinerPass ()
 
void addCoroutinePassesToExtensionPoints (PassManagerBuilder &Builder)
 Add all coroutine passes to appropriate extension points. More...
 
PasscreateCoroEarlyPass ()
 Lower coroutine intrinsics that are not needed by later passes. More...
 
PasscreateCoroSplitPass ()
 Split up coroutines into multiple functions driving their state machines. More...
 
PasscreateCoroElidePass ()
 Analyze coroutines use sites, devirtualize resume/destroy calls and elide heap allocation for coroutine frame where possible. More...
 
PasscreateCoroCleanupPass ()
 Lower all remaining coroutine intrinsics. More...
 
FunctionPasscreateInstructionCombiningPass (bool ExpensiveCombines=true)
 
FunctionPasscreateBoundsCheckingLegacyPass ()
 Legacy pass creation function for the above pass. More...
 
FunctionPasscreateMemorySanitizerLegacyPassPass (int TrackOrigins=0, bool Recover=false, bool EnableKmsan=false)
 
void setProfMetadata (Module *M, Instruction *TI, ArrayRef< uint64_t > EdgeCounts, uint64_t MaxCount)
 
void setIrrLoopHeaderMetadata (Module *M, Instruction *TI, uint64_t Count)
 
FunctionPasscreateThreadSanitizerLegacyPassPass ()
 
BasicBlock::iterator PrepareToSplitEntryBlock (BasicBlock &BB, BasicBlock::iterator IP)
 Instrumentation passes often insert conditional checks into entry blocks. More...
 
GlobalVariablecreatePrivateGlobalForString (Module &M, StringRef Str, bool AllowMerging, const char *NamePrefix="")
 
ComdatGetOrCreateFunctionComdat (Function &F, Triple &T, const std::string &ModuleId)
 
ModulePasscreateGCOVProfilerPass (const GCOVOptions &Options=GCOVOptions::getDefault())
 
ModulePasscreatePGOInstrumentationGenLegacyPass ()
 
ModulePasscreatePGOInstrumentationUseLegacyPass (StringRef Filename=StringRef(""))
 
ModulePasscreatePGOIndirectCallPromotionLegacyPass (bool InLTO=false, bool SamplePGO=false)
 
FunctionPasscreatePGOMemOPSizeOptLegacyPass ()
 
ModulePasscreateInstrProfilingLegacyPass (const InstrProfOptions &Options=InstrProfOptions())
 Insert frontend instrumentation based profiling. More...
 
FunctionPasscreateAddressSanitizerFunctionPass (bool CompileKernel=false, bool Recover=false, bool UseAfterScope=false)
 
ModulePasscreateAddressSanitizerModulePass (bool CompileKernel=false, bool Recover=false, bool UseGlobalsGC=true, bool UseOdrIndicator=true)
 
FunctionPasscreateHWAddressSanitizerPass (bool CompileKernel=false, bool Recover=false)
 
ModulePasscreateDataFlowSanitizerPass (const std::vector< std::string > &ABIListFiles=std::vector< std::string >(), void *(*getArgTLS)()=nullptr, void *(*getRetValTLS)()=nullptr)
 
ModulePasscreateEfficiencySanitizerPass (const EfficiencySanitizerOptions &Options=EfficiencySanitizerOptions())
 
ModulePasscreateSanitizerCoverageModulePass (const SanitizerCoverageOptions &Options=SanitizerCoverageOptions())
 
static uint64_t calculateCountScale (uint64_t MaxCount)
 Calculate what to divide by to scale counts. More...
 
static uint32_t scaleBranchCount (uint64_t Count, uint64_t Scale)
 Scale an individual branch count. More...
 
PasscreateAlwaysInlinerLegacyPass (bool InsertLifetime=true)
 Create a legacy pass manager instance of a pass to inline and remove functions marked as "always_inline". More...
 
PasscreateForceFunctionAttrsLegacyPass ()
 Create a legacy pass manager instance of a pass to force function attrs. More...
 
MemoryAccessKind computeFunctionBodyMemoryAccess (Function &F, AAResults &AAR)
 Returns the memory access properties of this copy of the function. More...
 
PasscreatePostOrderFunctionAttrsLegacyPass ()
 Create a legacy pass manager instance of a pass to compute function attrs in post-order. More...
 
void ComputeCrossModuleImport (const ModuleSummaryIndex &Index, const StringMap< GVSummaryMapTy > &ModuleToDefinedGVSummaries, StringMap< FunctionImporter::ImportMapTy > &ImportLists, StringMap< FunctionImporter::ExportSetTy > &ExportLists)
 Compute all the imports and exports for every module in the Index. More...
 
void ComputeCrossModuleImportForModule (StringRef ModulePath, const ModuleSummaryIndex &Index, FunctionImporter::ImportMapTy &ImportList)
 Compute all the imports for the given module using the Index. More...
 
void ComputeCrossModuleImportForModuleFromIndex (StringRef ModulePath, const ModuleSummaryIndex &Index, FunctionImporter::ImportMapTy &ImportList)
 Mark all external summaries in Index for import into the given module. More...
 
void computeDeadSymbols (ModuleSummaryIndex &Index, const DenseSet< GlobalValue::GUID > &GUIDPreservedSymbols, function_ref< PrevailingType(GlobalValue::GUID)> isPrevailing)
 Compute all the symbols that are "dead": i.e these that can't be reached in the graph from any of the given symbols listed in GUIDPreservedSymbols. More...
 
void computeDeadSymbolsWithConstProp (ModuleSummaryIndex &Index, const DenseSet< GlobalValue::GUID > &GUIDPreservedSymbols, function_ref< PrevailingType(GlobalValue::GUID)> isPrevailing, bool ImportEnabled)
 Compute dead symbols and run constant propagation in combined index after that. More...
 
bool convertToDeclaration (GlobalValue &GV)
 Converts value GV to declaration, or replaces with a declaration if it is an alias. More...
 
void gatherImportedSummariesForModule (StringRef ModulePath, const StringMap< GVSummaryMapTy > &ModuleToDefinedGVSummaries, const FunctionImporter::ImportMapTy &ImportList, std::map< std::string, GVSummaryMapTy > &ModuleToSummariesForIndex)
 Compute the set of summaries needed for a ThinLTO backend compilation of ModulePath. More...
 
std::error_code EmitImportsFiles (StringRef ModulePath, StringRef OutputFilename, const std::map< std::string, GVSummaryMapTy > &ModuleToSummariesForIndex)
 Emit into OutputFilename the files module ModulePath will import from. More...
 
void thinLTOResolvePrevailingInModule (Module &TheModule, const GVSummaryMapTy &DefinedGlobals)
 Resolve prevailing symbol linkages in TheModule based on the information recorded in the summaries during global summary-based analysis. More...
 
void thinLTOInternalizeModule (Module &TheModule, const GVSummaryMapTy &DefinedGlobals)
 Internalize TheModule based on the information recorded in the summaries during global summary-based analysis. More...
 
PasscreateInferFunctionAttrsLegacyPass ()
 Create a legacy pass manager instance of a pass to infer function attributes. More...
 
bool internalizeModule (Module &TheModule, std::function< bool(const GlobalValue &)> MustPreserveGV, CallGraph *CG=nullptr)
 Helper function to internalize functions and variables in a Module. More...
 
ModulePasscreateStripSymbolsPass (bool OnlyDebugInfo=false)
 
ModulePasscreateStripNonDebugSymbolsPass ()
 
ModulePasscreateStripDebugDeclarePass ()
 
ModulePasscreateStripDeadDebugInfoPass ()
 
ModulePasscreateConstantMergePass ()
 createConstantMergePass - This function returns a new pass that merges duplicate global constants together into a single constant that is shared. More...
 
ModulePasscreateGlobalOptimizerPass ()
 createGlobalOptimizerPass - This function returns a new pass that optimizes non-address taken internal globals. More...
 
ModulePasscreateGlobalDCEPass ()
 createGlobalDCEPass - This transform is designed to eliminate unreachable internal globals (functions or global variables) More...
 
ModulePasscreateEliminateAvailableExternallyPass ()
 This transform is designed to eliminate available external globals (functions or global variables) More...
 
ModulePasscreateGVExtractionPass (std::vector< GlobalValue *> &GVs, bool deleteFn=false)
 createGVExtractionPass - If deleteFn is true, this pass deletes the specified global values. More...
 
PasscreateFunctionImportPass ()
 This pass performs iterative function importing from other modules. More...
 
PasscreateFunctionInliningPass ()
 createFunctionInliningPass - Return a new pass object that uses a heuristic to inline direct function calls to small functions. More...
 
PasscreateFunctionInliningPass (int Threshold)
 
PasscreateFunctionInliningPass (unsigned OptLevel, unsigned SizeOptLevel, bool DisableInlineHotCallSite)
 
PasscreateFunctionInliningPass (InlineParams &Params)
 
PasscreatePruneEHPass ()
 createPruneEHPass - Return a new pass object which transforms invoke instructions into calls, if the callee can not unwind the stack. More...
 
ModulePasscreateInternalizePass (std::function< bool(const GlobalValue &)> MustPreserveGV)
 createInternalizePass - This pass loops over all of the functions in the input module, internalizing all globals (functions and variables) it can. More...
 
ModulePasscreateInternalizePass ()
 createInternalizePass - Same as above, but with an empty exportList. More...
 
ModulePasscreateDeadArgEliminationPass ()
 createDeadArgEliminationPass - This pass removes arguments from functions which are not used by the body of the function. More...
 
ModulePasscreateDeadArgHackingPass ()
 DeadArgHacking pass - Same as DAE, but delete arguments of external functions as well. More...
 
PasscreateArgumentPromotionPass (unsigned maxElements=3)
 createArgumentPromotionPass - This pass promotes "by reference" arguments to be passed by value if the number of elements passed is smaller or equal to maxElements (maxElements == 0 means always promote). More...
 
ModulePasscreateIPConstantPropagationPass ()
 createIPConstantPropagationPass - This pass propagates constants from call sites into the bodies of functions. More...
 
ModulePasscreateIPSCCPPass ()
 createIPSCCPPass - This pass propagates constants from call sites into the bodies of functions, and keeps track of whether basic blocks are executable in the process. More...
 
PasscreateLoopExtractorPass ()
 createLoopExtractorPass - This pass extracts all natural loops from the program into a function if it can. More...
 
PasscreateSingleLoopExtractorPass ()
 createSingleLoopExtractorPass - This pass extracts one natural loop from the program into a function if it can. More...
 
ModulePasscreateBlockExtractorPass ()
 createBlockExtractorPass - This pass extracts all the specified blocks from the functions in the module. More...
 
ModulePasscreateBlockExtractorPass (const SmallVectorImpl< BasicBlock *> &BlocksToExtract, bool EraseFunctions)
 
ModulePasscreateStripDeadPrototypesPass ()
 createStripDeadPrototypesPass - This pass removes any function declarations (prototypes) that are not used. More...
 
PasscreateReversePostOrderFunctionAttrsPass ()
 createReversePostOrderFunctionAttrsPass - This pass walks SCCs of the call graph in RPO to deduce and propagate function attributes. More...
 
ModulePasscreateMergeFunctionsPass ()
 createMergeFunctionsPass - This pass discovers identical functions and collapses them. More...
 
ModulePasscreateHotColdSplittingPass ()
 createHotColdSplittingPass - This pass outlines cold blocks into a separate function(s). More...
 
ModulePasscreatePartialInliningPass ()
 createPartialInliningPass - This pass inlines parts of functions. More...
 
ModulePasscreateBarrierNoopPass ()
 createBarrierNoopPass - This pass is purely a module pass barrier in a pass manager. More...
 
ModulePasscreateCalledValuePropagationPass ()
 createCalledValuePropagationPass - Attach metadata to indirct call sites indicating the set of functions they may target at run-time. More...
 
ModulePasscreateLowerTypeTestsPass (ModuleSummaryIndex *ExportSummary, const ModuleSummaryIndex *ImportSummary)
 This pass lowers type metadata and the llvm.type.test intrinsic to bitsets. More...
 
ModulePasscreateCrossDSOCFIPass ()
 This pass export CFI checks for use by external modules. More...
 
ModulePasscreateWholeProgramDevirtPass (ModuleSummaryIndex *ExportSummary, const ModuleSummaryIndex *ImportSummary)
 This pass implements whole-program devirtualization using type metadata. More...
 
ModulePasscreateGlobalSplitPass ()
 This pass splits globals into pieces for the benefit of whole-program devirtualization and control-flow integrity. More...
 
ModulePasscreateSampleProfileLoaderPass ()
 
ModulePasscreateSampleProfileLoaderPass (StringRef Name)
 
ModulePasscreateWriteThinLTOBitcodePass (raw_ostream &Str, raw_ostream *ThinLinkOS=nullptr)
 Write ThinLTO-ready bitcode to Str. More...
 
PasscreateObjCARCAPElimPass ()
 
PasscreateObjCARCExpandPass ()
 
PasscreateObjCARCContractPass ()
 
PasscreateObjCARCOptPass ()
 
FunctionPasscreateGVNPass (bool NoLoads=false)
 Create a legacy GVN pass. More...
 
FunctionPasscreateInstSimplifyLegacyPass ()
 Create a legacy pass that does instruction simplification on each instruction in a function. More...
 
template<typename LoopPassT >
FunctionToLoopPassAdaptor< LoopPassT > createFunctionToLoopPassAdaptor (LoopPassT Pass, bool DebugLogging=false)
 A function to deduce a loop pass type and wrap it in the templated adaptor. More...
 
FunctionPasscreateScalarizerPass ()
 Create a legacy pass manager instance of the Scalarizer pass. More...
 
bool runIPSCCP (Module &M, const DataLayout &DL, const TargetLibraryInfo *TLI, function_ref< AnalysisResultsForFn(Function &)> getAnalysis)
 
PasscreateSimpleLoopUnswitchLegacyPass (bool NonTrivial=false)
 Create the legacy pass object for the simple loop unswitcher. More...
 
PasscreateWarnMissedTransformationsPass ()
 
FunctionPasscreateConstantPropagationPass ()
 
FunctionPasscreateAlignmentFromAssumptionsPass ()
 
FunctionPasscreateSCCPPass ()
 
PasscreateDeadInstEliminationPass ()
 
FunctionPasscreateDeadCodeEliminationPass ()
 
FunctionPasscreateDeadStoreEliminationPass ()
 
FunctionPasscreateCallSiteSplittingPass ()
 
FunctionPasscreateAggressiveDCEPass ()
 
FunctionPasscreateGuardWideningPass ()
 
PasscreateLoopGuardWideningPass ()
 
FunctionPasscreateBitTrackingDCEPass ()
 
FunctionPasscreateSROAPass ()
 
PasscreateInductiveRangeCheckEliminationPass ()
 
PasscreateIndVarSimplifyPass ()
 
PasscreateLICMPass ()
 
PasscreateLoopSinkPass ()
 
PasscreateLoopPredicationPass ()
 
PasscreateLoopInterchangePass ()
 
PasscreateLoopStrengthReducePass ()
 
PasscreateLoopUnswitchPass (bool OptimizeForSize=false, bool hasBranchDivergence=false)
 
PasscreateLoopInstSimplifyPass ()
 
PasscreateLoopUnrollPass (int OptLevel=2, bool OnlyWhenForced=false, int Threshold=-1, int Count=-1, int AllowPartial=-1, int Runtime=-1, int UpperBound=-1, int AllowPeeling=-1)
 
PasscreateSimpleLoopUnrollPass (int OptLevel=2, bool OnlyWhenForced=false)
 
PasscreateLoopUnrollAndJamPass (int OptLevel=2)
 
PasscreateLoopRerollPass ()
 
PasscreateLoopRotatePass (int MaxHeaderSize=-1)
 
PasscreateLoopIdiomPass ()
 
PasscreateLoopVersioningLICMPass ()
 
FunctionPasscreateDemoteRegisterToMemoryPass ()
 
FunctionPasscreateReassociatePass ()
 
FunctionPasscreateJumpThreadingPass (int Threshold=-1)
 
FunctionPasscreateCFGSimplificationPass (unsigned Threshold=1, bool ForwardSwitchCond=false, bool ConvertSwitch=false, bool KeepLoops=true, bool SinkCommon=false, std::function< bool(const Function &)> Ftor=nullptr)
 
FunctionPasscreateFlattenCFGPass ()
 
PasscreateStructurizeCFGPass (bool SkipUniformRegions=false)
 When SkipUniformRegions is true the structizer will not structurize regions that only contain uniform branches. More...
 
FunctionPasscreateTailCallEliminationPass ()
 
FunctionPasscreateEarlyCSEPass (bool UseMemorySSA=false)
 
FunctionPasscreateGVNHoistPass ()
 
FunctionPasscreateGVNSinkPass ()
 
FunctionPasscreateMergedLoadStoreMotionPass ()
 createMergedLoadStoreMotionPass - The public interface to this file. More...
 
FunctionPasscreateNewGVNPass ()
 
FunctionPasscreateDivRemPairsPass ()
 
FunctionPasscreateMemCpyOptPass ()
 The public interface to this file... More...
 
PasscreateLoopDeletionPass ()
 
FunctionPasscreateConstantHoistingPass ()
 
FunctionPasscreateSinkingPass ()
 
PasscreateLowerAtomicPass ()
 
PasscreateLowerGuardIntrinsicPass ()
 
PasscreateMergeICmpsPass ()
 
PasscreateCorrelatedValuePropagationPass ()
 
FunctionPasscreateInferAddressSpacesPass ()
 
FunctionPasscreateLowerExpectIntrinsicPass ()
 
FunctionPasscreatePartiallyInlineLibCallsPass ()
 
FunctionPasscreateSeparateConstOffsetFromGEPPass (bool LowerGEP=false)
 
FunctionPasscreateSpeculativeExecutionPass ()
 
FunctionPasscreateSpeculativeExecutionIfHasBranchDivergencePass ()
 
FunctionPasscreateStraightLineStrengthReducePass ()
 
FunctionPasscreatePlaceSafepointsPass ()
 
ModulePasscreateRewriteStatepointsForGCLegacyPass ()
 
FunctionPasscreateFloat2IntPass ()
 
FunctionPasscreateNaryReassociatePass ()
 
FunctionPasscreateLoopDistributePass ()
 
FunctionPasscreateLoopLoadEliminationPass ()
 
FunctionPasscreateLoopVersioningPass ()
 
FunctionPasscreateLoopDataPrefetchPass ()
 
ModulePasscreateNameAnonGlobalPass ()
 ===------------------------------------------------------------------—===// More...
 
ModulePasscreateCanonicalizeAliasesPass ()
 
FunctionPasscreateLibCallsShrinkWrapPass ()
 
PasscreateLoopSimplifyCFGPass ()
 
ASanStackFrameLayout ComputeASanStackFrameLayout (SmallVectorImpl< ASanStackVariableDescription > &Vars, size_t Granularity, size_t MinHeaderSize)
 
SmallString< 64 > ComputeASanStackFrameDescription (const SmallVectorImpl< ASanStackVariableDescription > &Vars)
 
SmallVector< uint8_t, 64 > GetShadowBytes (const SmallVectorImpl< ASanStackVariableDescription > &Vars, const ASanStackFrameLayout &Layout)
 
SmallVector< uint8_t, 64 > GetShadowBytesAfterScope (const SmallVectorImpl< ASanStackVariableDescription > &Vars, const ASanStackFrameLayout &Layout)
 
void DeleteDeadBlock (BasicBlock *BB, DomTreeUpdater *DTU=nullptr)
 Delete the specified block, which must have no predecessors. More...
 
void DeleteDeadBlocks (SmallVectorImpl< BasicBlock *> &BBs, DomTreeUpdater *DTU=nullptr)
 Delete the specified blocks from BB. More...
 
void FoldSingleEntryPHINodes (BasicBlock *BB, MemoryDependenceResults *MemDep=nullptr)
 We know that BB has one predecessor. More...
 
bool DeleteDeadPHIs (BasicBlock *BB, const TargetLibraryInfo *TLI=nullptr)
 Examine each PHI in the given block and delete it if it is dead. More...
 
bool MergeBlockIntoPredecessor (BasicBlock *BB, DomTreeUpdater *DTU=nullptr, LoopInfo *LI=nullptr, MemorySSAUpdater *MSSAU=nullptr, MemoryDependenceResults *MemDep=nullptr)
 Attempts to merge a block into its predecessor, if possible. More...
 
void ReplaceInstWithValue (BasicBlock::InstListType &BIL, BasicBlock::iterator &BI, Value *V)
 Replace all uses of an instruction (specified by BI) with a value, then remove and delete the original instruction. More...
 
void ReplaceInstWithInst (BasicBlock::InstListType &BIL, BasicBlock::iterator &BI, Instruction *I)
 Replace the instruction specified by BI with the instruction specified by I. More...
 
void ReplaceInstWithInst (Instruction *From, Instruction *To)
 Replace the instruction specified by From with the instruction specified by To. More...
 
BasicBlockSplitCriticalEdge (Instruction *TI, unsigned SuccNum, const CriticalEdgeSplittingOptions &Options=CriticalEdgeSplittingOptions())
 If this edge is a critical edge, insert a new node to split the critical edge. More...
 
BasicBlockSplitCriticalEdge (BasicBlock *BB, succ_iterator SI, const CriticalEdgeSplittingOptions &Options=CriticalEdgeSplittingOptions())
 
bool SplitCriticalEdge (BasicBlock *Succ, pred_iterator PI, const CriticalEdgeSplittingOptions &Options=CriticalEdgeSplittingOptions())
 If the edge from *PI to BB is not critical, return false. More...
 
BasicBlockSplitCriticalEdge (BasicBlock *Src, BasicBlock *Dst, const CriticalEdgeSplittingOptions &Options=CriticalEdgeSplittingOptions())
 If an edge from Src to Dst is critical, split the edge and return true, otherwise return false. More...
 
unsigned SplitAllCriticalEdges (Function &F, const CriticalEdgeSplittingOptions &Options=CriticalEdgeSplittingOptions())
 Loop over all of the edges in the CFG, breaking critical edges as they are found. More...
 
BasicBlockSplitEdge (BasicBlock *From, BasicBlock *To, DominatorTree *DT=nullptr, LoopInfo *LI=nullptr, MemorySSAUpdater *MSSAU=nullptr)
 Split the edge connecting specified block. More...
 
BasicBlockSplitBlock (BasicBlock *Old, Instruction *SplitPt, DominatorTree *DT=nullptr, LoopInfo *LI=nullptr, MemorySSAUpdater *MSSAU=nullptr)
 Split the specified block at the specified instruction - everything before SplitPt stays in Old and everything starting with SplitPt moves to a new block. More...
 
BasicBlockSplitBlockPredecessors (BasicBlock *BB, ArrayRef< BasicBlock *> Preds, const char *Suffix, DominatorTree *DT=nullptr, LoopInfo *LI=nullptr, MemorySSAUpdater *MSSAU=nullptr, bool PreserveLCSSA=false)
 This method introduces at least one new basic block into the function and moves some of the predecessors of BB to be predecessors of the new block. More...
 
void SplitLandingPadPredecessors (BasicBlock *OrigBB, ArrayRef< BasicBlock *> Preds, const char *Suffix, const char *Suffix2, SmallVectorImpl< BasicBlock *> &NewBBs, DominatorTree *DT=nullptr, LoopInfo *LI=nullptr, MemorySSAUpdater *MSSAU=nullptr, bool PreserveLCSSA=false)
 This method transforms the landing pad, OrigBB, by introducing two new basic blocks into the function. More...
 
ReturnInstFoldReturnIntoUncondBranch (ReturnInst *RI, BasicBlock *BB, BasicBlock *Pred, DomTreeUpdater *DTU=nullptr)
 This method duplicates the specified return instruction into a predecessor which ends in an unconditional branch. More...
 
InstructionSplitBlockAndInsertIfThen (Value *Cond, Instruction *SplitBefore, bool Unreachable, MDNode *BranchWeights=nullptr, DominatorTree *DT=nullptr, LoopInfo *LI=nullptr)
 Split the containing block at the specified instruction - everything before SplitBefore stays in the old basic block, and the rest of the instructions in the BB are moved to a new block. More...
 
void SplitBlockAndInsertIfThenElse (Value *Cond, Instruction *SplitBefore, Instruction **ThenTerm, Instruction **ElseTerm, MDNode *BranchWeights=nullptr)
 SplitBlockAndInsertIfThenElse is similar to SplitBlockAndInsertIfThen, but also creates the ElseBlock. More...
 
ValueGetIfCondition (BasicBlock *BB, BasicBlock *&IfTrue, BasicBlock *&IfFalse)
 Check whether BB is the merge point of a if-region. More...
 
bool SplitIndirectBrCriticalEdges (Function &F, BranchProbabilityInfo *BPI=nullptr, BlockFrequencyInfo *BFI=nullptr)
 
bool inferLibFuncAttributes (Function &F, const TargetLibraryInfo &TLI)
 Analyze the name and prototype of the given function and set any applicable attributes. More...
 
bool inferLibFuncAttributes (Module *M, StringRef Name, const TargetLibraryInfo &TLI)
 
bool hasUnaryFloatFn (const TargetLibraryInfo *TLI, Type *Ty, LibFunc DoubleFn, LibFunc FloatFn, LibFunc LongDoubleFn)
 Check whether the overloaded unary floating point function corresponding to Ty is available. More...
 
StringRef getUnaryFloatFn (const TargetLibraryInfo *TLI, Type *Ty, LibFunc DoubleFn, LibFunc FloatFn, LibFunc LongDoubleFn)
 Get the name of the overloaded unary floating point function corresponding to Ty. More...
 
ValuecastToCStr (Value *V, IRBuilder<> &B)
 Return V if it is an i8*, otherwise cast it to i8*. More...
 
ValueemitStrLen (Value *Ptr, IRBuilder<> &B, const DataLayout &DL, const TargetLibraryInfo *TLI)
 Emit a call to the strlen function to the builder, for the specified pointer. More...
 
ValueemitStrNLen (Value *Ptr, Value *MaxLen, IRBuilder<> &B, const DataLayout &DL, const TargetLibraryInfo *TLI)
 Emit a call to the strnlen function to the builder, for the specified pointer. More...
 
ValueemitStrChr (Value *Ptr, char C, IRBuilder<> &B, const TargetLibraryInfo *TLI)
 Emit a call to the strchr function to the builder, for the specified pointer and character. More...
 
ValueemitStrNCmp (Value *Ptr1, Value *Ptr2, Value *Len, IRBuilder<> &B, const DataLayout &DL, const TargetLibraryInfo *TLI)
 Emit a call to the strncmp function to the builder. More...
 
ValueemitStrCpy (Value *Dst, Value *Src, IRBuilder<> &B, const TargetLibraryInfo *TLI, StringRef Name="strcpy")
 Emit a call to the strcpy function to the builder, for the specified pointer arguments. More...
 
ValueemitStrNCpy (Value *Dst, Value *Src, Value *Len, IRBuilder<> &B, const TargetLibraryInfo *TLI, StringRef Name="strncpy")
 Emit a call to the strncpy function to the builder, for the specified pointer arguments and length. More...
 
ValueemitMemCpyChk (Value *Dst, Value *Src, Value *Len, Value *ObjSize, IRBuilder<> &B, const DataLayout &DL, const TargetLibraryInfo *TLI)
 Emit a call to the __memcpy_chk function to the builder. More...
 
ValueemitMemChr (Value *Ptr, Value *Val, Value *Len, IRBuilder<> &B, const DataLayout &DL, const TargetLibraryInfo *TLI)
 Emit a call to the memchr function. More...
 
ValueemitMemCmp (Value *Ptr1, Value *Ptr2, Value *Len, IRBuilder<> &B, const DataLayout &DL, const TargetLibraryInfo *TLI)
 Emit a call to the memcmp function. More...
 
ValueemitUnaryFloatFnCall (Value *Op, StringRef Name, IRBuilder<> &B, const AttributeList &Attrs)
 Emit a call to the unary function named 'Name' (e.g. More...
 
ValueemitUnaryFloatFnCall (Value *Op, const TargetLibraryInfo *TLI, LibFunc DoubleFn, LibFunc FloatFn, LibFunc LongDoubleFn, IRBuilder<> &B, const AttributeList &Attrs)
 Emit a call to the unary function DoubleFn, FloatFn or LongDoubleFn, depending of the type of Op. More...
 
ValueemitBinaryFloatFnCall (Value *Op1, Value *Op2, StringRef Name, IRBuilder<> &B, const AttributeList &Attrs)
 Emit a call to the binary function named 'Name' (e.g. More...
 
ValueemitPutChar (Value *Char, IRBuilder<> &B, const TargetLibraryInfo *TLI)
 Emit a call to the putchar function. This assumes that Char is an integer. More...
 
ValueemitPutS (Value *Str, IRBuilder<> &B, const TargetLibraryInfo *TLI)
 Emit a call to the puts function. This assumes that Str is some pointer. More...
 
ValueemitFPutC (Value *Char, Value *File, IRBuilder<> &B, const TargetLibraryInfo *TLI)
 Emit a call to the fputc function. More...
 
ValueemitFPutCUnlocked (Value *Char, Value *File, IRBuilder<> &B, const TargetLibraryInfo *TLI)
 Emit a call to the fputc_unlocked function. More...
 
ValueemitFPutS (Value *Str, Value *File, IRBuilder<> &B, const TargetLibraryInfo *TLI)
 Emit a call to the fputs function. More...
 
ValueemitFPutSUnlocked (Value *Str, Value *File, IRBuilder<> &B, const TargetLibraryInfo *TLI)
 Emit a call to the fputs_unlocked function. More...
 
ValueemitFWrite (Value *Ptr, Value *Size, Value *File, IRBuilder<> &B, const DataLayout &DL, const TargetLibraryInfo *TLI)
 Emit a call to the fwrite function. More...
 
ValueemitMalloc (Value *Num, IRBuilder<> &B, const DataLayout &DL, const TargetLibraryInfo *TLI)
 Emit a call to the malloc function. More...
 
ValueemitCalloc (Value *Num, Value *Size, const AttributeList &Attrs, IRBuilder<> &B, const TargetLibraryInfo &TLI)
 Emit a call to the calloc function. More...
 
ValueemitFWriteUnlocked (Value *Ptr, Value *Size, Value *N, Value *File, IRBuilder<> &B, const DataLayout &DL, const TargetLibraryInfo *TLI)
 Emit a call to the fwrite_unlocked function. More...
 
ValueemitFGetCUnlocked (Value *File, IRBuilder<> &B, const TargetLibraryInfo *TLI)
 Emit a call to the fgetc_unlocked function. File is a pointer to FILE. More...
 
ValueemitFGetSUnlocked (Value *Str, Value *Size, Value *File, IRBuilder<> &B, const TargetLibraryInfo *TLI)
 Emit a call to the fgets_unlocked function. More...
 
ValueemitFReadUnlocked (Value *Ptr, Value *Size, Value *N, Value *File, IRBuilder<> &B, const DataLayout &DL, const TargetLibraryInfo *TLI)
 Emit a call to the fread_unlocked function. More...
 
bool bypassSlowDivision (BasicBlock *BB, const DenseMap< unsigned int, unsigned int > &BypassWidth)
 This optimization identifies DIV instructions in a BB that can be profitably bypassed and carried out with a shorter, faster divide. More...
 
bool isLegalToPromote (CallSite CS, Function *Callee, const char **FailureReason=nullptr)
 Return true if the given indirect call site can be made to call Callee. More...
 
InstructionpromoteCall (CallSite CS, Function *Callee, CastInst **RetBitCast=nullptr)
 Promote the given indirect call site to unconditionally call Callee. More...
 
InstructionpromoteCallWithIfThenElse (CallSite CS, Function *Callee, MDNode *BranchWeights=nullptr)
 Promote the given indirect call site to conditionally call Callee. More...
 
std::unique_ptr< ModuleCloneModule (const Module &M)
 Return an exact copy of the specified module. More...
 
std::unique_ptr< ModuleCloneModule (const Module &M, ValueToValueMapTy &VMap)
 
std::unique_ptr< ModuleCloneModule (const Module &M, ValueToValueMapTy &VMap, function_ref< bool(const GlobalValue *)> ShouldCloneDefinition)
 Return a copy of the specified module. More...
 
BasicBlockCloneBasicBlock (const BasicBlock *BB, ValueToValueMapTy &VMap, const Twine &NameSuffix="", Function *F=nullptr, ClonedCodeInfo *CodeInfo=nullptr, DebugInfoFinder *DIFinder=nullptr)
 Return a copy of the specified basic block, but without embedding the block into a particular function. More...
 
FunctionCloneFunction (Function *F, ValueToValueMapTy &VMap, ClonedCodeInfo *CodeInfo=nullptr)
 Return a copy of the specified function and add it to that function's module. More...
 
void CloneFunctionInto (Function *NewFunc, const Function *OldFunc, ValueToValueMapTy &VMap, bool ModuleLevelChanges, SmallVectorImpl< ReturnInst *> &Returns, const char *NameSuffix="", ClonedCodeInfo *CodeInfo=nullptr, ValueMapTypeRemapper *TypeMapper=nullptr, ValueMaterializer *Materializer=nullptr)
 Clone OldFunc into NewFunc, transforming the old arguments into references to VMap values. More...
 
void CloneAndPruneIntoFromInst (Function *NewFunc, const Function *OldFunc, const Instruction *StartingInst, ValueToValueMapTy &VMap, bool ModuleLevelChanges, SmallVectorImpl< ReturnInst *> &Returns, const char *NameSuffix="", ClonedCodeInfo *CodeInfo=nullptr)
 This works like CloneAndPruneFunctionInto, except that it does not clone the entire function. More...
 
void CloneAndPruneFunctionInto (Function *NewFunc, const Function *OldFunc, ValueToValueMapTy &VMap, bool ModuleLevelChanges, SmallVectorImpl< ReturnInst *> &Returns, const char *NameSuffix="", ClonedCodeInfo *CodeInfo=nullptr, Instruction *TheCall=nullptr)
 This works exactly like CloneFunctionInto, except that it does some simple constant prop and DCE on the fly. More...
 
InlineResult InlineFunction (CallInst *C, InlineFunctionInfo &IFI, AAResults *CalleeAAR=nullptr, bool InsertLifetime=true)
 This function inlines the called function into the basic block of the caller. More...
 
InlineResult InlineFunction (InvokeInst *II, InlineFunctionInfo &IFI, AAResults *CalleeAAR=nullptr, bool InsertLifetime=true)
 
InlineResult InlineFunction (CallSite CS, InlineFunctionInfo &IFI, AAResults *CalleeAAR=nullptr, bool InsertLifetime=true, Function *ForwardVarArgsTo=nullptr)
 This function inlines the called function into the basic block of the caller. More...
 
LoopcloneLoopWithPreheader (BasicBlock *Before, BasicBlock *LoopDomBB, Loop *OrigLoop, ValueToValueMapTy &VMap, const Twine &NameSuffix, LoopInfo *LI, DominatorTree *DT, SmallVectorImpl< BasicBlock *> &Blocks)
 Clones a loop OrigLoop. More...
 
void remapInstructionsInBlocks (const SmallVectorImpl< BasicBlock *> &Blocks, ValueToValueMapTy &VMap)
 Remaps instructions in Blocks using the mapping in VMap. More...
 
BasicBlockDuplicateInstructionsInSplitBetween (BasicBlock *BB, BasicBlock *PredBB, Instruction *StopAt, ValueToValueMapTy &ValueMapping, DomTreeUpdater &DTU)
 Split edge between BB and PredBB and duplicate all non-Phi instructions from BB between its beginning and the StopAt instruction into the split block. More...
 
bool optimizeGlobalCtorsList (Module &M, function_ref< bool(Function *)> ShouldRemove)
 Call "ShouldRemove" for every entry in M's global_ctor list and remove the entries for which it returns true. More...
 
bool renameModuleForThinLTO (Module &M, const ModuleSummaryIndex &Index, SetVector< GlobalValue *> *GlobalsToImport=nullptr)
 Perform in-place global value handling on the given Module for exported local functions renamed and promoted for ThinLTO. More...
 
bool isSafeToDestroyConstant (const Constant *C)
 It is safe to destroy a constant iff it is only used by constants itself. More...
 
void makeGuardControlFlowExplicit (Function *DeoptIntrinsic, CallInst *Guard)
 Splits control flow at point of Guard, replacing it with explicit branch by the condition of guard's first argument. More...
 
bool expandRemainder (BinaryOperator *Rem)
 Generate code to calculate the remainder of two integers, replacing Rem with the generated code. More...
 
bool expandDivision (BinaryOperator *Div)
 Generate code to divide two integers, replacing Div with the generated code. More...
 
bool expandRemainderUpTo32Bits (BinaryOperator *Rem)
 Generate code to calculate the remainder of two integers, replacing Rem with the generated code. More...
 
bool expandRemainderUpTo64Bits (BinaryOperator *Rem)
 Generate code to calculate the remainder of two integers, replacing Rem with the generated code. More...
 
bool expandDivisionUpTo32Bits (BinaryOperator *Div)
 Generate code to divide two integers, replacing Div with the generated code. More...
 
bool expandDivisionUpTo64Bits (BinaryOperator *Div)
 Generate code to divide two integers, replacing Div with the generated code. More...
 
bool ConstantFoldTerminator (BasicBlock *BB, bool DeleteDeadConditions=false, const TargetLibraryInfo *TLI=nullptr, DomTreeUpdater *DTU=nullptr)
 If a terminator instruction is predicated on a constant value, convert it into an unconditional branch to the constant destination. More...
 
bool isInstructionTriviallyDead (Instruction *I, const TargetLibraryInfo *TLI=nullptr)
 Return true if the result produced by the instruction is not used, and the instruction has no side effects. More...
 
bool wouldInstructionBeTriviallyDead (Instruction *I, const TargetLibraryInfo *TLI=nullptr)
 Return true if the result produced by the instruction would have no side effects if it was not used. More...
 
bool RecursivelyDeleteTriviallyDeadInstructions (Value *V, const TargetLibraryInfo *TLI=nullptr, MemorySSAUpdater *MSSAU=nullptr)
 If the specified value is a trivially dead instruction, delete it. More...
 
void RecursivelyDeleteTriviallyDeadInstructions (SmallVectorImpl< Instruction *> &DeadInsts, const TargetLibraryInfo *TLI=nullptr, MemorySSAUpdater *MSSAU=nullptr)
 Delete all of the instructions in DeadInsts, and all other instructions that deleting these in turn causes to be trivially dead. More...
 
bool RecursivelyDeleteDeadPHINode (PHINode *PN, const TargetLibraryInfo *TLI=nullptr)
 If the specified value is an effectively dead PHI node, due to being a def-use chain of single-use nodes that either forms a cycle or is terminated by a trivially dead instruction, delete it. More...
 
bool SimplifyInstructionsInBlock (BasicBlock *BB, const TargetLibraryInfo *TLI=nullptr)
 Scan the specified basic block and try to simplify any instructions in it and recursively delete dead instructions. More...
 
bool replaceDbgUsesWithUndef (Instruction *I)
 Replace all the uses of an SSA value in .dbg intrinsics with undef. More...
 
void RemovePredecessorAndSimplify (BasicBlock *BB, BasicBlock *Pred, DomTreeUpdater *DTU=nullptr)
 Like BasicBlock::removePredecessor, this method is called when we're about to delete Pred as a predecessor of BB. More...
 
void MergeBasicBlockIntoOnlyPred (BasicBlock *BB, DomTreeUpdater *DTU=nullptr)
 BB is a block with one predecessor and its predecessor is known to have one successor (BB!). More...
 
bool TryToSimplifyUncondBranchFromEmptyBlock (BasicBlock *BB, DomTreeUpdater *DTU=nullptr)
 BB is known to contain an unconditional branch, and contains no instructions other than PHI nodes, potential debug intrinsics and the branch. More...
 
bool EliminateDuplicatePHINodes (BasicBlock *BB)
 Check for and eliminate duplicate PHI nodes in this block. More...
 
bool simplifyCFG (BasicBlock *BB, const TargetTransformInfo &TTI, const SimplifyCFGOptions &Options={}, SmallPtrSetImpl< BasicBlock *> *LoopHeaders=nullptr)
 This function is used to do simplification of a CFG. More...
 
bool FlattenCFG (BasicBlock *BB, AliasAnalysis *AA=nullptr)
 This function is used to flatten a CFG. More...
 
bool FoldBranchToCommonDest (BranchInst *BI, unsigned BonusInstThreshold=1)
 If this basic block is ONLY a setcc and a branch, and if a predecessor branches to us and one of our successors, fold the setcc into the predecessor and use logical operations to pick the right destination. More...
 
AllocaInstDemoteRegToStack (Instruction &X, bool VolatileLoads=false, Instruction *AllocaPoint=nullptr)
 This function takes a virtual register computed by an Instruction and replaces it with a slot in the stack frame, allocated via alloca. More...
 
AllocaInstDemotePHIToStack (PHINode *P, Instruction *AllocaPoint=nullptr)
 This function takes a virtual register computed by a phi node and replaces it with a slot in the stack frame, allocated via alloca. More...
 
unsigned getOrEnforceKnownAlignment (Value *V, unsigned PrefAlign, const DataLayout &DL, const Instruction *CxtI=nullptr, AssumptionCache *AC=nullptr, const DominatorTree *DT=nullptr)
 Try to ensure that the alignment of V is at least PrefAlign bytes. More...
 
unsigned getKnownAlignment (Value *V, const DataLayout &DL, const Instruction *CxtI=nullptr, AssumptionCache *AC=nullptr, const DominatorTree *DT=nullptr)
 Try to infer an alignment for the specified pointer. More...
 
void ConvertDebugDeclareToDebugValue (DbgVariableIntrinsic *DII, StoreInst *SI, DIBuilder &Builder)
 ===---------------------------------------------------------------——===// Dbg Intrinsic utilities More...
 
void ConvertDebugDeclareToDebugValue (DbgVariableIntrinsic *DII, LoadInst *LI, DIBuilder &Builder)
 Inserts a llvm.dbg.value intrinsic before a load of an alloca'd value that has an associated llvm.dbg.declare or llvm.dbg.addr intrinsic. More...
 
void ConvertDebugDeclareToDebugValue (DbgVariableIntrinsic *DII, PHINode *LI, DIBuilder &Builder)
 Inserts a llvm.dbg.value intrinsic after a phi that has an associated llvm.dbg.declare or llvm.dbg.addr intrinsic. More...
 
bool LowerDbgDeclare (Function &F)
 Lowers llvm.dbg.declare intrinsics into appropriate set of llvm.dbg.value intrinsics. More...
 
void insertDebugValuesForPHIs (BasicBlock *BB, SmallVectorImpl< PHINode *> &InsertedPHIs)
 Propagate dbg.value intrinsics through the newly inserted PHIs. More...
 
TinyPtrVector< DbgVariableIntrinsic * > FindDbgAddrUses (Value *V)
 Finds all intrinsics declaring local variables as living in the memory that 'V' points to. More...
 
void findDbgValues (SmallVectorImpl< DbgValueInst *> &DbgValues, Value *V)
 Finds the llvm.dbg.value intrinsics describing a value. More...
 
void findDbgUsers (SmallVectorImpl< DbgVariableIntrinsic *> &DbgInsts, Value *V)
 Finds the debug info intrinsics describing a value. More...
 
bool replaceDbgDeclare (Value *Address, Value *NewAddress, Instruction *InsertBefore, DIBuilder &Builder, bool DerefBefore, int Offset, bool DerefAfter)
 Replaces llvm.dbg.declare instruction when the address it describes is replaced with a new value. More...
 
bool replaceDbgDeclareForAlloca (AllocaInst *AI, Value *NewAllocaAddress, DIBuilder &Builder, bool DerefBefore, int Offset, bool DerefAfter)
 Replaces llvm.dbg.declare instruction when the alloca it describes is replaced with a new value. More...
 
void replaceDbgValueForAlloca (AllocaInst *AI, Value *NewAllocaAddress, DIBuilder &Builder, int Offset=0)
 Replaces multiple llvm.dbg.value instructions when the alloca it describes is replaced with a new value. More...
 
bool salvageDebugInfo (Instruction &I)
 Assuming the instruction I is going to be deleted, attempt to salvage debug users of I by writing the effect of I in a DIExpression. More...
 
bool replaceAllDbgUsesWith (Instruction &From, Value &To, Instruction &DomPoint, DominatorTree &DT)
 Point debug users of From to To or salvage them. More...
 
unsigned removeAllNonTerminatorAndEHPadInstructions (BasicBlock *BB)
 Remove all instructions from a basic block other than it's terminator and any present EH pad instructions. More...
 
unsigned changeToUnreachable (Instruction *I, bool UseLLVMTrap, bool PreserveLCSSA=false, DomTreeUpdater *DTU=nullptr)
 Insert an unreachable instruction before the specified instruction, making it and the rest of the code in the block dead. More...
 
BasicBlockchangeToInvokeAndSplitBasicBlock (CallInst *CI, BasicBlock *UnwindEdge)
 Convert the CallInst to InvokeInst with the specified unwind edge basic block. More...
 
void removeUnwindEdge (BasicBlock *BB, DomTreeUpdater *DTU=nullptr)
 Replace 'BB's terminator with one that does not have an unwind successor block. More...
 
bool removeUnreachableBlocks (Function &F, LazyValueInfo *LVI=nullptr, DomTreeUpdater *DTU=nullptr, MemorySSAUpdater *MSSAU=nullptr)
 Remove all blocks that can not be reached from the function's entry. More...
 
void combineMetadata (Instruction *K, const Instruction *J, ArrayRef< unsigned > KnownIDs, bool DoesKMove)
 Combine the metadata of two instructions so that K can replace J. More...
 
void combineMetadataForCSE (Instruction *K, const Instruction *J, bool DoesKMove)
 Combine the metadata of two instructions so that K can replace J. More...
 
void patchReplacementInstruction (Instruction *I, Value *Repl)
 Patch the replacement so that it is not more restrictive than the value being replaced. More...
 
unsigned replaceNonLocalUsesWith (Instruction *From, Value *To)
 
unsigned replaceDominatedUsesWith (Value *From, Value *To, DominatorTree &DT, const BasicBlockEdge &Edge)
 Replace each use of 'From' with 'To' if that use is dominated by the given edge. More...
 
unsigned replaceDominatedUsesWith (Value *From, Value *To, DominatorTree &DT, const BasicBlock *BB)
 Replace each use of 'From' with 'To' if that use is dominated by the end of the given BasicBlock. More...
 
bool callsGCLeafFunction (ImmutableCallSite CS, const TargetLibraryInfo &TLI)
 Return true if the CallSite CS calls a gc leaf function. More...
 
void copyNonnullMetadata (const LoadInst &OldLI, MDNode *N, LoadInst &NewLI)
 Copy a nonnull metadata node to a new load instruction. More...
 
void copyRangeMetadata (const DataLayout &DL, const LoadInst &OldLI, MDNode *N, LoadInst &NewLI)
 Copy a range metadata node to a new load instruction. More...
 
void dropDebugUsers (Instruction &I)
 Remove the debug intrinsic instructions for the given instruction. More...
 
void hoistAllInstructionsInto (BasicBlock *DomBlock, Instruction *InsertPt, BasicBlock *BB)
 Hoist all of the instructions in the IfBlock to the dominant block DomBlock, by moving its instructions to the insertion point InsertPt. More...
 
bool recognizeBSwapOrBitReverseIdiom (Instruction *I, bool MatchBSwaps, bool MatchBitReversals, SmallVectorImpl< Instruction *> &InsertedInsts)
 Try to match a bswap or bitreverse idiom. More...
 
void maybeMarkSanitizerLibraryCallNoBuiltin (CallInst *CI, const TargetLibraryInfo *TLI)
 Given a CallInst, check if it calls a string function known to CodeGen, and mark it with NoBuiltin if so. More...
 
bool canReplaceOperandWithVariable (const Instruction *I, unsigned OpIdx)
 Given an instruction, is it legal to set operand OpIdx to a non-constant value? More...
 
bool LoopRotation (Loop *L, LoopInfo *LI, const TargetTransformInfo *TTI, AssumptionCache *AC, DominatorTree *DT, ScalarEvolution *SE, MemorySSAUpdater *MSSAU, const SimplifyQuery &SQ, bool RotationOnly, unsigned Threshold, bool IsUtilMode)
 Convert a loop into a loop with bottom test. More...
 
bool simplifyLoop (Loop *L, DominatorTree *DT, LoopInfo *LI, ScalarEvolution *SE, AssumptionCache *AC, bool PreserveLCSSA)
 Simplify each loop in a loop nest recursively. More...
 
BasicBlockInsertPreheaderForLoop (Loop *L, DominatorTree *DT, LoopInfo *LI, bool PreserveLCSSA)
 InsertPreheaderForLoop - Once we discover that a loop doesn't have a preheader, this method is called to insert one. More...
 
bool formDedicatedExitBlocks (Loop *L, DominatorTree *DT, LoopInfo *LI, bool PreserveLCSSA)
 Ensure that all exit blocks of the loop are dedicated exits. More...
 
bool formLCSSAForInstructions (SmallVectorImpl< Instruction *> &Worklist, DominatorTree &DT, LoopInfo &LI)
 Ensures LCSSA form for every instruction from the Worklist in the scope of innermost containing loop. More...
 
bool formLCSSA (Loop &L, DominatorTree &DT, LoopInfo *LI, ScalarEvolution *SE)
 Put loop into LCSSA form. More...
 
bool formLCSSARecursively (Loop &L, DominatorTree &DT, LoopInfo *LI, ScalarEvolution *SE)
 Put a loop nest into LCSSA form. More...
 
bool sinkRegion (DomTreeNode *, AliasAnalysis *, LoopInfo *, DominatorTree *, TargetLibraryInfo *, TargetTransformInfo *, Loop *, AliasSetTracker *, MemorySSAUpdater *, ICFLoopSafetyInfo *, OptimizationRemarkEmitter *ORE)
 Walk the specified region of the CFG (defined by all blocks dominated by the specified block, and that are in the current loop) in reverse depth first order w.r.t the DominatorTree. More...
 
bool hoistRegion (DomTreeNode *, AliasAnalysis *, LoopInfo *, DominatorTree *, TargetLibraryInfo *, Loop *, AliasSetTracker *, MemorySSAUpdater *, ICFLoopSafetyInfo *, OptimizationRemarkEmitter *ORE)
 Walk the specified region of the CFG (defined by all blocks dominated by the specified block, and that are in the current loop) in depth first order w.r.t the DominatorTree. More...
 
void deleteDeadLoop (Loop *L, DominatorTree *DT, ScalarEvolution *SE, LoopInfo *LI)
 This function deletes dead loops. More...
 
bool promoteLoopAccessesToScalars (const SmallSetVector< Value *, 8 > &, SmallVectorImpl< BasicBlock *> &, SmallVectorImpl< Instruction *> &, PredIteratorCache &, LoopInfo *, DominatorTree *, const TargetLibraryInfo *, Loop *, AliasSetTracker *, ICFLoopSafetyInfo *, OptimizationRemarkEmitter *)
 Try to promote memory values to scalars by sinking stores out of the loop and moving loads to before the loop. More...
 
SmallVector< DomTreeNode *, 16 > collectChildrenInLoop (DomTreeNode *N, const Loop *CurLoop)
 Does a BFS from a given node to all of its children inside a given loop. More...
 
SmallVector< Instruction *, 8 > findDefsUsedOutsideOfLoop (Loop *L)
 Returns the instructions that use values defined in the loop. More...
 
Optional< const MDOperand * > findStringMetadataForLoop (const Loop *TheLoop, StringRef Name)
 Find string metadata for loop. More...
 
llvm::Optional< int > getOptionalIntLoopAttribute (Loop *TheLoop, StringRef Name)
 Find named metadata for a loop with an integer value. More...
 
Optional< MDNode * > makeFollowupLoopID (MDNode *OrigLoopID, ArrayRef< StringRef > FollowupAttrs, const char *InheritOptionsAttrsPrefix="", bool AlwaysNew=false)
 Create a new loop identifier for a loop created from a loop transformation. More...
 
bool hasDisableAllTransformsHint (const Loop *L)
 Look for the loop attribute that disables all transformation heuristic. More...
 
void addStringMetadataToLoop (Loop *TheLoop, const char *MDString, unsigned V=0)
 Set input string into loop metadata by keeping other values intact. More...
 
Optional< unsignedgetLoopEstimatedTripCount (Loop *L)
 Get a loop's estimated trip count based on branch weight metadata. More...
 
bool hasIterationCountInvariantInParent (Loop *L, ScalarEvolution &SE)
 Check inner loop (L) backedge count is known to be invariant on all iterations of its outer loop. More...
 
void getLoopAnalysisUsage (AnalysisUsage &AU)
 Helper to consistently add the set of standard passes to a loop pass's AnalysisUsage. More...
 
bool canSinkOrHoistInst (Instruction &I, AAResults *AA, DominatorTree *DT, Loop *CurLoop, AliasSetTracker *CurAST, MemorySSAUpdater *MSSAU, bool TargetExecutesOncePerLoop, OptimizationRemarkEmitter *ORE=nullptr)
 Returns true if is legal to hoist or sink this instruction disregarding the possible introduction of faults. More...
 
ValuecreateMinMaxOp (IRBuilder<> &Builder, RecurrenceDescriptor::MinMaxRecurrenceKind RK, Value *Left, Value *Right)
 Returns a Min/Max operation corresponding to MinMaxRecurrenceKind. More...
 
ValuegetOrderedReduction (IRBuilder<> &Builder, Value *Acc, Value *Src, unsigned Op, RecurrenceDescriptor::MinMaxRecurrenceKind MinMaxKind=RecurrenceDescriptor::MRK_Invalid, ArrayRef< Value *> RedOps=None)
 Generates an ordered vector reduction using extracts to reduce the value. More...
 
ValuegetShuffleReduction (IRBuilder<> &Builder, Value *Src, unsigned Op, RecurrenceDescriptor::MinMaxRecurrenceKind MinMaxKind=RecurrenceDescriptor::MRK_Invalid, ArrayRef< Value *> RedOps=None)
 Generates a vector reduction using shufflevectors to reduce the value. More...
 
ValuecreateSimpleTargetReduction (IRBuilder<> &B, const TargetTransformInfo *TTI, unsigned Opcode, Value *Src, TargetTransformInfo::ReductionFlags Flags=TargetTransformInfo::ReductionFlags(), ArrayRef< Value *> RedOps=None)
 Create a target reduction of the given vector. More...
 
ValuecreateTargetReduction (IRBuilder<> &B, const TargetTransformInfo *TTI, RecurrenceDescriptor &Desc, Value *Src, bool NoNaN=false)
 Create a generic target reduction using a recurrence descriptor Desc The target is queried to determine if intrinsics or shuffle sequences are required to implement the reduction. More...
 
void propagateIRFlags (Value *I, ArrayRef< Value *> VL, Value *OpValue=nullptr)
 Get the intersection (logical and) of all of the potential IR flags of each scalar operation (VL) that will be converted into a vector (I). More...
 
bool isKnownNegativeInLoop (const SCEV *S, const Loop *L, ScalarEvolution &SE)
 Returns true if we can prove that S is defined and always negative in loop L. More...
 
bool isKnownNonNegativeInLoop (const SCEV *S, const Loop *L, ScalarEvolution &SE)
 Returns true if we can prove that S is defined and always non-negative in loop L. More...
 
bool cannotBeMaxInLoop (const SCEV *S, const Loop *L, ScalarEvolution &SE, bool Signed)
 Returns true if S is defined and never is equal to signed/unsigned max. More...
 
bool cannotBeMinInLoop (const SCEV *S, const Loop *L, ScalarEvolution &SE, bool Signed)
 Returns true if S is defined and never is equal to signed/unsigned min. More...
 
void createMemCpyLoopUnknownSize (Instruction *InsertBefore, Value *SrcAddr, Value *DstAddr, Value *CopyLen, unsigned SrcAlign, unsigned DestAlign, bool SrcIsVolatile, bool DstIsVolatile, const TargetTransformInfo &TTI)
 Emit a loop implementing the semantics of llvm.memcpy where the size is not a compile-time constant. More...
 
void createMemCpyLoopKnownSize (Instruction *InsertBefore, Value *SrcAddr, Value *DstAddr, ConstantInt *CopyLen, unsigned SrcAlign, unsigned DestAlign, bool SrcIsVolatile, bool DstIsVolatile, const TargetTransformInfo &TTI)
 Emit a loop implementing the semantics of an llvm.memcpy whose size is a compile time constant. More...
 
void expandMemCpyAsLoop (MemCpyInst *MemCpy, const TargetTransformInfo &TTI)
 Expand MemCpy as a loop. MemCpy is not deleted. More...
 
void expandMemMoveAsLoop (MemMoveInst *MemMove)
 Expand MemMove as a loop. MemMove is not deleted. More...
 
void expandMemSetAsLoop (MemSetInst *MemSet)
 Expand MemSet as a loop. MemSet is not deleted. More...
 
void appendToGlobalCtors (Module &M, Function *F, int Priority, Constant *Data=nullptr)
 Append F to the list of global ctors of module M with the given Priority. More...
 
void appendToGlobalDtors (Module &M, Function *F, int Priority, Constant *Data=nullptr)
 Same as appendToGlobalCtors(), but for global dtors. More...
 
FunctioncheckSanitizerInterfaceFunction (Constant *FuncOrBitcast)
 
FunctiondeclareSanitizerInitFunction (Module &M, StringRef InitName, ArrayRef< Type *> InitArgTypes)
 
std::pair< Function *, Function * > createSanitizerCtorAndInitFunctions (Module &M, StringRef CtorName, StringRef InitName, ArrayRef< Type *> InitArgTypes, ArrayRef< Value *> InitArgs, StringRef VersionCheckName=StringRef())
 Creates sanitizer constructor function, and calls sanitizer's init function from it. More...
 
std::pair< Function *, Function * > getOrCreateSanitizerCtorAndInitFunctions (Module &M, StringRef CtorName, StringRef InitName, ArrayRef< Type *> InitArgTypes, ArrayRef< Value *> InitArgs, function_ref< void(Function *, Function *)> FunctionsCreatedCallback, StringRef VersionCheckName=StringRef())
 Creates sanitizer constructor function lazily. More...
 
FunctiongetOrCreateInitFunction (Module &M, StringRef Name)
 
bool nameUnamedGlobals (Module &M)
 Rename all the anon globals in the module using a hash computed from the list of public globals in the module. More...
 
void appendToUsed (Module &M, ArrayRef< GlobalValue *> Values)
 Adds global values to the llvm.used list. More...
 
void appendToCompilerUsed (Module &M, ArrayRef< GlobalValue *> Values)
 Adds global values to the llvm.compiler.used list. More...
 
void filterDeadComdatFunctions (Module &M, SmallVectorImpl< Function *> &DeadComdatFunctions)
 Filter out potentially dead comdat functions where other entries keep the entire comdat group alive. More...
 
std::string getUniqueModuleId (Module *M)
 Produce a unique identifier for this module by taking the MD5 sum of the names of the module's strong external symbols that are not comdat members. More...
 
bool isAllocaPromotable (const AllocaInst *AI)
 Return true if this alloca is legal for promotion. More...
 
void PromoteMemToReg (ArrayRef< AllocaInst *> Allocas, DominatorTree &DT, AssumptionCache *AC=nullptr)
 Promote the specified list of alloca instructions into scalar registers, inserting PHI nodes as appropriate. More...
 
bool simplifyUsersOfIV (PHINode *CurrIV, ScalarEvolution *SE, DominatorTree *DT, LoopInfo *LI, SmallVectorImpl< WeakTrackingVH > &Dead, SCEVExpander &Rewriter, IVVisitor *V=nullptr)
 simplifyUsersOfIV - Simplify instructions that use this induction variable by using ScalarEvolution to analyze the IV's recurrence. More...
 
bool simplifyLoopIVs (Loop *L, ScalarEvolution *SE, DominatorTree *DT, LoopInfo *LI, SmallVectorImpl< WeakTrackingVH > &Dead)
 SimplifyLoopIVs - Simplify users of induction variables within this loop. More...
 
void SplitModule (std::unique_ptr< Module > M, unsigned N, function_ref< void(std::unique_ptr< Module > MPart)> ModuleCallback, bool PreserveLocals=false)
 Splits the module M into N linkable partitions. More...
 
ModulePasscreateRewriteSymbolsPass ()
 
ModulePasscreateRewriteSymbolsPass (SymbolRewriter::RewriteDescriptorList &)
 
PasscreateUnifyFunctionExitNodesPass ()
 
const LoopaddClonedBlockToLoopInfo (BasicBlock *OriginalBB, BasicBlock *ClonedBB, LoopInfo *LI, NewLoopsMap &NewLoops)
 Adds ClonedBB to LoopInfo, creates a new loop for ClonedBB if necessary and adds a mapping from the original loop to the new loop to NewLoops. More...
 
LoopUnrollResult UnrollLoop (Loop *L, unsigned Count, unsigned TripCount, bool Force, bool AllowRuntime, bool AllowExpensiveTripCount, bool PreserveCondBr, bool PreserveOnlyFirst, unsigned TripMultiple, unsigned PeelCount, bool UnrollRemainder, LoopInfo *LI, ScalarEvolution *SE, DominatorTree *DT, AssumptionCache *AC, OptimizationRemarkEmitter *ORE, bool PreserveLCSSA, Loop **RemainderLoop=nullptr)
 Unroll the given loop by Count. More...
 
bool UnrollRuntimeLoopRemainder (Loop *L, unsigned Count, bool AllowExpensiveTripCount, bool UseEpilogRemainder, bool UnrollRemainder, LoopInfo *LI, ScalarEvolution *SE, DominatorTree *DT, AssumptionCache *AC, bool PreserveLCSSA, Loop **ResultLoop=nullptr)
 Insert code in the prolog/epilog code when unrolling a loop with a run-time trip-count. More...
 
void computePeelCount (Loop *L, unsigned LoopSize, TargetTransformInfo::UnrollingPreferences &UP, unsigned &TripCount, ScalarEvolution &SE)
 
bool canPeel (Loop *L)
 
bool peelLoop (Loop *L, unsigned PeelCount, LoopInfo *LI, ScalarEvolution *SE, DominatorTree *DT, AssumptionCache *AC, bool PreserveLCSSA)
 Peel off the first PeelCount iterations of loop L. More...
 
LoopUnrollResult UnrollAndJamLoop (Loop *L, unsigned Count, unsigned TripCount, unsigned TripMultiple, bool UnrollRemainder, LoopInfo *LI, ScalarEvolution *SE, DominatorTree *DT, AssumptionCache *AC, OptimizationRemarkEmitter *ORE, Loop **EpilogueLoop=nullptr)
 
bool isSafeToUnrollAndJam (Loop *L, ScalarEvolution &SE, DominatorTree &DT, DependenceInfo &DI)
 
bool computeUnrollCount (Loop *L, const TargetTransformInfo &TTI, DominatorTree &DT, LoopInfo *LI, ScalarEvolution &SE, const SmallPtrSetImpl< const Value *> &EphValues, OptimizationRemarkEmitter *ORE, unsigned &TripCount, unsigned MaxTripCount, unsigned &TripMultiple, unsigned LoopSize, TargetTransformInfo::UnrollingPreferences &UP, bool &UseUpperBound)
 
BasicBlockfoldBlockIntoPredecessor (BasicBlock *BB, LoopInfo *LI, ScalarEvolution *SE, DominatorTree *DT)
 Folds a basic block into its predecessor if it only has one predecessor, and that predecessor only has one successor. More...
 
void remapInstruction (Instruction *I, ValueToValueMapTy &VMap)
 Convert the instruction operands from referencing the current values into those specified by VMap. More...
 
void simplifyLoopAfterUnroll (Loop *L, bool SimplifyIVs, LoopInfo *LI, ScalarEvolution *SE, DominatorTree *DT, AssumptionCache *AC)
 Perform some cleanup and simplifications on loops after unrolling. More...
 
MDNodeGetUnrollMetadata (MDNode *LoopID, StringRef Name)
 Given an llvm.loop loop id metadata node, returns the loop hint metadata node with the given name (for example, "llvm.loop.unroll.count"). More...
 
TargetTransformInfo::UnrollingPreferences gatherUnrollingPreferences (Loop *L, ScalarEvolution &SE, const TargetTransformInfo &TTI, int OptLevel, Optional< unsigned > UserThreshold, Optional< unsigned > UserCount, Optional< bool > UserAllowPartial, Optional< bool > UserRuntime, Optional< bool > UserUpperBound, Optional< bool > UserAllowPeeling)
 Gather the various unrolling parameters based on the defaults, compiler flags, TTI overrides and user specified parameters. More...
 
unsigned ApproximateLoopSize (const Loop *L, unsigned &NumCalls, bool &NotDuplicatable, bool &Convergent, const TargetTransformInfo &TTI, const SmallPtrSetImpl< const Value *> &EphValues, unsigned BEInsns)
 ApproximateLoopSize - Approximate the size of the loop. More...
 
RemapFlags operator| (RemapFlags LHS, RemapFlags RHS)
 
ValueMapValue (const Value *V, ValueToValueMapTy &VM, RemapFlags Flags=RF_None, ValueMapTypeRemapper *TypeMapper=nullptr, ValueMaterializer *Materializer=nullptr)
 Look up or compute a value in the value map. More...
 
MetadataMapMetadata (const Metadata *MD, ValueToValueMapTy &VM, RemapFlags Flags=RF_None, ValueMapTypeRemapper *TypeMapper=nullptr, ValueMaterializer *Materializer=nullptr)
 Lookup or compute a mapping for a piece of metadata. More...
 
MDNodeMapMetadata (const MDNode *MD, ValueToValueMapTy &VM, RemapFlags Flags=RF_None, ValueMapTypeRemapper *TypeMapper=nullptr, ValueMaterializer *Materializer=nullptr)
 Version of MapMetadata with type safety for MDNode. More...
 
void RemapInstruction (Instruction *I, ValueToValueMapTy &VM, RemapFlags Flags=RF_None, ValueMapTypeRemapper *TypeMapper=nullptr, ValueMaterializer *Materializer=nullptr)
 Convert the instruction operands from referencing the current values into those specified by VM. More...
 
void RemapFunction (Function &F, ValueToValueMapTy &VM, RemapFlags Flags=RF_None, ValueMapTypeRemapper *TypeMapper=nullptr, ValueMaterializer *Materializer=nullptr)
 Remap the operands, metadata, arguments, and instructions of a function. More...
 
ConstantMapValue (const Constant *V, ValueToValueMapTy &VM, RemapFlags Flags=RF_None, ValueMapTypeRemapper *TypeMapper=nullptr, ValueMaterializer *Materializer=nullptr)
 Version of MapValue with type safety for Constant. More...
 
ModulePasscreateMetaRenamerPass ()
 
FunctionPasscreateLowerInvokePass ()
 
FunctionPasscreateInstructionNamerPass ()
 
FunctionPasscreateLowerSwitchPass ()
 
FunctionPasscreateEntryExitInstrumenterPass ()
 
FunctionPasscreatePostInlineEntryExitInstrumenterPass ()
 
FunctionPasscreateBreakCriticalEdgesPass ()
 
PasscreateLCSSAPass ()
 
FunctionPasscreateAddDiscriminatorsPass ()
 
FunctionPasscreatePromoteMemoryToRegisterPass ()
 
PasscreateLoopSimplifyPass ()
 
ModulePasscreateStripNonLineTableDebugInfoPass ()
 This function returns a new pass that downgrades the debug info in the module to line tables only. More...
 
FunctionPasscreateControlHeightReductionLegacyPass ()
 
PasscreateLoadStoreVectorizerPass ()
 Create a legacy pass manager instance of the LoadStoreVectorizer pass. More...
 
OptimizationRemarkAnalysis createLVMissedAnalysis (const char *PassName, StringRef RemarkName, Loop *TheLoop, Instruction *I=nullptr)
 Create an analysis remark that explains why vectorization failed. More...
 
PasscreateLoopVectorizePass (bool InterleaveOnlyWhenForced=false, bool VectorizeOnlyWhenForced=false)
 
PasscreateSLPVectorizerPass ()
 
bool vectorizeBasicBlock (Pass *P, BasicBlock &BB, const VectorizeConfig &C=VectorizeConfig())
 Vectorize the BasicBlock. More...
 
static GVDAGType getGVDT ()
 
template const SimplifyQuery getBestSimplifyQuery (AnalysisManager< Function > &, Function &)
 
PasscreateLAAPass ()
 
cl::opt< boolEnableMSSALoopDependency ("enable-mssa-loop-dependency", cl::Hidden, cl::init(false), cl::desc("Enable MemorySSA dependency for loop pass manager"))
 Enables memory ssa as a dependency for loop passes in legacy pass manager. More...
 
bool operator== (const DebugLocEntry::Value &A, const DebugLocEntry::Value &B)
 Compare two Values for equality. More...
 
bool operator< (const DebugLocEntry::Value &A, const DebugLocEntry::Value &B)
 Compare two fragments based on their offset. More...
 
template<>
raw_ostreamWriteGraph (raw_ostream &O, const EdgeBundles &G, bool ShortNames, const Twine &Title)
 
cl::opt< boolUseSegmentSetForPhysRegs ("use-segment-set-for-physregs", cl::Hidden, cl::init(true), cl::desc("Use segment set for the computation of the live ranges of physregs."))
 
template<typename LiveRangeT , typename EqClassesT >
static void DistributeRange (LiveRangeT &LR, LiveRangeT *SplitLRs[], EqClassesT VNIClasses)
 Helper function that distributes live range value numbers and the corresponding segments of a master live range LR to a list of newly created live ranges SplitLRs. More...
 
cl::opt< boolSwpEnableCopyToPhi ("pipeliner-enable-copytophi", cl::ReallyHidden, cl::init(true), cl::ZeroOrMore, cl::desc("Enable CopyToPhi DAG Mutation"))
 
FunctionPasscreateMachineRegionInfoPass ()
 
cl::opt< boolForceTopDown ("misched-topdown", cl::Hidden, cl::desc("Force top-down list scheduling"))
 
cl::opt< boolForceBottomUp ("misched-bottomup", cl::Hidden, cl::desc("Force bottom-up list scheduling"))
 
StringRef lexMIToken (StringRef Source, MIToken &Token, function_ref< void(StringRef::iterator, const Twine &)> ErrorCallback)
 Consume a single machine instruction token in the given source and return the remaining source string. More...
 
bool parseMachineBasicBlockDefinitions (PerFunctionMIParsingState &PFS, StringRef Src, SMDiagnostic &Error)
 Parse the machine basic block definitions, and skip the machine instructions. More...
 
bool parseMachineInstructions (PerFunctionMIParsingState &PFS, StringRef Src, SMDiagnostic &Error)
 Parse the machine instructions. More...
 
bool parseMBBReference (PerFunctionMIParsingState &PFS, MachineBasicBlock *&MBB, StringRef Src, SMDiagnostic &Error)
 
bool parseRegisterReference (PerFunctionMIParsingState &PFS, unsigned &Reg, StringRef Src, SMDiagnostic &Error)
 
bool parseNamedRegisterReference (PerFunctionMIParsingState &PFS, unsigned &Reg, StringRef Src, SMDiagnostic &Error)
 
bool parseVirtualRegisterReference (PerFunctionMIParsingState &PFS, VRegInfo *&Info, StringRef Src, SMDiagnostic &Error)
 
bool parseStackObjectReference (PerFunctionMIParsingState &PFS, int &FI, StringRef Src, SMDiagnostic &Error)
 
bool parseMDNode (PerFunctionMIParsingState &PFS, MDNode *&Node, StringRef Src, SMDiagnostic &Error)
 
MachineBasicBlock::iterator findPHICopyInsertPoint (MachineBasicBlock *MBB, MachineBasicBlock *SuccMBB, unsigned SrcReg)
 findPHICopyInsertPoint - Find a safe place in MBB to insert a copy from SrcReg when following the CFG edge to SuccMBB. More...
 
 STATISTIC (NumFunctions, "Total number of functions")
 
 STATISTIC (NumUnsafeStackFunctions, "Number of functions with unsafe stack")
 
 STATISTIC (NumUnsafeStackRestorePointsFunctions, "Number of functions that use setjmp or exceptions")
 
 STATISTIC (NumAllocas, "Total number of allocas")
 
 STATISTIC (NumUnsafeStaticAllocas, "Number of unsafe static allocas")
 
 STATISTIC (NumUnsafeDynamicAllocas, "Number of unsafe dynamic allocas")
 
 STATISTIC (NumUnsafeByValArguments, "Number of unsafe byval arguments")
 
 STATISTIC (NumUnsafeStackRestorePoints, "Number of setjmps and landingpads")
 
SpillercreateInlineSpiller (MachineFunctionPass &pass, MachineFunction &mf, VirtRegMap &vrm)
 Create and return a spiller that will insert spill code directly instead of deferring though VirtRegMap. More...
 
static DescVector getDescriptions ()
 
static DWARFExpression::Operation::Description getOpDesc (unsigned OpCode)
 
static uint8_t getRefAddrSize (uint8_t AddrSize, uint16_t Version)
 
static bool prettyPrintRegisterOp (raw_ostream &OS, uint8_t Opcode, uint64_t Operands[2], const MCRegisterInfo *MRI, bool isEH)
 
llvm::raw_ostreamoperator<< (llvm::raw_ostream &OS, const GUID &G)
 
void __register_frame (void *p)
 
void __deregister_frame (void *p)
 
static int jit_noop ()
 
static void dumpSectionMemory (const SectionEntry &S, StringRef State)
 
static Error getOffset (const SymbolRef &Sym, SectionRef Sec, uint64_t &Result)
 
static uint64_t computeAllocationSizeForSections (std::vector< uint64_t > &SectionSizes, uint64_t Alignment)
 
static bool isRequiredForExecution (const SectionRef Section)
 
static bool isReadOnlyData (const SectionRef Section)
 
static bool isZeroInit (const SectionRef Section)
 
static std::unique_ptr< RuntimeDyldCOFFcreateRuntimeDyldCOFF (Triple::ArchType Arch, RuntimeDyld::MemoryManager &MM, JITSymbolResolver &Resolver, bool ProcessAllSections, RuntimeDyldCheckerImpl *Checker)
 
static std::unique_ptr< RuntimeDyldELFcreateRuntimeDyldELF (Triple::ArchType Arch, RuntimeDyld::MemoryManager &MM, JITSymbolResolver &Resolver, bool ProcessAllSections, RuntimeDyldCheckerImpl *Checker)
 
static std::unique_ptr< RuntimeDyldMachOcreateRuntimeDyldMachO (Triple::ArchType Arch, RuntimeDyld::MemoryManager &MM, JITSymbolResolver &Resolver, bool ProcessAllSections, RuntimeDyldCheckerImpl *Checker)
 
void jitLinkForORC (object::ObjectFile &Obj, std::unique_ptr< MemoryBuffer > UnderlyingBuffer, RuntimeDyld::MemoryManager &MemMgr, JITSymbolResolver &Resolver, bool ProcessAllSections, std::function< Error(std::unique_ptr< RuntimeDyld::LoadedObjectInfo > LoadedObj, std::map< StringRef, JITEvaluatedSymbol >)> OnLoaded, std::function< void(Error)> OnEmitted)
 
static uint16_t applyPPClo (uint64_t value)
 
static uint16_t applyPPChi (uint64_t value)
 
static uint16_t applyPPCha (uint64_t value)
 
static uint16_t applyPPChigher (uint64_t value)
 
static uint16_t applyPPChighera (uint64_t value)
 
static uint16_t applyPPChighest (uint64_t value)
 
static uint16_t applyPPChighesta (uint64_t value)
 
static int64_t computeDelta (SectionEntry *A, SectionEntry *B)
 
static bool isThumbFunc (symbol_iterator Symbol, const ObjectFile &Obj, section_iterator Section)
 
static sys::MemoryBlock trimBlockToPageSize (sys::MemoryBlock M)
 
ConstantConstantFoldCastInstruction (unsigned opcode, Constant *V, Type *DestTy)
 
ConstantConstantFoldBinaryInstruction (unsigned Opcode, Constant *V1, Constant *V2)
 
ConstantConstantFoldCompareInstruction (unsigned short predicate, Constant *C1, Constant *C2)
 
ConstantConstantFoldGetElementPtr (Type *Ty, Constant *C, bool InBounds, Optional< unsigned > InRangeIndex, ArrayRef< Value *> Idxs)
 
static const Metadataget_hashable_data (const MDOperand &X)
 Make MDOperand transparent for hashing. More...
 
template<class T , class InfoT >
static TgetUniqued (DenseSet< T *, InfoT > &Store, const typename InfoT::KeyTy &Key)
 
static bool matchPassManager (StringRef PassID)
 
raw_ostreamoperator<< (raw_ostream &OS, const MCFixup &AF)
 
MCAsmParserExtensioncreateDarwinAsmParser ()
 
MCAsmParserExtensioncreateELFAsmParser ()
 
MCAsmParserExtensioncreateCOFFAsmParser ()
 
MCAsmParserExtensioncreateWasmAsmParser ()
 
static StringRef stripDirPrefix (StringRef PathNameStr, uint32_t NumPrefix)
 
uint32_t getNumValueKindsInstrProf (const void *Record)
 ValueProfRecordClosure Interface implementation for InstrProfRecord class. More...
 
uint32_t getNumValueSitesInstrProf (const void *Record, uint32_t VKind)
 
uint32_t getNumValueDataInstrProf (const void *Record, uint32_t VKind)
 
uint32_t getNumValueDataForSiteInstrProf (const void *R, uint32_t VK, uint32_t S)
 
void getValueForSiteInstrProf (const void *R, InstrProfValueData *Dst, uint32_t K, uint32_t S)
 
ValueProfData * allocValueProfDataInstrProf (size_t TotalSizeInBytes)
 
template<class T >
static T swapToHostOrder (const unsigned char *&D, support::endianness Orig)
 
static std::unique_ptr< ValueProfData > allocValueProfData (uint32_t TotalSize)
 
static unsigned int partCountForBits (unsigned int bits)
 
static unsigned int decDigitValue (unsigned int c)
 
static int readExponent (StringRef::iterator begin, StringRef::iterator end)
 
static int totalExponent (StringRef::iterator p, StringRef::iterator end, int exponentAdjustment)
 
static StringRef::iterator skipLeadingZeroesAndAnyDot (StringRef::iterator begin, StringRef::iterator end, StringRef::iterator *dot)
 
static void interpretDecimal (StringRef::iterator begin, StringRef::iterator end, decimalInfo *D)
 
static lostFraction trailingHexadecimalFraction (StringRef::iterator p, StringRef::iterator end, unsigned int digitValue)
 
static lostFraction lostFractionThroughTruncation (const APFloatBase::integerPart *parts, unsigned int partCount, unsigned int bits)
 
static lostFraction shiftRight (APFloatBase::integerPart *dst, unsigned int parts, unsigned int bits)
 
static lostFraction combineLostFractions (lostFraction moreSignificant, lostFraction lessSignificant)
 
static unsigned int HUerrBound (bool inexactMultiply, unsigned int HUerr1, unsigned int HUerr2)
 
static APFloatBase::integerPart ulpsFromBoundary (const APFloatBase::integerPart *parts, unsigned int bits, bool isNearest)
 
static unsigned int powerOf5 (APFloatBase::integerPart *dst, unsigned int power)
 
static unsigned int partAsHex (char *dst, APFloatBase::integerPart part, unsigned int count, const char *hexDigitChars)
 
static charwriteUnsignedDecimal (char *dst, unsigned int n)
 
static charwriteSignedDecimal (char *dst, int value)
 
static struct tm getStructTM (TimePoint<> TP)
 
static Boolean isLegalUTF8 (const UTF8 *source, int length)
 
static unsigned findMaximalSubpartOfIllFormedUTF8Sequence (const UTF8 *source, const UTF8 *sourceEnd)
 
static ConversionResult ConvertUTF8toUTF32Impl (const UTF8 **sourceStart, const UTF8 *sourceEnd, UTF32 **targetStart, UTF32 *targetEnd, ConversionFlags flags, Boolean InputIsPartial)
 
template<typename TResult >
static bool ConvertUTF8toWideInternal (llvm::StringRef Source, TResult &Result)
 
void * SearchForAddressOfSpecialSymbol (const char *SymbolName)
 
PrettyStackTraceEntryReverseStackTrace (PrettyStackTraceEntry *Head)
 
bool RunningWindows8OrGreater ()
 Determines if the program is running on Windows 8 or newer. More...
 
llvm::VersionTuple GetWindowsOSVersion ()
 Returns the Windows version as Major.Minor.0.BuildNumber. More...
 
bool MakeErrMsg (std::string *ErrMsg, const std::string &prefix)
 
template<class T >
SmallVectorImpl< T >::const_pointer c_str (SmallVectorImpl< T > &str)
 
static void PrintMessage (ArrayRef< SMLoc > Loc, SourceMgr::DiagKind Kind, const Twine &Msg)
 
FunctionPasscreateAArch64DeadRegisterDefinitions ()
 
FunctionPasscreateAArch64RedundantCopyEliminationPass ()
 
FunctionPasscreateAArch64CondBrTuning ()
 
FunctionPasscreateAArch64CompressJumpTablesPass ()
 
FunctionPasscreateAArch64ConditionalCompares ()
 
FunctionPasscreateAArch64AdvSIMDScalar ()
 
FunctionPasscreateAArch64ISelDag (AArch64TargetMachine &TM, CodeGenOpt::Level OptLevel)
 createAArch64ISelDag - This pass converts a legalized DAG into a AArch64-specific DAG, ready for instruction scheduling. More...
 
FunctionPasscreateAArch64StorePairSuppressPass ()
 
FunctionPasscreateAArch64ExpandPseudoPass ()
 Returns an instance of the pseudo instruction expansion pass. More...
 
FunctionPasscreateAArch64SpeculationHardeningPass ()
 Returns an instance of the pseudo instruction expansion pass. More...
 
FunctionPasscreateAArch64LoadStoreOptimizationPass ()
 createAArch64LoadStoreOptimizationPass - returns an instance of the load / store optimization pass. More...
 
FunctionPasscreateAArch64SIMDInstrOptPass ()
 Returns an instance of the high cost ASIMD instruction replacement optimization pass. More...
 
ModulePasscreateAArch64PromoteConstantPass ()
 
FunctionPasscreateAArch64ConditionOptimizerPass ()
 
FunctionPasscreateAArch64A57FPLoadBalancing ()
 
FunctionPasscreateAArch64A53Fix835769 ()
 
FunctionPasscreateFalkorHWPFFixPass ()
 
FunctionPasscreateFalkorMarkStridedAccessesPass ()
 
FunctionPasscreateAArch64BranchTargetsPass ()
 
FunctionPasscreateAArch64CleanupLocalDynamicTLSPass ()
 
FunctionPasscreateAArch64CollectLOHPass ()
 
InstructionSelectorcreateAArch64InstructionSelector (const AArch64TargetMachine &, AArch64Subtarget &, AArch64RegisterBankInfo &)
 
FunctionPasscreateAArch64PreLegalizeCombiner ()
 
void initializeAArch64A53Fix835769Pass (PassRegistry &)
 
void initializeAArch64A57FPLoadBalancingPass (PassRegistry &)
 
void initializeAArch64AdvSIMDScalarPass (PassRegistry &)
 
void initializeAArch64BranchTargetsPass (PassRegistry &)
 
void initializeAArch64CollectLOHPass (PassRegistry &)
 
void initializeAArch64CondBrTuningPass (PassRegistry &)
 
void initializeAArch64CompressJumpTablesPass (PassRegistry &)
 
void initializeAArch64ConditionalComparesPass (PassRegistry &)
 
void initializeAArch64ConditionOptimizerPass (PassRegistry &)
 
void initializeAArch64DeadRegisterDefinitionsPass (PassRegistry &)
 
void initializeAArch64ExpandPseudoPass (PassRegistry &)
 
void initializeAArch64SpeculationHardeningPass (PassRegistry &)
 
void initializeAArch64LoadStoreOptPass (PassRegistry &)
 
void initializeAArch64SIMDInstrOptPass (PassRegistry &)
 
void initializeAArch64PreLegalizerCombinerPass (PassRegistry &)
 
void initializeAArch64PromoteConstantPass (PassRegistry &)
 
void initializeAArch64RedundantCopyEliminationPass (PassRegistry &)
 
void initializeAArch64StorePairSuppressPass (PassRegistry &)
 
void initializeFalkorHWPFFixPass (PassRegistry &)
 
void initializeFalkorMarkStridedAccessesLegacyPass (PassRegistry &)
 
void initializeLDTLSCleanupPass (PassRegistry &)
 
void emitFrameOffset (MachineBasicBlock &MBB, MachineBasicBlock::iterator MBBI, const DebugLoc &DL, unsigned DestReg, unsigned SrcReg, int Offset, const TargetInstrInfo *TII, MachineInstr::MIFlag=MachineInstr::NoFlags, bool SetNZCV=false, bool NeedsWinCFI=false)
 emitFrameOffset - Emit instructions as needed to set DestReg to SrcReg plus Offset. More...
 
bool rewriteAArch64FrameIndex (MachineInstr &MI, unsigned FrameRegIdx, unsigned FrameReg, int &Offset, const AArch64InstrInfo *TII)
 rewriteAArch64FrameIndex - Rewrite MI to access 'Offset' bytes from the FP. More...
 
int isAArch64FrameOffsetLegal (const MachineInstr &MI, int &Offset, bool *OutUseUnscaledOp=nullptr, unsigned *OutUnscaledOp=nullptr, int *EmittableOffset=nullptr)
 Check if the Offset is a valid frame offset for MI. More...
 
static bool isUncondBranchOpcode (int Opc)
 
static bool isCondBranchOpcode (int Opc)
 
static bool isIndirectBranchOpcode (int Opc)
 
std::unique_ptr< ScheduleDAGMutationcreateAArch64MacroFusionDAGMutation ()
 Note that you have to add: DAG.addMutation(createAArch64MacroFusionDAGMutation()); to AArch64PassConfig::createMachineScheduler() to have an effect. More...
 
MCTargetStreamercreateAArch64AsmTargetStreamer (MCStreamer &S, formatted_raw_ostream &OS, MCInstPrinter *InstPrint, bool isVerboseAsm)
 
MCELFStreamercreateAArch64ELFStreamer (MCContext &Context, std::unique_ptr< MCAsmBackend > TAB, std::unique_ptr< MCObjectWriter > OW, std::unique_ptr< MCCodeEmitter > Emitter, bool RelaxAll)
 
TargetgetTheAArch64leTarget ()
 
TargetgetTheAArch64beTarget ()
 
TargetgetTheARM64Target ()
 
MCCodeEmittercreateAArch64MCCodeEmitter (const MCInstrInfo &MCII, const MCRegisterInfo &MRI, MCContext &Ctx)
 
MCAsmBackendcreateAArch64leAsmBackend (const Target &T, const MCSubtargetInfo &STI, const MCRegisterInfo &MRI, const MCTargetOptions &Options)
 
MCAsmBackendcreateAArch64beAsmBackend (const Target &T, const MCSubtargetInfo &STI, const MCRegisterInfo &MRI, const MCTargetOptions &Options)
 
std::unique_ptr< MCObjectTargetWritercreateAArch64ELFObjectWriter (uint8_t OSABI, bool IsILP32)
 
std::unique_ptr< MCObjectTargetWritercreateAArch64MachObjectWriter (uint32_t CPUType, uint32_t CPUSubtype)
 
std::unique_ptr< MCObjectTargetWritercreateAArch64WinCOFFObjectWriter ()
 
MCTargetStreamercreateAArch64ObjectTargetStreamer (MCStreamer &S, const MCSubtargetInfo &STI)
 
MCWinCOFFStreamercreateAArch64WinCOFFStreamer (MCContext &Context, std::unique_ptr< MCAsmBackend > MAB, std::unique_ptr< MCObjectWriter > OW, std::unique_ptr< MCCodeEmitter > Emitter, bool RelaxAll, bool IncrementalLinkerCompatible)
 
static unsigned getWRegFromXReg (unsigned Reg)
 
static unsigned getXRegFromWReg (unsigned Reg)
 
static unsigned getBRegFromDReg (unsigned Reg)
 
static unsigned getDRegFromBReg (unsigned Reg)
 
static const charAArch64VectorLayoutToString (AArch64Layout::VectorLayout Layout)
 
static AArch64Layout::VectorLayout AArch64StringToVectorLayout (StringRef LayoutStr)
 
FunctionPasscreateR600VectorRegMerger ()
 
FunctionPasscreateR600ExpandSpecialInstrsPass ()
 
FunctionPasscreateR600EmitClauseMarkers ()
 
FunctionPasscreateR600ClauseMergePass ()
 
FunctionPasscreateR600Packetizer ()
 
FunctionPasscreateR600ControlFlowFinalizer ()
 
FunctionPasscreateAMDGPUCFGStructurizerPass ()
 
FunctionPasscreateR600ISelDag (TargetMachine *TM, CodeGenOpt::Level OptLevel)
 This pass converts a legalized DAG into a R600-specific. More...
 
FunctionPasscreateGCNDPPCombinePass ()
 
FunctionPasscreateSIAnnotateControlFlowPass ()
 Create the annotation pass. More...
 
FunctionPasscreateSIFoldOperandsPass ()
 
FunctionPasscreateSIPeepholeSDWAPass ()
 
FunctionPasscreateSILowerI1CopiesPass ()
 
FunctionPasscreateSIFixupVectorISelPass ()
 
FunctionPasscreateSIAddIMGInitPass ()
 
FunctionPasscreateSIShrinkInstructionsPass ()
 
FunctionPasscreateSILoadStoreOptimizerPass ()
 
FunctionPasscreateSIWholeQuadModePass ()
 
FunctionPasscreateSIFixControlFlowLiveIntervalsPass ()
 
FunctionPasscreateSIOptimizeExecMaskingPreRAPass ()
 
FunctionPasscreateSIFixSGPRCopiesPass ()
 
FunctionPasscreateSIMemoryLegalizerPass ()
 
FunctionPasscreateSIDebuggerInsertNopsPass ()
 
FunctionPasscreateSIInsertWaitcntsPass ()
 
FunctionPasscreateSIFixWWMLivenessPass ()
 
FunctionPasscreateSIFormMemoryClausesPass ()
 
FunctionPasscreateAMDGPUSimplifyLibCallsPass (const TargetOptions &)
 
FunctionPasscreateAMDGPUUseNativeCallsPass ()
 
FunctionPasscreateAMDGPUCodeGenPreparePass ()
 
FunctionPasscreateAMDGPUMachineCFGStructurizerPass ()
 
FunctionPasscreateAMDGPURewriteOutArgumentsPass ()
 
FunctionPasscreateSIModeRegisterPass ()
 
void initializeAMDGPUDAGToDAGISelPass (PassRegistry &)
 
void initializeAMDGPUMachineCFGStructurizerPass (PassRegistry &)
 
void initializeAMDGPUAlwaysInlinePass (PassRegistry &)
 
PasscreateAMDGPUAnnotateKernelFeaturesPass ()
 
void initializeAMDGPUAnnotateKernelFeaturesPass (PassRegistry &)
 
FunctionPasscreateAMDGPUAtomicOptimizerPass ()
 
void initializeAMDGPUAtomicOptimizerPass (PassRegistry &)
 
ModulePasscreateAMDGPULowerIntrinsicsPass ()
 
void initializeAMDGPULowerIntrinsicsPass (PassRegistry &)
 
ModulePasscreateAMDGPUFixFunctionBitcastsPass ()
 
void initializeAMDGPUFixFunctionBitcastsPass (PassRegistry &)
 
FunctionPasscreateAMDGPULowerKernelArgumentsPass ()
 
void initializeAMDGPULowerKernelArgumentsPass (PassRegistry &)
 
ModulePasscreateAMDGPULowerKernelAttributesPass ()
 
void initializeAMDGPULowerKernelAttributesPass (PassRegistry &)
 
void initializeAMDGPURewriteOutArgumentsPass (PassRegistry &)
 
void initializeGCNDPPCombinePass (PassRegistry &)
 
void initializeR600ClauseMergePassPass (PassRegistry &)
 
void initializeR600ControlFlowFinalizerPass (PassRegistry &)
 
void initializeR600ExpandSpecialInstrsPassPass (PassRegistry &)
 
void initializeR600VectorRegMergerPass (PassRegistry &)
 
void initializeR600PacketizerPass (PassRegistry &)
 
void initializeSIFoldOperandsPass (PassRegistry &)
 
void initializeSIPeepholeSDWAPass (PassRegistry &)
 
void initializeSIShrinkInstructionsPass (PassRegistry &)
 
void initializeSIFixSGPRCopiesPass (PassRegistry &)
 
void initializeSIFixVGPRCopiesPass (PassRegistry &)
 
void initializeSIFixupVectorISelPass (PassRegistry &)
 
void initializeSILowerI1CopiesPass (PassRegistry &)
 
void initializeSILoadStoreOptimizerPass (PassRegistry &)
 
void initializeSIWholeQuadModePass (PassRegistry &)
 
void initializeSILowerControlFlowPass (PassRegistry &)
 
void initializeSIInsertSkipsPass (PassRegistry &)
 
void initializeSIOptimizeExecMaskingPass (PassRegistry &)
 
void initializeSIFixWWMLivenessPass (PassRegistry &)
 
void initializeAMDGPUSimplifyLibCallsPass (PassRegistry &)
 
void initializeAMDGPUUseNativeCallsPass (PassRegistry &)
 
void initializeSIAddIMGInitPass (PassRegistry &)
 
void initializeAMDGPUPerfHintAnalysisPass (PassRegistry &)
 
FunctionPasscreateAMDGPUPromoteAlloca ()
 
void initializeAMDGPUPromoteAllocaPass (PassRegistry &)
 
PasscreateAMDGPUStructurizeCFGPass ()
 
FunctionPasscreateAMDGPUISelDag (TargetMachine *TM=nullptr, CodeGenOpt::Level OptLevel=CodeGenOpt::Default)
 This pass converts a legalized DAG into a AMDGPU-specific. More...
 
ModulePasscreateAMDGPUAlwaysInlinePass (bool GlobalOpt=true)
 
ModulePasscreateR600OpenCLImageTypeLoweringPass ()
 
FunctionPasscreateAMDGPUAnnotateUniformValues ()
 
ModulePasscreateAMDGPUUnifyMetadataPass ()
 
void initializeAMDGPUUnifyMetadataPass (PassRegistry &)
 
void initializeSIOptimizeExecMaskingPreRAPass (PassRegistry &)
 
void initializeAMDGPUAnnotateUniformValuesPass (PassRegistry &)
 
void initializeAMDGPUCodeGenPreparePass (PassRegistry &)
 
void initializeSIAnnotateControlFlowPass (PassRegistry &)
 
void initializeSIMemoryLegalizerPass (PassRegistry &)
 
void initializeSIDebuggerInsertNopsPass (PassRegistry &)
 
void initializeSIModeRegisterPass (PassRegistry &)
 
void initializeSIInsertWaitcntsPass (PassRegistry &)
 
void initializeSIFormMemoryClausesPass (PassRegistry &)
 
void initializeAMDGPUUnifyDivergentExitNodesPass (PassRegistry &)
 
ImmutablePasscreateAMDGPUAAWrapperPass ()
 
void initializeAMDGPUAAWrapperPassPass (PassRegistry &)
 
ImmutablePasscreateAMDGPUExternalAAWrapperPass ()
 
void initializeAMDGPUExternalAAWrapperPass (PassRegistry &)
 
void initializeAMDGPUArgumentUsageInfoPass (PassRegistry &)
 
PasscreateAMDGPUFunctionInliningPass ()
 
void initializeAMDGPUInlinerPass (PassRegistry &)
 
ModulePasscreateAMDGPUOpenCLEnqueuedBlockLoweringPass ()
 
void initializeAMDGPUOpenCLEnqueuedBlockLoweringPass (PassRegistry &)
 
TargetgetTheAMDGPUTarget ()
 The target which supports all AMD GPUs. More...
 
TargetgetTheGCNTarget ()
 The target for GCN GPUs. More...
 
raw_ostreamoperator<< (raw_ostream &OS, const ArgDescriptor &Arg)
 
static double log2 (double V)
 
std::unique_ptr< ScheduleDAGMutationcreateAMDGPUMacroFusionDAGMutation ()
 Note that you have to add: DAG.addMutation(createAMDGPUMacroFusionDAGMutation()); to AMDGPUPassConfig::createMachineScheduler() to have an effect. More...
 
void initializeAMDGPUCFGStructurizerPass (PassRegistry &)
 
std::vector< const SUnit * > makeGCNILPScheduler (ArrayRef< const SUnit *> BotRoots, const ScheduleDAG &DAG)
 
std::vector< const SUnit * > makeMinRegSchedule (ArrayRef< const SUnit *> TopRoots, const ScheduleDAG &DAG)
 
GCNRegPressure max (const GCNRegPressure &P1, const GCNRegPressure &P2)
 
LaneBitmask getLiveLaneMask (unsigned Reg, SlotIndex SI, const LiveIntervals &LIS, const MachineRegisterInfo &MRI)
 
GCNRPTracker::LiveRegSet getLiveRegs (SlotIndex SI, const LiveIntervals &LIS, const MachineRegisterInfo &MRI)
 
GCNRPTracker::LiveRegSet getLiveRegsAfter (const MachineInstr &MI, const LiveIntervals &LIS)
 
GCNRPTracker::LiveRegSet getLiveRegsBefore (const MachineInstr &MI, const LiveIntervals &LIS)
 
template<typename Range >
GCNRegPressure getRegPressure (const MachineRegisterInfo &MRI, Range &&LiveRegs)
 
void printLivesAt (SlotIndex SI, const LiveIntervals &LIS, const MachineRegisterInfo &MRI)
 
MCELFStreamercreateAMDGPUELFStreamer (const Triple &T, MCContext &Context, std::unique_ptr< MCAsmBackend > MAB, std::unique_ptr< MCObjectWriter > OW, std::unique_ptr< MCCodeEmitter > Emitter, bool RelaxAll)
 
MCCodeEmittercreateR600MCCodeEmitter (const MCInstrInfo &MCII, const MCRegisterInfo &MRI, MCContext &Ctx)
 
MCInstrInfocreateR600MCInstrInfo ()
 
MCCodeEmittercreateSIMCCodeEmitter (const MCInstrInfo &MCII, const MCRegisterInfo &MRI, MCContext &Ctx)
 
MCAsmBackendcreateAMDGPUAsmBackend (const Target &T, const MCSubtargetInfo &STI, const MCRegisterInfo &MRI, const MCTargetOptions &Options)
 
std::unique_ptr< MCObjectTargetWritercreateAMDGPUELFObjectWriter (bool Is64Bit, uint8_t OSABI, bool HasRelocationAddend)
 
AsmPrintercreateR600AsmPrinterPass (TargetMachine &TM, std::unique_ptr< MCStreamer > &&Streamer)
 
void initializeR600EmitClauseMarkersPass (PassRegistry &)
 
bool isOfRegClass (const TargetInstrInfo::RegSubRegPair &P, const TargetRegisterClass &TRC, MachineRegisterInfo &MRI)
 Returns true if a reg:subreg pair P has a TRC class. More...
 
TargetInstrInfo::RegSubRegPair getRegSubRegPair (const MachineOperand &O)
 Create RegSubRegPair from a register MachineOperand. More...
 
TargetInstrInfo::RegSubRegPair getRegSequenceSubReg (MachineInstr &MI, unsigned SubReg)
 Return the SubReg component from REG_SEQUENCE. More...
 
MachineInstrgetVRegSubRegDef (const TargetInstrInfo::RegSubRegPair &P, MachineRegisterInfo &MRI)
 Return the defining instruction for a given reg:subreg pair skipping copy like instructions and subreg-manipulation pseudos. More...
 
void printAmdKernelCodeField (const amd_kernel_code_t &C, int FldIndex, raw_ostream &OS)
 
void dumpAmdKernelCode (const amd_kernel_code_t *C, raw_ostream &OS, const char *tab)
 
bool parseAmdKernelCodeField (StringRef ID, MCAsmParser &Parser, amd_kernel_code_t &C, raw_ostream &Err)
 
FunctionPasscreateARCISelDag (ARCTargetMachine &TM, CodeGenOpt::Level OptLevel)
 This pass converts a legalized DAG into a ARC-specific DAG, ready for instruction scheduling. More...
 
FunctionPasscreateARCExpandPseudosPass ()
 
FunctionPasscreateARCBranchFinalizePass ()
 
void initializeARCBranchFinalizePass (PassRegistry &Registry)
 
TargetgetTheARCTarget ()
 
PasscreateARMParallelDSPPass ()
 
FunctionPasscreateARMISelDag (ARMBaseTargetMachine &TM, CodeGenOpt::Level OptLevel)
 createARMISelDag - This pass converts a legalized DAG into a ARM-specific DAG, ready for instruction scheduling. More...
 
FunctionPasscreateA15SDOptimizerPass ()
 
FunctionPasscreateARMLoadStoreOptimizationPass (bool PreAlloc=false)
 Returns an instance of the load / store optimization pass. More...
 
FunctionPasscreateARMExpandPseudoPass ()
 createARMExpandPseudoPass - returns an instance of the pseudo instruction expansion pass. More...
 
FunctionPasscreateARMCodeGenPreparePass ()
 
FunctionPasscreateARMConstantIslandPass ()
 createARMConstantIslandPass - returns an instance of the constpool island pass. More...
 
FunctionPasscreateMLxExpansionPass ()
 
FunctionPasscreateThumb2ITBlockPass ()
 createThumb2ITBlockPass - Returns an instance of the Thumb2 IT blocks insertion pass. More...
 
FunctionPasscreateARMOptimizeBarriersPass ()
 createARMOptimizeBarriersPass - Returns an instance of the remove double barriers pass. More...
 
FunctionPasscreateThumb2SizeReductionPass (std::function< bool(const Function &)> Ftor=nullptr)
 createThumb2SizeReductionPass - Returns an instance of the Thumb2 size reduction pass. More...
 
InstructionSelectorcreateARMInstructionSelector (const ARMBaseTargetMachine &TM, const ARMSubtarget &STI, const ARMRegisterBankInfo &RBI)
 
void LowerARMMachineInstrToMCInst (const MachineInstr *MI, MCInst &OutMI, ARMAsmPrinter &AP)
 
void computeBlockSize (MachineFunction *MF, MachineBasicBlock *MBB, BasicBlockInfo &BBI)
 
std::vector< BasicBlockInfocomputeAllBlockSizes (MachineFunction *MF)
 
void initializeARMParallelDSPPass (PassRegistry &)
 
void initializeARMLoadStoreOptPass (PassRegistry &)
 
void initializeARMPreAllocLoadStoreOptPass (PassRegistry &)
 
void initializeARMCodeGenPreparePass (PassRegistry &)
 
void initializeARMConstantIslandsPass (PassRegistry &)
 
void initializeARMExpandPseudoPass (PassRegistry &)
 
void initializeThumb2SizeReducePass (PassRegistry &)
 
template<>
bool IsCPSRDead< MachineInstr > (const MachineInstr *MI)
 
static std::array< MachineOperand, 2 > predOps (ARMCC::CondCodes Pred, unsigned PredReg=0)
 Get the operands corresponding to the given Pred value. More...
 
static MachineOperand condCodeOp (unsigned CCReg=0)
 Get the operand corresponding to the conditional code result. More...
 
static MachineOperand t1CondCodeOp (bool isDead=false)
 Get the operand corresponding to the conditional code result for Thumb1. More...
 
static bool isUncondBranchOpcode (int Opc)
 
static bool isCondBranchOpcode (int Opc)
 
static bool isJumpTableBranchOpcode (int Opc)
 
static bool isIndirectBranchOpcode (int Opc)
 
static bool isPopOpcode (int Opc)
 
static bool isPushOpcode (int Opc)
 
ARMCC::CondCodes getInstrPredicate (const MachineInstr &MI, unsigned &PredReg)
 getInstrPredicate - If instruction is predicated, returns its predicate condition, otherwise returns AL. More...
 
unsigned getMatchingCondBranchOpcode (unsigned Opc)
 
unsigned canFoldARMInstrIntoMOVCC (unsigned Reg, MachineInstr *&MI, const MachineRegisterInfo &MRI)
 Determine if MI can be folded into an ARM MOVCC instruction, and return the opcode of the SSA instruction representing the conditional MI. More...
 
unsigned convertAddSubFlagsOpcode (unsigned OldOpc)
 Map pseudo instructions that imply an 'S' bit onto real opcodes. More...
 
void emitARMRegPlusImmediate (MachineBasicBlock &MBB, MachineBasicBlock::iterator &MBBI, const DebugLoc &dl, unsigned DestReg, unsigned BaseReg, int NumBytes, ARMCC::CondCodes Pred, unsigned PredReg, const ARMBaseInstrInfo &TII, unsigned MIFlags=0)
 emitARMRegPlusImmediate / emitT2RegPlusImmediate - Emits a series of instructions to materializea destreg = basereg + immediate in ARM / Thumb2 code. More...
 
void emitT2RegPlusImmediate (MachineBasicBlock &MBB, MachineBasicBlock::iterator &MBBI, const DebugLoc &dl, unsigned DestReg, unsigned BaseReg, int NumBytes, ARMCC::CondCodes Pred, unsigned PredReg, const ARMBaseInstrInfo &TII, unsigned MIFlags=0)
 
void emitThumbRegPlusImmediate (MachineBasicBlock &MBB, MachineBasicBlock::iterator &MBBI, const DebugLoc &dl, unsigned DestReg, unsigned BaseReg, int NumBytes, const TargetInstrInfo &TII, const ARMBaseRegisterInfo &MRI, unsigned MIFlags=0)
 emitThumbRegPlusImmediate - Emits a series of instructions to materialize a destreg = basereg + immediate in Thumb code. More...
 
bool tryFoldSPUpdateIntoPushPop (const ARMSubtarget &Subtarget, MachineFunction &MF, MachineInstr *MI, unsigned NumBytes)
 Tries to add registers to the reglist of a given base-updating push/pop instruction to adjust the stack by an additional NumBytes. More...
 
bool rewriteARMFrameIndex (MachineInstr &MI, unsigned FrameRegIdx, unsigned FrameReg, int &Offset, const ARMBaseInstrInfo &TII)
 rewriteARMFrameIndex / rewriteT2FrameIndex - Rewrite MI to access 'Offset' bytes from the FP. More...
 
bool rewriteT2FrameIndex (MachineInstr &MI, unsigned FrameRegIdx, unsigned FrameReg, int &Offset, const ARMBaseInstrInfo &TII)
 
static bool isARMArea1Register (unsigned Reg, bool isIOS)
 isARMArea1Register - Returns true if the register is a low register (r0-r7) or a stack/pc register that we should push/pop. More...
 
static bool isARMArea2Register (unsigned Reg, bool isIOS)
 
static bool isARMArea3Register (unsigned Reg, bool isIOS)
 
static bool isCalleeSavedRegister (unsigned Reg, const MCPhysReg *CSRegs)
 
unsigned UnknownPadding (unsigned LogAlign, unsigned KnownBits)
 UnknownPadding - Return the worst case padding that could result from unknown offset bits. More...
 
static bool f64AssignAPCS (unsigned &ValNo, MVT &ValVT, MVT &LocVT, CCValAssign::LocInfo &LocInfo, CCState &State, bool CanFail)
 
static bool CC_ARM_APCS_Custom_f64 (unsigned &ValNo, MVT &ValVT, MVT &LocVT, CCValAssign::LocInfo &LocInfo, ISD::ArgFlagsTy &ArgFlags, CCState &State)
 
static bool f64AssignAAPCS (unsigned &ValNo, MVT &ValVT, MVT &LocVT, CCValAssign::LocInfo &LocInfo, CCState &State, bool CanFail)
 
static bool CC_ARM_AAPCS_Custom_f64 (unsigned &ValNo, MVT &ValVT, MVT &LocVT, CCValAssign::LocInfo &LocInfo, ISD::ArgFlagsTy &ArgFlags, CCState &State)
 
static bool f64RetAssign (unsigned &ValNo, MVT &ValVT, MVT &LocVT, CCValAssign::LocInfo &LocInfo, CCState &State)
 
static bool RetCC_ARM_APCS_Custom_f64 (unsigned &ValNo, MVT &ValVT, MVT &LocVT, CCValAssign::LocInfo &LocInfo, ISD::ArgFlagsTy &ArgFlags, CCState &State)
 
static bool RetCC_ARM_AAPCS_Custom_f64 (unsigned &ValNo, MVT &ValVT, MVT &LocVT, CCValAssign::LocInfo &LocInfo, ISD::ArgFlagsTy &ArgFlags, CCState &State)
 
static bool CC_ARM_AAPCS_Custom_Aggregate (unsigned &ValNo, MVT &ValVT, MVT &LocVT, CCValAssign::LocInfo &LocInfo, ISD::ArgFlagsTy &ArgFlags, CCState &State)
 
static bool mayOptimizeThumb2Instruction (const MachineInstr *MI)
 
raw_ostreamoperator<< (raw_ostream &O, const ARMConstantPoolValue &V)
 
template<typename InstrType >
bool IsCPSRDead (const InstrType *Instr)
 
template<typename InstrType >
bool isV8EligibleForIT (const InstrType *Instr)
 
static bool isAESPair (const MachineInstr *FirstMI, const MachineInstr &SecondMI)
 
static bool isLiteralsPair (const MachineInstr *FirstMI, const MachineInstr &SecondMI)
 
static bool shouldScheduleAdjacent (const TargetInstrInfo &TII, const TargetSubtargetInfo &TSI, const MachineInstr *FirstMI, const MachineInstr &SecondMI)
 Check if the instr pair, FirstMI and SecondMI, should be fused together. More...
 
std::unique_ptr< ScheduleDAGMutationcreateARMMacroFusionDAGMutation ()
 Note that you have to add: DAG.addMutation(createARMMacroFusionDAGMutation()); to ARMPassConfig::createMachineScheduler() to have an effect. More...
 
void initializeARMExecutionDomainFixPass (PassRegistry &)
 
template<>
bool IsCPSRDead< MCInst > (const MCInst *Instr)
 
static bool isARMLowRegister (unsigned Reg)
 isARMLowRegister - Returns true if the register is a low register (r0-r7). More...
 
MCTargetStreamercreateARMTargetAsmStreamer (MCStreamer &S, formatted_raw_ostream &OS, MCInstPrinter *InstPrint, bool isVerboseAsm)
 
MCTargetStreamercreateARMNullTargetStreamer (MCStreamer &S)
 
MCTargetStreamercreateARMObjectTargetStreamer (MCStreamer &S, const MCSubtargetInfo &STI)
 
TargetgetTheARMLETarget ()
 
TargetgetTheThumbLETarget ()
 
TargetgetTheARMBETarget ()
 
TargetgetTheThumbBETarget ()
 
MCCodeEmittercreateARMLEMCCodeEmitter (const MCInstrInfo &MCII, const MCRegisterInfo &MRI, MCContext &Ctx)
 
MCCodeEmittercreateARMBEMCCodeEmitter (const MCInstrInfo &MCII, const MCRegisterInfo &MRI, MCContext &Ctx)
 
MCAsmBackendcreateARMLEAsmBackend (const Target &T, const MCSubtargetInfo &STI, const MCRegisterInfo &MRI, const MCTargetOptions &Options)
 
MCAsmBackendcreateARMBEAsmBackend (const Target &T, const MCSubtargetInfo &STI, const MCRegisterInfo &MRI, const MCTargetOptions &Options)
 
MCStreamercreateARMWinCOFFStreamer (MCContext &Context, std::unique_ptr< MCAsmBackend > &&MAB, std::unique_ptr< MCObjectWriter > &&OW, std::unique_ptr< MCCodeEmitter > &&Emitter, bool RelaxAll, bool IncrementalLinkerCompatible)
 
std::unique_ptr< MCObjectTargetWritercreateARMELFObjectWriter (uint8_t OSABI)
 Construct an ELF Mach-O object writer. More...
 
std::unique_ptr< MCObjectTargetWritercreateARMMachObjectWriter (bool Is64Bit, uint32_t CPUType, uint32_t CPUSubtype)
 Construct an ARM Mach-O object writer. More...
 
std::unique_ptr< MCObjectTargetWritercreateARMWinCOFFObjectWriter (bool Is64Bit)
 Construct an ARM PE/COFF object writer. More...
 
MCRelocationInfocreateARMMachORelocationInfo (MCContext &Ctx)
 Construct ARM Mach-O relocation info. More...
 
ARMCC::CondCodes getITInstrPredicate (const MachineInstr &MI, unsigned &PredReg)
 getITInstrPredicate - Valid only in Thumb2 mode. More...
 
static const charARMCondCodeToString (ARMCC::CondCodes CC)
 
static unsigned ARMCondCodeFromString (StringRef CC)
 
FunctionPasscreateAVRISelDag (AVRTargetMachine &TM, CodeGenOpt::Level OptLevel)
 
FunctionPasscreateAVRExpandPseudoPass ()
 
FunctionPasscreateAVRFrameAnalyzerPass ()
 Creates instance of the frame analyzer pass. More...
 
FunctionPasscreateAVRRelaxMemPass ()
 
FunctionPasscreateAVRDynAllocaSRPass ()
 createAVRDynAllocaSRPass - returns an instance of the dynalloca stack pointer save/restore pass. More...
 
FunctionPasscreateAVRBranchSelectionPass ()
 
void initializeAVRExpandPseudoPass (PassRegistry &)
 
void initializeAVRRelaxMemPass (PassRegistry &)
 
static void fixStackStores (MachineBasicBlock &MBB, MachineBasicBlock::iterator MI, const TargetInstrInfo &TII, bool insertPushes)
 Replace pseudo store instructions that pass arguments through the stack with real instructions. More...
 
template<>
bool AVRDAGToDAGISel::select< ISD::FrameIndex > (SDNode *N)
 
template<>
bool AVRDAGToDAGISel::select< ISD::STORE > (SDNode *N)
 
template<>
bool AVRDAGToDAGISel::select< ISD::LOAD > (SDNode *N)
 
template<>
bool AVRDAGToDAGISel::select< AVRISD::CALL > (SDNode *N)
 
template<>
bool AVRDAGToDAGISel::select< ISD::BRIND > (SDNode *N)
 
static AVRCC::CondCodes intCCToAVRCC (ISD::CondCode CC)
 IntCCToAVRCC - Convert a DAG integer condition code to an AVR CC. More...
 
static void parseFunctionArgs (const SmallVectorImpl< ISD::InputArg > &Ins, SmallVectorImpl< unsigned > &Out)
 For each argument in a function store the number of pieces it is composed of. More...
 
static void parseExternFuncCallArgs (const SmallVectorImpl< ISD::OutputArg > &In, SmallVectorImpl< unsigned > &Out)
 For external symbols there is no function prototype information so we have to rely directly on argument sizes. More...
 
static StringRef getFunctionName (TargetLowering::CallLoweringInfo &CLI)
 
static void analyzeStandardArguments (TargetLowering::CallLoweringInfo *CLI, const Function *F, const DataLayout *TD, const SmallVectorImpl< ISD::OutputArg > *Outs, const SmallVectorImpl< ISD::InputArg > *Ins, CallingConv::ID CallConv, SmallVectorImpl< CCValAssign > &ArgLocs, CCState &CCInfo, bool IsCall, bool IsVarArg)
 Analyze incoming and outgoing function arguments. More...
 
static void analyzeBuiltinArguments (TargetLowering::CallLoweringInfo &CLI, const Function *F, const DataLayout *TD, const SmallVectorImpl< ISD::OutputArg > *Outs, const SmallVectorImpl< ISD::InputArg > *Ins, CallingConv::ID CallConv, SmallVectorImpl< CCValAssign > &ArgLocs, CCState &CCInfo, bool IsCall, bool IsVarArg)
 
static void analyzeArguments (TargetLowering::CallLoweringInfo *CLI, const Function *F, const DataLayout *TD, const SmallVectorImpl< ISD::OutputArg > *Outs, const SmallVectorImpl< ISD::InputArg > *Ins, CallingConv::ID CallConv, SmallVectorImpl< CCValAssign > &ArgLocs, CCState &CCInfo, bool IsCall, bool IsVarArg)
 
static bool isCopyMulResult (MachineBasicBlock::iterator const &I)
 
static void foldFrameOffset (MachineBasicBlock::iterator &II, int &Offset, unsigned DstReg)
 Fold a frame offset shared between two add instructions into a single one. More...
 
static StringRef getCPU (StringRef CPU)
 Processes a CPU name. More...
 
static Reloc::Model getEffectiveRelocModel (Optional< Reloc::Model > RM)
 
void LLVMInitializeAVRTarget ()
 
MCAsmBackendcreateAVRAsmBackend (const Target &T, const MCSubtargetInfo &STI, const MCRegisterInfo &MRI, const llvm::MCTargetOptions &TO)
 Creates an assembly backend for AVR. More...
 
std::unique_ptr< MCObjectTargetWritercreateAVRELFObjectWriter (uint8_t OSABI)
 Creates an ELF object writer for AVR. More...
 
static unsigned getEFlagsForFeatureSet (const FeatureBitset &Features)
 
MCStreamercreateAVRELFStreamer (Triple const &TT, MCContext &Context, std::unique_ptr< MCAsmBackend > MAB, std::unique_ptr< MCObjectWriter > OW, std::unique_ptr< MCCodeEmitter > CE)
 
TargetgetTheAVRTarget ()
 
MCInstrInfocreateAVRMCInstrInfo ()
 
MCCodeEmittercreateAVRMCCodeEmitter (const MCInstrInfo &MCII, const MCRegisterInfo &MRI, MCContext &Ctx)
 Creates a machine code emitter for AVR. More...
 
FunctionPasscreateBPFISelDag (BPFTargetMachine &TM)
 
FunctionPasscreateBPFMIPeepholePass ()
 
FunctionPasscreateBPFMIPreEmitPeepholePass ()
 
FunctionPasscreateBPFMIPreEmitCheckingPass ()
 
void initializeBPFMIPeepholePass (PassRegistry &)
 
void initializeBPFMIPreEmitPeepholePass (PassRegistry &)
 
void initializeBPFMIPreEmitCheckingPass (PassRegistry &)
 
TargetgetTheBPFleTarget ()
 
TargetgetTheBPFbeTarget ()
 
TargetgetTheBPFTarget ()
 
MCCodeEmittercreateBPFMCCodeEmitter (const MCInstrInfo &MCII, const MCRegisterInfo &MRI, MCContext &Ctx)
 
MCCodeEmittercreateBPFbeMCCodeEmitter (const MCInstrInfo &MCII, const MCRegisterInfo &MRI, MCContext &Ctx)
 
MCAsmBackendcreateBPFAsmBackend (const Target &T, const MCSubtargetInfo &STI, const MCRegisterInfo &MRI, const MCTargetOptions &Options)
 
MCAsmBackendcreateBPFbeAsmBackend (const Target &T, const MCSubtargetInfo &STI, const MCRegisterInfo &MRI, const MCTargetOptions &Options)
 
std::unique_ptr< MCObjectTargetWritercreateBPFELFObjectWriter (uint8_t OSABI)
 
raw_ostreamoperator<< (raw_ostream &OS, const BT::BitValue &BV)
 
raw_ostreamoperator<< (raw_ostream &OS, const BT::RegisterCell &RC)
 
ImmutablePasscreateHexagonTargetTransformInfoPass (const HexagonTargetMachine *TM)
 Creates a Hexagon-specific Target Transformation Info pass. More...
 
void HexagonLowerToMC (const MCInstrInfo &MCII, const MachineInstr *MI, MCInst &MCB, HexagonAsmPrinter &AP)
 
void initializeHexagonBitSimplifyPass (PassRegistry &Registry)
 
FunctionPasscreateHexagonBitSimplify ()
 
FunctionPasscreateHexagonLoopRescheduling ()
 
void initializeHexagonLoopReschedulingPass (PassRegistry &)
 
raw_ostreamoperator<< (raw_ostream &OS, HexagonBlockRanges::IndexType Idx)
 
raw_ostreamoperator<< (raw_ostream &OS, const HexagonBlockRanges::IndexRange &IR)
 
raw_ostreamoperator<< (raw_ostream &OS, const HexagonBlockRanges::RangeList &RL)
 
raw_ostreamoperator<< (raw_ostream &OS, const HexagonBlockRanges::InstrIndexMap &M)
 
raw_ostreamoperator<< (raw_ostream &OS, const HexagonBlockRanges::PrintRangeMap &P)
 
FunctionPasscreateHexagonBranchRelaxation ()
 
void initializeHexagonBranchRelaxationPass (PassRegistry &)
 
FunctionPasscreateHexagonCFGOptimizer ()
 
void initializeHexagonCFGOptimizerPass (PassRegistry &)
 
void initializeHexagonCommonGEPPass (PassRegistry &)
 
FunctionPasscreateHexagonCommonGEP ()
 
void initializeHexagonConstExtendersPass (PassRegistry &)
 
FunctionPasscreateHexagonConstExtenders ()
 
FunctionPasscreateHexagonConstPropagationPass ()
 
void initializeHexagonConstPropagationPass (PassRegistry &Registry)
 
FunctionPasscreateHexagonCopyToCombine ()
 
void initializeHexagonCopyToCombinePass (PassRegistry &)
 
bool is_TC3x (unsigned SchedClass)
 
bool is_TC2early (unsigned SchedClass)
 
bool is_TC4x (unsigned SchedClass)
 
bool is_TC2 (unsigned SchedClass)
 
bool is_TC1 (unsigned SchedClass)
 
FunctionPasscreateHexagonEarlyIfConversion ()
 
void initializeHexagonEarlyIfConversionPass (PassRegistry &Registry)
 
void initializeHexagonExpandCondsetsPass (PassRegistry &)
 
FunctionPasscreateHexagonExpandCondsets ()
 
FunctionPasscreateHexagonFixupHwLoops ()
 
void initializeHexagonFixupHwLoopsPass (PassRegistry &)
 
void initializeHexagonCallFrameInformationPass (PassRegistry &)
 
FunctionPasscreateHexagonCallFrameInformation ()
 
void initializeHexagonGenExtractPass (PassRegistry &)
 
FunctionPasscreateHexagonGenExtract ()
 
void initializeHexagonGenInsertPass (PassRegistry &)
 
FunctionPasscreateHexagonGenInsert ()
 
FunctionPasscreateHexagonGenMux ()
 
void initializeHexagonGenMuxPass (PassRegistry &Registry)
 
void initializeHexagonGenPredicatePass (PassRegistry &Registry)
 
FunctionPasscreateHexagonGenPredicate ()
 
FunctionPasscreateHexagonHardwareLoops ()
 
void initializeHexagonHardwareLoopsPass (PassRegistry &)
 
FunctionPasscreateHexagonISelDag (HexagonTargetMachine &TM, CodeGenOpt::Level OptLevel)
 
void initializeHexagonLoopIdiomRecognizePass (PassRegistry &)
 
PasscreateHexagonLoopIdiomPass ()
 
FunctionPasscreateHexagonNewValueJump ()
 
void initializeHexagonNewValueJumpPass (PassRegistry &)
 
FunctionPasscreateHexagonOptAddrMode ()
 
void initializeHexagonOptAddrModePass (PassRegistry &)
 
FunctionPasscreateHexagonOptimizeSZextends ()
 
void initializeHexagonOptimizeSZextendsPass (PassRegistry &)
 
FunctionPasscreateHexagonPeephole ()
 
void initializeHexagonPeepholePass (PassRegistry &)
 
void initializeHexagonRDFOptPass (PassRegistry &)
 
FunctionPasscreateHexagonRDFOpt ()
 
FunctionPasscreateHexagonSplitConst32AndConst64 ()
 
void initializeHexagonSplitConst32AndConst64Pass (PassRegistry &)
 
FunctionPasscreateHexagonSplitDoubleRegs ()
 
void initializeHexagonSplitDoubleRegsPass (PassRegistry &)
 
FunctionPasscreateHexagonStoreWidening ()
 
void initializeHexagonStoreWideningPass (PassRegistry &)
 
void initializeHexagonVectorLoopCarriedReusePass (PassRegistry &)
 
void initializeHexagonPacketizerPass (PassRegistry &)
 
void initializeHexagonVExtractPass (PassRegistry &)
 
PasscreateHexagonVectorLoopCarriedReusePass ()
 
FunctionPasscreateHexagonPacketizer (bool Minimal)
 
FunctionPasscreateHexagonVectorPrint ()
 
FunctionPasscreateHexagonVExtract ()
 
void initializeHexagonVectorPrintPass (PassRegistry &)
 
MCStreamercreateHexagonELFStreamer (Triple const &TT, MCContext &Context, std::unique_ptr< MCAsmBackend > MAB, std::unique_ptr< MCObjectWriter > OW, std::unique_ptr< MCCodeEmitter > CE)
 
bool HexagonMCShuffle (MCContext &Context, bool Fatal, MCInstrInfo const &MCII, MCSubtargetInfo const &STI, MCInst &MCB)
 
bool HexagonMCShuffle (MCContext &Context, MCInstrInfo const &MCII, MCSubtargetInfo const &STI, MCInst &MCB, MCInst const &AddMI, int fixupCount)
 
bool HexagonMCShuffle (MCContext &Context, MCInstrInfo const &MCII, MCSubtargetInfo const &STI, MCInst &MCB, SmallVector< DuplexCandidate, 8 > possibleDuplexes)
 
TargetgetTheHexagonTarget ()
 
MCInstrInfocreateHexagonMCInstrInfo ()
 
MCRegisterInfocreateHexagonMCRegisterInfo (StringRef TT)
 
MCCodeEmittercreateHexagonMCCodeEmitter (const MCInstrInfo &MCII, const MCRegisterInfo &MRI, MCContext &MCT)
 
MCAsmBackendcreateHexagonAsmBackend (const Target &T, const MCSubtargetInfo &STI, const MCRegisterInfo &MRI, const MCTargetOptions &Options)
 
std::unique_ptr< MCObjectTargetWritercreateHexagonELFObjectWriter (uint8_t OSABI, StringRef CPU)
 
unsigned HexagonGetLastSlot ()
 
TargetgetTheLanaiTarget ()
 
FunctionPasscreateLanaiISelDag (LanaiTargetMachine &TM)
 
FunctionPasscreateLanaiDelaySlotFillerPass (const LanaiTargetMachine &TM)
 
FunctionPasscreateLanaiMemAluCombinerPass ()
 
FunctionPasscreateLanaiSetflagAluCombinerPass ()
 
static bool isSPLSOpcode (unsigned Opcode)
 
static bool isRMOpcode (unsigned Opcode)
 
static bool isRRMOpcode (unsigned Opcode)
 
void initializeLanaiMemAluCombinerPass (PassRegistry &)
 
static unsigned getLanaiRegisterNumbering (unsigned Reg)
 
static Lanai::Fixups FixupKind (const MCExpr *Expr)
 
static unsigned adjustPqBits (const MCInst &Inst, unsigned Value, unsigned PBitShift, unsigned QBitShift)
 
MCCodeEmittercreateLanaiMCCodeEmitter (const MCInstrInfo &MCII, const MCRegisterInfo &MRI, MCContext &Ctx)
 
MCAsmBackendcreateLanaiAsmBackend (const Target &T, const MCSubtargetInfo &STI, const MCRegisterInfo &MRI, const MCTargetOptions &Options)
 
std::unique_ptr< MCObjectTargetWritercreateLanaiELFObjectWriter (uint8_t OSABI)
 
TargetgetTheMipselTarget ()
 
TargetgetTheMipsTarget ()
 
TargetgetTheMips64Target ()
 
TargetgetTheMips64elTarget ()
 
MCStreameroperator<< (MCStreamer &OS, MipsABIFlagsSection &ABIFlagsSection)
 
MCELFStreamercreateMipsELFStreamer (MCContext &Context, std::unique_ptr< MCAsmBackend > MAB, std::unique_ptr< MCObjectWriter > OW, std::unique_ptr< MCCodeEmitter > Emitter, bool RelaxAll)
 
MCCodeEmittercreateMipsMCCodeEmitterEB (const MCInstrInfo &MCII, const MCRegisterInfo &MRI, MCContext &Ctx)
 
MCCodeEmittercreateMipsMCCodeEmitterEL (const MCInstrInfo &MCII, const MCRegisterInfo &MRI, MCContext &Ctx)
 
bool isBasePlusOffsetMemoryAccess (unsigned Opcode, unsigned *AddrIdx, bool *IsStore=nullptr)
 
bool baseRegNeedsLoadStoreMask (unsigned Reg)
 
MCELFStreamercreateMipsNaClELFStreamer (MCContext &Context, std::unique_ptr< MCAsmBackend > TAB, std::unique_ptr< MCObjectWriter > OW, std::unique_ptr< MCCodeEmitter > Emitter, bool RelaxAll)
 
MCAsmBackendcreateMipsAsmBackend (const Target &T, const MCSubtargetInfo &STI, const MCRegisterInfo &MRI, const MCTargetOptions &Options)
 
std::unique_ptr< MCObjectTargetWritercreateMipsELFObjectWriter (const Triple &TT, bool IsN32)
 
ModulePasscreateMipsOs16Pass ()
 
ModulePasscreateMips16HardFloatPass ()
 
FunctionPasscreateMipsModuleISelDagPass ()
 
FunctionPasscreateMipsOptimizePICCallPass ()
 Return an OptimizeCall object. More...
 
FunctionPasscreateMipsDelaySlotFillerPass ()
 createMipsDelaySlotFillerPass - Returns a pass that fills in delay slots in Mips MachineFunctions More...
 
FunctionPasscreateMipsBranchExpansion ()
 
FunctionPasscreateMipsConstantIslandPass ()
 Returns a pass that converts branches to long branches. More...
 
FunctionPasscreateMicroMipsSizeReducePass ()
 Returns an instance of the MicroMips size reduction pass. More...
 
FunctionPasscreateMipsExpandPseudoPass ()
 createMipsExpandPseudoPass - returns an instance of the pseudo instruction expansion pass. More...
 
FunctionPasscreateMipsPreLegalizeCombiner ()
 
InstructionSelectorcreateMipsInstructionSelector (const MipsTargetMachine &, MipsSubtarget &, MipsRegisterBankInfo &)
 
void initializeMipsDelaySlotFillerPass (PassRegistry &)
 
void initializeMipsBranchExpansionPass (PassRegistry &)
 
void initializeMicroMipsSizeReducePass (PassRegistry &)
 
void initializeMipsPreLegalizerCombinerPass (PassRegistry &)
 
FunctionPasscreateMips16ISelDag (MipsTargetMachine &TM, CodeGenOpt::Level OptLevel)
 
const MipsFrameLoweringcreateMips16FrameLowering (const MipsSubtarget &ST)
 Create MipsFrameLowering objects. More...
 
const MipsFrameLoweringcreateMipsSEFrameLowering (const MipsSubtarget &ST)
 
const MipsInstrInfocreateMips16InstrInfo (const MipsSubtarget &STI)
 Create MipsInstrInfo objects. More...
 
const MipsInstrInfocreateMipsSEInstrInfo (const MipsSubtarget &STI)
 
const MipsTargetLoweringcreateMips16TargetLowering (const MipsTargetMachine &TM, const MipsSubtarget &STI)
 Create MipsTargetLowering objects. More...
 
const MipsTargetLoweringcreateMipsSETargetLowering (const MipsTargetMachine &TM, const MipsSubtarget &STI)
 
FunctionPasscreateMipsSEISelDag (MipsTargetMachine &TM, CodeGenOpt::Level OptLevel)
 
MCTargetStreamercreateMSP430ObjectTargetStreamer (MCStreamer &S, const MCSubtargetInfo &STI)
 
MCCodeEmittercreateMSP430MCCodeEmitter (const MCInstrInfo &MCII, const MCRegisterInfo &MRI, MCContext &Ctx)
 Creates a machine code emitter for MSP430. More...
 
TargetgetTheMSP430Target ()
 
MCAsmBackendcreateMSP430MCAsmBackend (const Target &T, const MCSubtargetInfo &STI, const MCRegisterInfo &MRI, const MCTargetOptions &Options)
 
std::unique_ptr< MCObjectTargetWritercreateMSP430ELFObjectWriter (uint8_t OSABI)
 
FunctionPasscreateMSP430ISelDag (MSP430TargetMachine &TM, CodeGenOpt::Level OptLevel)
 createMSP430ISelDag - This pass converts a legalized DAG into a MSP430-specific DAG, ready for instruction scheduling. More...
 
FunctionPasscreateMSP430BranchSelectionPass ()
 Returns an instance of the Branch Selection Pass. More...
 
TargetgetTheNVPTXTarget32 ()
 
TargetgetTheNVPTXTarget64 ()
 
FunctionPasscreateNVPTXISelDag (NVPTXTargetMachine &TM, llvm::CodeGenOpt::Level OptLevel)
 createNVPTXISelDag - This pass converts a legalized DAG into a NVPTX-specific DAG, ready for instruction scheduling. More...
 
ModulePasscreateNVPTXAssignValidGlobalNamesPass ()
 
ModulePasscreateGenericToNVVMPass ()
 
FunctionPasscreateNVVMIntrRangePass (unsigned int SmVersion)
 
FunctionPasscreateNVVMReflectPass (unsigned int SmVersion)
 
MachineFunctionPasscreateNVPTXPrologEpilogPass ()
 
MachineFunctionPasscreateNVPTXReplaceImageHandlesPass ()
 
FunctionPasscreateNVPTXImageOptimizerPass ()
 
FunctionPasscreateNVPTXLowerArgsPass (const NVPTXTargetMachine *TM)
 
BasicBlockPasscreateNVPTXLowerAllocaPass ()
 
MachineFunctionPasscreateNVPTXPeephole ()
 
MachineFunctionPasscreateNVPTXProxyRegErasurePass ()
 
void initializeNVPTXAllocaHoistingPass (PassRegistry &)
 
FunctionPasscreateAllocaHoisting ()
 
void initializeNVPTXAssignValidGlobalNamesPass (PassRegistry &)
 
void initializeGenericToNVVMPass (PassRegistry &)
 
void initializeNVPTXLowerAggrCopiesPass (PassRegistry &)
 
FunctionPasscreateLowerAggrCopies ()
 
void initializeNVPTXLowerAllocaPass (PassRegistry &)
 
void initializeNVPTXLowerArgsPass (PassRegistry &)
 
void initializeNVPTXPeepholePass (PassRegistry &)
 
void initializeNVPTXProxyRegErasurePass (PassRegistry &)
 
std::string getNVPTXRegClassName (TargetRegisterClass const *RC)
 
std::string getNVPTXRegClassStr (TargetRegisterClass const *RC)
 
void initializeNVVMIntrRangePass (PassRegistry &)
 
void initializeNVVMReflectPass (PassRegistry &)
 
void clearAnnotationCache (const Module *Mod)
 
static void cacheAnnotationFromMD (const MDNode *md, key_val_pair_t &retval)
 
static void cacheAnnotationFromMD (const Module *m, const GlobalValue *gv)
 
bool findOneNVVMAnnotation (const GlobalValue *gv, const std::string &prop, unsigned &retval)
 
bool findAllNVVMAnnotation (const GlobalValue *gv, const std::string &prop, std::vector< unsigned > &retval)
 
bool isTexture (const Value &val)
 
bool isSurface (const Value &val)
 
bool isSampler (const Value &val)
 
bool isImageReadOnly (const Value &val)
 
bool isImageWriteOnly (const Value &val)
 
bool isImageReadWrite (const Value &val)
 
bool isImage (const Value &val)
 
bool isManaged (const Value &val)
 
std::string getTextureName (const Value &val)
 
std::string getSurfaceName (const Value &val)
 
std::string getSamplerName (const Value &val)
 
bool getMaxNTIDx (const Function &F, unsigned &x)
 
bool getMaxNTIDy (const Function &F, unsigned &y)
 
bool getMaxNTIDz (const Function &F, unsigned &z)
 
bool getReqNTIDx (const Function &F, unsigned &x)
 
bool getReqNTIDy (const Function &F, unsigned &y)
 
bool getReqNTIDz (const Function &F, unsigned &z)
 
bool getMinCTASm (const Function &F, unsigned &x)
 
bool getMaxNReg (const Function &F, unsigned &x)
 
bool isKernelFunction (const Function &F)
 
bool getAlign (const Function &F, unsigned index, unsigned &align)
 
bool getAlign (const CallInst &I, unsigned index, unsigned &align)
 
TargetgetThePPC32Target ()
 
TargetgetThePPC64Target ()
 
TargetgetThePPC64LETarget ()
 
MCCodeEmittercreatePPCMCCodeEmitter (const MCInstrInfo &MCII, const MCRegisterInfo &MRI, MCContext &Ctx)
 
MCAsmBackendcreatePPCAsmBackend (const Target &T, const MCSubtargetInfo &STI, const MCRegisterInfo &MRI, const MCTargetOptions &Options)
 
std::unique_ptr< MCObjectTargetWritercreatePPCELFObjectWriter (bool Is64Bit, uint8_t OSABI)
 Construct an PPC ELF object writer. More...
 
std::unique_ptr< MCObjectTargetWritercreatePPCMachObjectWriter (bool Is64Bit, uint32_t CPUType, uint32_t CPUSubtype)
 Construct a PPC Mach-O object writer. More...
 
static bool isRunOfOnes (unsigned Val, unsigned &MB, unsigned &ME)
 Returns true iff Val consists of one contiguous run of 1s with any number of 0s on either side. More...
 
FunctionPasscreatePPCCTRLoops ()
 
FunctionPasscreatePPCCTRLoopsVerify ()
 
FunctionPasscreatePPCLoopPreIncPrepPass (PPCTargetMachine &TM)
 
FunctionPasscreatePPCTOCRegDepsPass ()
 
FunctionPasscreatePPCEarlyReturnPass ()
 
FunctionPasscreatePPCVSXCopyPass ()
 
FunctionPasscreatePPCVSXFMAMutatePass ()
 
FunctionPasscreatePPCVSXSwapRemovalPass ()
 
FunctionPasscreatePPCReduceCRLogicalsPass ()
 
FunctionPasscreatePPCMIPeepholePass ()
 
FunctionPasscreatePPCBranchSelectionPass ()
 
FunctionPasscreatePPCBranchCoalescingPass ()
 createPPCBranchCoalescingPass - returns an instance of the Branch Coalescing Pass More...
 
FunctionPasscreatePPCQPXLoadSplatPass ()
 
FunctionPasscreatePPCISelDag (PPCTargetMachine &TM, CodeGenOpt::Level OL)
 createPPCISelDag - This pass converts a legalized DAG into a PowerPC-specific DAG, ready for instruction scheduling. More...
 
FunctionPasscreatePPCTLSDynamicCallPass ()
 
FunctionPasscreatePPCBoolRetToIntPass ()
 
FunctionPasscreatePPCExpandISELPass ()
 
FunctionPasscreatePPCPreEmitPeepholePass ()
 
void LowerPPCMachineInstrToMCInst (const MachineInstr *MI, MCInst &OutMI, AsmPrinter &AP, bool isDarwin)
 
bool LowerPPCMachineOperandToMCOperand (const MachineOperand &MO, MCOperand &OutMO, AsmPrinter &AP, bool isDarwin)
 
void initializePPCVSXFMAMutatePass (PassRegistry &)
 
void initializePPCBoolRetToIntPass (PassRegistry &)
 
void initializePPCExpandISELPass (PassRegistry &)
 
void initializePPCPreEmitPeepholePass (PassRegistry &)
 
void initializePPCTLSDynamicCallPass (PassRegistry &)
 
void initializePPCMIPeepholePass (PassRegistry &)
 
void initializePPCBranchCoalescingPass (PassRegistry &)
 
void initializePPCBSelPass (PassRegistry &)
 
bool CC_PPC_AnyReg_Error (unsigned &, MVT &, MVT &, CCValAssign::LocInfo &, ISD::ArgFlagsTy &, CCState &)
 
void initializePPCCTRLoopsPass (PassRegistry &)
 
void initializePPCCTRLoopsVerifyPass (PassRegistry &)
 
void initializePPCEarlyReturnPass (PassRegistry &)
 
static const MachineInstrBuilderaddFrameReference (const MachineInstrBuilder &MIB, int FI, int Offset=0, bool mem=true)
 addFrameReference - This function is used to add a reference to the base of an abstract object on the stack frame of the current function. More...
 
bool CC_PPC32_SVR4_Custom_Dummy (unsigned &ValNo, MVT &ValVT, MVT &LocVT, CCValAssign::LocInfo &LocInfo, ISD::ArgFlagsTy &ArgFlags, CCState &State)
 
bool CC_PPC32_SVR4_Custom_AlignArgRegs (unsigned &ValNo, MVT &ValVT, MVT &LocVT, CCValAssign::LocInfo &LocInfo, ISD::ArgFlagsTy &ArgFlags, CCState &State)
 
bool CC_PPC32_SVR4_Custom_SkipLastArgRegsPPCF128 (unsigned &ValNo, MVT &ValVT, MVT &LocVT, CCValAssign::LocInfo &LocInfo, ISD::ArgFlagsTy &ArgFlags, CCState &State)
 
bool CC_PPC32_SVR4_Custom_AlignFPArgRegs (unsigned &ValNo, MVT &ValVT, MVT &LocVT, CCValAssign::LocInfo &LocInfo, ISD::ArgFlagsTy &ArgFlags, CCState &State)
 
bool isIntS16Immediate (SDNode *N, int16_t &Imm)
 isIntS16Immediate - This method tests to see if the node is either a 32-bit or 64-bit immediate, and if the value can be accurately represented as a sign extension from a 16-bit value. More...
 
bool isIntS16Immediate (SDValue Op, int16_t &Imm)
 
void initializePPCLoopPreIncPrepPass (PassRegistry &)
 
void initializePPCQPXLoadSplatPass (PassRegistry &)
 
void initializePPCReduceCRLogicalsPass (PassRegistry &)
 
static unsigned getCRFromCRBit (unsigned SrcReg)
 
void initializePPCTOCRegDepsPass (PassRegistry &)
 
void initializePPCVSXCopyPass (PassRegistry &)
 
void initializePPCVSXSwapRemovalPass (PassRegistry &)
 
TargetgetTheRISCV32Target ()
 
TargetgetTheRISCV64Target ()
 
MCCodeEmittercreateRISCVMCCodeEmitter (const MCInstrInfo &MCII, const MCRegisterInfo &MRI, MCContext &Ctx)
 
MCAsmBackendcreateRISCVAsmBackend (const Target &T, const MCSubtargetInfo &STI, const MCRegisterInfo &MRI, const MCTargetOptions &Options)
 
std::unique_ptr< MCObjectTargetWritercreateRISCVELFObjectWriter (uint8_t OSABI, bool Is64Bit)
 
void LowerRISCVMachineInstrToMCInst (const MachineInstr *MI, MCInst &OutMI, const AsmPrinter &AP)
 
bool LowerRISCVMachineOperandToMCOperand (const MachineOperand &MO, MCOperand &MCOp, const AsmPrinter &AP)
 
FunctionPasscreateRISCVISelDag (RISCVTargetMachine &TM)
 
FunctionPasscreateRISCVMergeBaseOffsetOptPass ()
 Returns an instance of the Merge Base Offset Optimization pass. More...
 
void initializeRISCVMergeBaseOffsetOptPass (PassRegistry &)
 
FunctionPasscreateRISCVExpandPseudoPass ()
 
void initializeRISCVExpandPseudoPass (PassRegistry &)
 
TargetgetTheSparcTarget ()
 
TargetgetTheSparcV9Target ()
 
TargetgetTheSparcelTarget ()
 
MCCodeEmittercreateSparcMCCodeEmitter (const MCInstrInfo &MCII, const MCRegisterInfo &MRI, MCContext &Ctx)
 
MCAsmBackendcreateSparcAsmBackend (const Target &T, const MCSubtargetInfo &STI, const MCRegisterInfo &MRI, const MCTargetOptions &Options)
 
std::unique_ptr< MCObjectTargetWritercreateSparcELFObjectWriter (bool Is64Bit, uint8_t OSABI)
 
FunctionPasscreateSparcISelDag (SparcTargetMachine &TM)
 createSparcISelDag - This pass converts a legalized DAG into a SPARC-specific DAG, ready for instruction scheduling. More...
 
FunctionPasscreateSparcDelaySlotFillerPass ()
 createSparcDelaySlotFillerPass - Returns a pass that fills in delay slots in Sparc MachineFunctions More...
 
void LowerSparcMachineInstrToMCInst (const MachineInstr *MI, MCInst &OutMI, AsmPrinter &AP)
 
static const charSPARCCondCodeToString (SPCC::CondCodes CC)
 
static unsigned HI22 (int64_t imm)
 
static unsigned LO10 (int64_t imm)
 
static unsigned HIX22 (int64_t imm)
 
static unsigned LOX10 (int64_t imm)
 
TargetgetTheSystemZTarget ()
 
MCCodeEmittercreateSystemZMCCodeEmitter (const MCInstrInfo &MCII, const MCRegisterInfo &MRI, MCContext &Ctx)
 
MCAsmBackendcreateSystemZMCAsmBackend (const Target &T, const MCSubtargetInfo &STI, const MCRegisterInfo &MRI, const MCTargetOptions &Options)
 
std::unique_ptr< MCObjectTargetWritercreateSystemZObjectWriter (uint8_t OSABI)
 
FunctionPasscreateSystemZISelDag (SystemZTargetMachine &TM, CodeGenOpt::Level OptLevel)
 
FunctionPasscreateSystemZElimComparePass (SystemZTargetMachine &TM)
 
FunctionPasscreateSystemZExpandPseudoPass (SystemZTargetMachine &TM)
 
FunctionPasscreateSystemZShortenInstPass (SystemZTargetMachine &TM)
 
FunctionPasscreateSystemZLongBranchPass (SystemZTargetMachine &TM)
 
FunctionPasscreateSystemZLDCleanupPass (SystemZTargetMachine &TM)
 
FunctionPasscreateSystemZTDCPass ()
 
bool CC_SystemZ_I128Indirect (unsigned &ValNo, MVT &ValVT, MVT &LocVT, CCValAssign::LocInfo &LocInfo, ISD::ArgFlagsTy &ArgFlags, CCState &State)
 
void initializeSystemZExpandPseudoPass (PassRegistry &)
 
static const MachineInstrBuilderaddFrameReference (const MachineInstrBuilder &MIB, int FI)
 Add a BDX memory reference for frame object FI to MIB. More...
 
void initializeSystemZTDCPassPass (PassRegistry &)
 
TargetgetTheWebAssemblyTarget32 ()
 
TargetgetTheWebAssemblyTarget64 ()
 
MCCodeEmittercreateWebAssemblyMCCodeEmitter (const MCInstrInfo &MCII)
 
MCAsmBackendcreateWebAssemblyAsmBackend (const Triple &TT)
 
std::unique_ptr< MCObjectTargetWritercreateWebAssemblyWasmObjectWriter (bool Is64Bit)
 
ModulePasscreateWebAssemblyLowerEmscriptenEHSjLj (bool DoEH, bool DoSjLj)
 
ModulePasscreateWebAssemblyLowerGlobalDtors ()
 
ModulePasscreateWebAssemblyAddMissingPrototypes ()
 
ModulePasscreateWebAssemblyFixFunctionBitcasts ()
 
FunctionPasscreateWebAssemblyOptimizeReturned ()
 
FunctionPasscreateWebAssemblyISelDag (WebAssemblyTargetMachine &TM, CodeGenOpt::Level OptLevel)
 This pass converts a legalized DAG into a WebAssembly-specific DAG, ready for instruction scheduling. More...
 
FunctionPasscreateWebAssemblyArgumentMove ()
 
FunctionPasscreateWebAssemblySetP2AlignOperands ()
 
FunctionPasscreateWebAssemblyEHRestoreStackPointer ()
 
FunctionPasscreateWebAssemblyReplacePhysRegs ()
 
FunctionPasscreateWebAssemblyPrepareForLiveIntervals ()
 
FunctionPasscreateWebAssemblyOptimizeLiveIntervals ()
 
FunctionPasscreateWebAssemblyMemIntrinsicResults ()
 
FunctionPasscreateWebAssemblyRegStackify ()
 
FunctionPasscreateWebAssemblyRegColoring ()
 
FunctionPasscreateWebAssemblyExplicitLocals ()
 
FunctionPasscreateWebAssemblyFixIrreducibleControlFlow ()
 
FunctionPasscreateWebAssemblyLateEHPrepare ()
 
FunctionPasscreateWebAssemblyCFGSort ()
 
FunctionPasscreateWebAssemblyCFGStackify ()
 
FunctionPasscreateWebAssemblyLowerBrUnless ()
 
FunctionPasscreateWebAssemblyRegNumbering ()
 
FunctionPasscreateWebAssemblyPeephole ()
 
FunctionPasscreateWebAssemblyCallIndirectFixup ()
 
void initializeWebAssemblyAddMissingPrototypesPass (PassRegistry &)
 
void initializeWebAssemblyLowerEmscriptenEHSjLjPass (PassRegistry &)
 
void initializeLowerGlobalDtorsPass (PassRegistry &)
 
void initializeFixFunctionBitcastsPass (PassRegistry &)
 
void initializeOptimizeReturnedPass (PassRegistry &)
 
void initializeWebAssemblyArgumentMovePass (PassRegistry &)
 
void initializeWebAssemblySetP2AlignOperandsPass (PassRegistry &)
 
void initializeWebAssemblyEHRestoreStackPointerPass (PassRegistry &)
 
void initializeWebAssemblyReplacePhysRegsPass (PassRegistry &)
 
void initializeWebAssemblyPrepareForLiveIntervalsPass (PassRegistry &)
 
void initializeWebAssemblyOptimizeLiveIntervalsPass (PassRegistry &)
 
void initializeWebAssemblyMemIntrinsicResultsPass (PassRegistry &)
 
void initializeWebAssemblyRegStackifyPass (PassRegistry &)
 
void initializeWebAssemblyRegColoringPass (PassRegistry &)
 
void initializeWebAssemblyExplicitLocalsPass (PassRegistry &)
 
void initializeWebAssemblyFixIrreducibleControlFlowPass (PassRegistry &)
 
void initializeWebAssemblyLateEHPreparePass (PassRegistry &)
 
void initializeWebAssemblyExceptionInfoPass (PassRegistry &)
 
void initializeWebAssemblyCFGSortPass (PassRegistry &)
 
void initializeWebAssemblyCFGStackifyPass (PassRegistry &)
 
void initializeWebAssemblyLowerBrUnlessPass (PassRegistry &)
 
void initializeWebAssemblyRegNumberingPass (PassRegistry &)
 
void initializeWebAssemblyPeepholePass (PassRegistry &)
 
void initializeWebAssemblyCallIndirectFixupPass (PassRegistry &)
 
raw_ostreamoperator<< (raw_ostream &OS, const WebAssemblyException &WE)
 
void ComputeLegalValueVTs (const Function &F, const TargetMachine &TM, Type *Ty, SmallVectorImpl< MVT > &ValueVTs)
 
void ComputeSignatureVTs (const FunctionType *Ty, const Function &F, const TargetMachine &TM, SmallVectorImpl< MVT > &Params, SmallVectorImpl< MVT > &Results)
 
void ValTypesFromMVTs (const ArrayRef< MVT > &In, SmallVectorImpl< wasm::ValType > &Out)
 
std::unique_ptr< wasm::WasmSignatureSignatureFromMVTs (const SmallVectorImpl< MVT > &Results, const SmallVectorImpl< MVT > &Params)
 
void GetLibcallSignature (const WebAssemblySubtarget &Subtarget, RTLIB::Libcall LC, SmallVectorImpl< wasm::ValType > &Rets, SmallVectorImpl< wasm::ValType > &Params)
 
void GetLibcallSignature (const WebAssemblySubtarget &Subtarget, const char *Name, SmallVectorImpl< wasm::ValType > &Rets, SmallVectorImpl< wasm::ValType > &Params)
 
X86AsmInstrumentationCreateX86AsmInstrumentation (const MCTargetOptions &MCOptions, const MCContext &Ctx, const MCSubtargetInfo *&STI)
 
bool isImmSExti16i8Value (uint64_t Value)
 
bool isImmSExti32i8Value (uint64_t Value)
 
bool isImmSExti64i8Value (uint64_t Value)
 
bool isImmSExti64i32Value (uint64_t Value)
 
bool isImmUnsignedi8Value (uint64_t Value)
 
bool EmitAnyX86InstComments (const MCInst *MI, raw_ostream &OS, const MCInstrInfo &MCII)
 EmitAnyX86InstComments - This function decodes x86 instructions and prints newline terminated strings to the specified string if desired. More...
 
TargetgetTheX86_32Target ()
 
TargetgetTheX86_64Target ()
 
MCCodeEmittercreateX86MCCodeEmitter (const MCInstrInfo &MCII, const MCRegisterInfo &MRI, MCContext &Ctx)
 
MCAsmBackendcreateX86_32AsmBackend (const Target &T, const MCSubtargetInfo &STI, const MCRegisterInfo &MRI, const MCTargetOptions &Options)
 
MCAsmBackendcreateX86_64AsmBackend (const Target &T, const MCSubtargetInfo &STI, const MCRegisterInfo &MRI, const MCTargetOptions &Options)
 
MCTargetStreamercreateX86AsmTargetStreamer (MCStreamer &S, formatted_raw_ostream &OS, MCInstPrinter *InstPrint, bool isVerboseAsm)
 Implements X86-only directives for assembly emission. More...
 
MCTargetStreamercreateX86ObjectTargetStreamer (MCStreamer &OS, const MCSubtargetInfo &STI)
 Implements X86-only directives for object files. More...
 
MCStreamercreateX86WinCOFFStreamer (MCContext &C, std::unique_ptr< MCAsmBackend > &&AB, std::unique_ptr< MCObjectWriter > &&OW, std::unique_ptr< MCCodeEmitter > &&CE, bool RelaxAll, bool IncrementalLinkerCompatible)
 Construct an X86 Windows COFF machine code streamer which will generate PE/COFF format object files. More...
 
std::unique_ptr< MCObjectTargetWritercreateX86MachObjectWriter (bool Is64Bit, uint32_t CPUType, uint32_t CPUSubtype)
 Construct an X86 Mach-O object writer. More...
 
std::unique_ptr< MCObjectTargetWritercreateX86ELFObjectWriter (bool IsELF64, uint8_t OSABI, uint16_t EMachine)
 Construct an X86 ELF object writer. More...
 
std::unique_ptr< MCObjectTargetWritercreateX86WinCOFFObjectWriter (bool Is64Bit)
 Construct an X86 Win COFF object writer. More...
 
unsigned getX86SubSuperRegister (unsigned, unsigned, bool High=false)
 Returns the sub or super register of a specific X86 register. More...
 
unsigned getX86SubSuperRegisterOrZero (unsigned, unsigned, bool High=false)
 Returns the sub or super register of a specific X86 register. More...
 
void DecodeINSERTPSMask (unsigned Imm, SmallVectorImpl< int > &ShuffleMask)
 Decode a 128-bit INSERTPS instruction as a v4f32 shuffle mask. More...
 
void DecodeInsertElementMask (unsigned NumElts, unsigned Idx, unsigned Len, SmallVectorImpl< int > &ShuffleMask)
 
void DecodeMOVHLPSMask (unsigned NElts, SmallVectorImpl< int > &ShuffleMask)
 Decode a MOVHLPS instruction as a v2f64/v4f32 shuffle mask. More...
 
void DecodeMOVLHPSMask (unsigned NElts, SmallVectorImpl< int > &ShuffleMask)
 Decode a MOVLHPS instruction as a v2f64/v4f32 shuffle mask. More...
 
void DecodeMOVSLDUPMask (unsigned NumElts, SmallVectorImpl< int > &ShuffleMask)
 
void DecodeMOVSHDUPMask (unsigned NumElts, SmallVectorImpl< int > &ShuffleMask)
 
void DecodeMOVDDUPMask (unsigned NumElts, SmallVectorImpl< int > &ShuffleMask)
 
void DecodePSLLDQMask (unsigned NumElts, unsigned Imm, SmallVectorImpl< int > &ShuffleMask)
 
void DecodePSRLDQMask (unsigned NumElts, unsigned Imm, SmallVectorImpl< int > &ShuffleMask)
 
void DecodePALIGNRMask (unsigned NumElts, unsigned Imm, SmallVectorImpl< int > &ShuffleMask)
 
void DecodeVALIGNMask (unsigned NumElts, unsigned Imm, SmallVectorImpl< int > &ShuffleMask)
 
void DecodePSHUFMask (unsigned NumElts, unsigned ScalarBits, unsigned Imm, SmallVectorImpl< int > &ShuffleMask)
 DecodePSHUFMask - This decodes the shuffle masks for pshufw, pshufd, and vpermilp*. More...
 
void DecodePSHUFHWMask (unsigned NumElts, unsigned Imm, SmallVectorImpl< int > &ShuffleMask)
 Decodes the shuffle masks for pshufhw. More...
 
void DecodePSHUFLWMask (unsigned NumElts, unsigned Imm, SmallVectorImpl< int > &ShuffleMask)
 Decodes the shuffle masks for pshuflw. More...
 
void DecodePSWAPMask (unsigned NumElts, SmallVectorImpl< int > &ShuffleMask)
 Decodes a PSWAPD 3DNow! instruction. More...
 
void DecodeSHUFPMask (unsigned NumElts, unsigned ScalarBits, unsigned Imm, SmallVectorImpl< int > &ShuffleMask)
 DecodeSHUFPMask - This decodes the shuffle masks for shufp*. More...
 
void DecodeUNPCKHMask (unsigned NumElts, unsigned ScalarBits, SmallVectorImpl< int > &ShuffleMask)
 DecodeUNPCKHMask - This decodes the shuffle masks for unpckhps/unpckhpd and punpckh*. More...
 
void DecodeUNPCKLMask (unsigned NumElts, unsigned ScalarBits, SmallVectorImpl< int > &ShuffleMask)
 DecodeUNPCKLMask - This decodes the shuffle masks for unpcklps/unpcklpd and punpckl*. More...
 
void DecodeVectorBroadcast (unsigned NumElts, SmallVectorImpl< int > &ShuffleMask)
 Decodes a broadcast of the first element of a vector. More...
 
void DecodeSubVectorBroadcast (unsigned DstNumElts, unsigned SrcNumElts, SmallVectorImpl< int > &ShuffleMask)
 Decodes a broadcast of a subvector to a larger vector type. More...
 
void decodeVSHUF64x2FamilyMask (unsigned NumElts, unsigned ScalarSize, unsigned Imm, SmallVectorImpl< int > &ShuffleMask)
 Decode a shuffle packed values at 128-bit granularity (SHUFF32x4/SHUFF64x2/SHUFI32x4/SHUFI64x2) immediate mask into a shuffle mask. More...
 
void DecodeVPERM2X128Mask (unsigned NumElts, unsigned Imm, SmallVectorImpl< int > &ShuffleMask)
 
void DecodePSHUFBMask (ArrayRef< uint64_t > RawMask, const APInt &UndefElts, SmallVectorImpl< int > &ShuffleMask)
 Decode a PSHUFB mask from a raw array of constants such as from BUILD_VECTOR. More...
 
void DecodeBLENDMask (unsigned NumElts, unsigned Imm, SmallVectorImpl< int > &ShuffleMask)
 Decode a BLEND immediate mask into a shuffle mask. More...
 
void DecodeVPPERMMask (ArrayRef< uint64_t > RawMask, const APInt &UndefElts, SmallVectorImpl< int > &ShuffleMask)
 Decode a VPPERM mask from a raw array of constants such as from BUILD_VECTOR. More...
 
void DecodeVPERMMask (unsigned NumElts, unsigned Imm, SmallVectorImpl< int > &ShuffleMask)
 DecodeVPERMMask - this decodes the shuffle masks for VPERMQ/VPERMPD. More...
 
void DecodeZeroExtendMask (unsigned SrcScalarBits, unsigned DstScalarBits, unsigned NumDstElts, SmallVectorImpl< int > &ShuffleMask)
 Decode a zero extension instruction as a shuffle mask. More...
 
void DecodeZeroMoveLowMask (unsigned NumElts, SmallVectorImpl< int > &ShuffleMask)
 Decode a move lower and zero upper instruction as a shuffle mask. More...
 
void DecodeScalarMoveMask (unsigned NumElts, bool IsLoad, SmallVectorImpl< int > &ShuffleMask)
 Decode a scalar float move instruction as a shuffle mask. More...
 
void DecodeEXTRQIMask (unsigned NumElts, unsigned EltSize, int Len, int Idx, SmallVectorImpl< int > &ShuffleMask)
 Decode a SSE4A EXTRQ instruction as a shuffle mask. More...
 
void DecodeINSERTQIMask (unsigned NumElts, unsigned EltSize, int Len, int Idx, SmallVectorImpl< int > &ShuffleMask)
 Decode a SSE4A INSERTQ instruction as a shuffle mask. More...
 
void DecodeVPERMILPMask (unsigned NumElts, unsigned ScalarBits, ArrayRef< uint64_t > RawMask, const APInt &UndefElts, SmallVectorImpl< int > &ShuffleMask)
 Decode a VPERMILPD/VPERMILPS variable mask from a raw array of constants. More...
 
void DecodeVPERMIL2PMask (unsigned NumElts, unsigned ScalarBits, unsigned M2Z, ArrayRef< uint64_t > RawMask, const APInt &UndefElts, SmallVectorImpl< int > &ShuffleMask)
 Decode a VPERMIL2PD/VPERMIL2PS variable mask from a raw array of constants. More...
 
void DecodeVPERMVMask (ArrayRef< uint64_t > RawMask, const APInt &UndefElts, SmallVectorImpl< int > &ShuffleMask)
 Decode a VPERM W/D/Q/PS/PD mask from a raw array of constants. More...
 
void DecodeVPERMV3Mask (ArrayRef< uint64_t > RawMask, const APInt &UndefElts, SmallVectorImpl< int > &ShuffleMask)
 Decode a VPERMT2 W/D/Q/PS/PD mask from a raw array of constants. More...
 
FunctionPasscreateX86ISelDag (X86TargetMachine &TM, CodeGenOpt::Level OptLevel)
 This pass converts a legalized DAG into a X86-specific DAG, ready for instruction scheduling. More...
 
FunctionPasscreateX86GlobalBaseRegPass ()
 This pass initializes a global base register for PIC on x86-32. More...
 
FunctionPasscreateCleanupLocalDynamicTLSPass ()
 This pass combines multiple accesses to local-dynamic TLS variables so that the TLS base address for the module is only fetched once per execution path through the function. More...
 
FunctionPasscreateX86FloatingPointStackifierPass ()
 This function returns a pass which converts floating-point register references and pseudo instructions into floating-point stack references and physical instructions. More...
 
FunctionPasscreateX86IssueVZeroUpperPass ()
 This pass inserts AVX vzeroupper instructions before each call to avoid transition penalty between functions encoded with AVX and SSE. More...
 
FunctionPasscreateShadowCallStackPass ()
 This pass instruments the function prolog to save the return address to a 'shadow call stack' and the function epilog to check that the return address did not change during function execution. More...
 
FunctionPasscreateX86IndirectBranchTrackingPass ()
 This pass inserts ENDBR instructions before indirect jump/call destinations as part of CET IBT mechanism. More...
 
FunctionPasscreateX86PadShortFunctions ()
 Return a pass that pads short functions with NOOPs. More...
 
FunctionPasscreateX86FixupLEAs ()
 Return a pass that selectively replaces certain instructions (like add, sub, inc, dec, some shifts, and some multiplies) by equivalent LEA instructions, in order to eliminate execution delays in some processors. More...
 
FunctionPasscreateX86OptimizeLEAs ()
 Return a pass that removes redundant LEA instructions and redundant address recalculations. More...
 
FunctionPasscreateX86FixupSetCC ()
 Return a pass that transforms setcc + movzx pairs into xor + setcc. More...
 
FunctionPasscreateX86CondBrFolding ()
 Return a pass that folds conditional branch jumps. More...
 
FunctionPasscreateX86AvoidStoreForwardingBlocks ()
 Return a pass that avoids creating store forward block issues in the hardware. More...
 
FunctionPasscreateX86FlagsCopyLoweringPass ()
 Return a pass that lowers EFLAGS copy pseudo instructions. More...
 
FunctionPasscreateX86WinAllocaExpander ()
 Return a pass that expands WinAlloca pseudo-instructions. More...
 
FunctionPasscreateX86CallFrameOptimization ()
 Return a pass that optimizes the code-size of x86 call sequences. More...
 
FunctionPasscreateX86WinEHStatePass ()
 Return an IR pass that inserts EH registration stack objects and explicit EH state updates. More...
 
FunctionPasscreateX86ExpandPseudoPass ()
 Return a Machine IR pass that expands X86-specific pseudo instructions into a sequence of actual instructions. More...
 
FunctionPasscreateX86CmovConverterPass ()
 This pass converts X86 cmov instructions into branch when profitable. More...
 
FunctionPasscreateX86FixupBWInsts ()
 Return a Machine IR pass that selectively replaces certain byte and word instructions by equivalent 32 bit instructions, in order to eliminate partial register usage, false dependences on the upper portions of registers, and to save code size. More...
 
FunctionPasscreateX86DomainReassignmentPass ()
 Return a Machine IR pass that reassigns instruction chains from one domain to another, when profitable. More...
 
FunctionPasscreateX86EvexToVexInsts ()
 This pass replaces EVEX encoded of AVX-512 instructiosn by VEX encoding when possible in order to reduce code size. More...
 
FunctionPasscreateX86RetpolineThunksPass ()
 This pass creates the thunks for the retpoline feature. More...
 
FunctionPasscreateX86DiscriminateMemOpsPass ()
 This pass ensures instructions featuring a memory operand have distinctive <LineNumber, Discriminator> (with respect to eachother) More...
 
FunctionPasscreateX86InsertPrefetchPass ()
 This pass applies profiling information to insert cache prefetches. More...
 
InstructionSelectorcreateX86InstructionSelector (const X86TargetMachine &TM, X86Subtarget &, X86RegisterBankInfo &)
 
FunctionPasscreateX86SpeculativeLoadHardeningPass ()
 
void initializeEvexToVexInstPassPass (PassRegistry &)
 
void initializeFixupBWInstPassPass (PassRegistry &)
 
void initializeFixupLEAPassPass (PassRegistry &)
 
void initializeShadowCallStackPass (PassRegistry &)
 
void initializeWinEHStatePassPass (PassRegistry &)
 
void initializeX86AvoidSFBPassPass (PassRegistry &)
 
void initializeX86CallFrameOptimizationPass (PassRegistry &)
 
void initializeX86CmovConverterPassPass (PassRegistry &)
 
void initializeX86CondBrFoldingPassPass (PassRegistry &)
 
void initializeX86DomainReassignmentPass (PassRegistry &)
 
void initializeX86ExecutionDomainFixPass (PassRegistry &)
 
void initializeX86FlagsCopyLoweringPassPass (PassRegistry &)
 
void initializeX86SpeculativeLoadHardeningPassPass (PassRegistry &)
 
bool CC_X86_32_RegCall_Assign2Regs (unsigned &ValNo, MVT &ValVT, MVT &LocVT, CCValAssign::LocInfo &LocInfo, ISD::ArgFlagsTy &ArgFlags, CCState &State)
 When regcall calling convention compiled to 32 bit arch, special treatment is required for 64 bit masks. More...
 
static ArrayRef< MCPhysRegCC_X86_VectorCallGetSSEs (const MVT &ValVT)
 
static ArrayRef< MCPhysRegCC_X86_64_VectorCallGetGPRs ()
 
static bool CC_X86_VectorCallAssignRegister (unsigned &ValNo, MVT &ValVT, MVT &LocVT, CCValAssign::LocInfo &LocInfo, ISD::ArgFlagsTy &ArgFlags, CCState &State)
 
bool CC_X86_64_VectorCall (unsigned &ValNo, MVT &ValVT, MVT &LocVT, CCValAssign::LocInfo &LocInfo, ISD::ArgFlagsTy &ArgFlags, CCState &State)
 Vectorcall calling convention has special handling for vector types or HVA for 64 bit arch. More...
 
bool CC_X86_32_VectorCall (unsigned &ValNo, MVT &ValVT, MVT &LocVT, CCValAssign::LocInfo &LocInfo, ISD::ArgFlagsTy &ArgFlags, CCState &State)
 Vectorcall calling convention has special handling for vector types or HVA for 32 bit arch. More...
 
bool CC_X86_AnyReg_Error (unsigned &, MVT &, MVT &, CCValAssign::LocInfo &, ISD::ArgFlagsTy &, CCState &)
 
bool CC_X86_32_MCUInReg (unsigned &ValNo, MVT &ValVT, MVT &LocVT, CCValAssign::LocInfo &LocInfo, ISD::ArgFlagsTy &ArgFlags, CCState &State)
 
static X86AddressMode getAddressFromInstr (const MachineInstr *MI, unsigned Operand)
 Compute the addressing mode from an machine instruction starting with the given operand. More...
 
static const MachineInstrBuilderaddDirectMem (const MachineInstrBuilder &MIB, unsigned Reg)
 addDirectMem - This function is used to add a direct memory reference to the current instruction – that is, a dereference of an address in a register, with no scale, index or displacement. More...
 
static void setDirectAddressInInstr (MachineInstr *MI, unsigned Operand, unsigned Reg)
 Replace the address used in the instruction with the direct memory reference. More...
 
static const MachineInstrBuilderaddOffset (const MachineInstrBuilder &MIB, int Offset)
 
static const MachineInstrBuilderaddOffset (const MachineInstrBuilder &MIB, const MachineOperand &Offset)
 
static const MachineInstrBuilderaddRegOffset (const MachineInstrBuilder &MIB, unsigned Reg, bool isKill, int Offset)
 addRegOffset - This function is used to add a memory reference of the form [Reg + Offset], i.e., one with no scale or index, but with a displacement. More...
 
static const MachineInstrBuilderaddRegReg (const MachineInstrBuilder &MIB, unsigned Reg1, bool isKill1, unsigned Reg2, bool isKill2)
 addRegReg - This function is used to add a memory reference of the form: [Reg + Reg]. More...
 
static const MachineInstrBuilderaddFullAddress (const MachineInstrBuilder &MIB, const X86AddressMode &AM)
 
static const MachineInstrBuilderaddFrameReference (const MachineInstrBuilder &MIB, int FI, int Offset=0)
 addFrameReference - This function is used to add a reference to the base of an abstract object on the stack frame of the current function. More...
 
static const MachineInstrBuilderaddConstantPoolReference (const MachineInstrBuilder &MIB, unsigned CPI, unsigned GlobalBaseReg, unsigned char OpFlags)
 addConstantPoolReference - This function is used to add a reference to the base of a constant value spilled to the per-function constant pool. More...
 
const X86InstrFMA3GroupgetFMA3Group (unsigned Opcode, uint64_t TSFlags)
 Returns a reference to a group of FMA3 opcodes to where the given Opcode is included. More...
 
const X86MemoryFoldTableEntrylookupTwoAddrFoldTable (unsigned RegOp)
 
const X86MemoryFoldTableEntrylookupFoldTable (unsigned RegOp, unsigned OpNum)
 
const X86MemoryFoldTableEntrylookupUnfoldTable (unsigned MemOp)
 
static bool isGlobalStubReference (unsigned char TargetFlag)
 isGlobalStubReference - Return true if the specified TargetFlag operand is a reference to a stub for a global, not the global itself. More...
 
static bool isGlobalRelativeToPICBase (unsigned char TargetFlag)
 isGlobalRelativeToPICBase - Return true if the specified global value reference is relative to a 32-bit PIC base (X86ISD::GlobalBaseReg). More...
 
static bool isScale (const MachineOperand &MO)
 
static bool isLeaMem (const MachineInstr &MI, unsigned Op)
 
static bool isMem (const MachineInstr &MI, unsigned Op)
 
static const IntrinsicDatagetIntrinsicWithChain (unsigned IntNo)
 
static const IntrinsicDatagetIntrinsicWithoutChain (unsigned IntNo)
 
static void verifyIntrinsicTables ()
 
template<typename T = int>
void createUnpackShuffleMask (MVT VT, SmallVectorImpl< T > &Mask, bool Lo, bool Unary)
 Generate unpacklo/unpackhi shuffle mask. More...
 
template<typename T >
void scaleShuffleMask (int Scale, ArrayRef< T > Mask, SmallVectorImpl< T > &ScaledMask)
 Helper function to scale a shuffle or target shuffle mask, replacing each mask index with the scaled sequential indices for an equivalent narrowed mask. More...
 
std::unique_ptr< ScheduleDAGMutationcreateX86MacroFusionDAGMutation ()
 Note that you have to add: DAG.addMutation(createX86MacroFusionDAGMutation()); to X86PassConfig::createMachineScheduler() to have an effect. More...
 
static bool extractConstantMask (const Constant *C, unsigned MaskEltSizeInBits, APInt &UndefElts, SmallVectorImpl< uint64_t > &RawMask)
 
void DecodePSHUFBMask (const Constant *C, unsigned Width, SmallVectorImpl< int > &ShuffleMask)
 Decode a PSHUFB mask from an IR-level vector constant. More...
 
void DecodeVPERMILPMask (const Constant *C, unsigned ElSize, unsigned Width, SmallVectorImpl< int > &ShuffleMask)
 Decode a VPERMILP variable mask from an IR-level vector constant. More...
 
void DecodeVPERMIL2PMask (const Constant *C, unsigned MatchImm, unsigned ElSize, unsigned Width, SmallVectorImpl< int > &ShuffleMask)
 Decode a VPERMILP2 variable mask from an IR-level vector constant. More...
 
void DecodeVPPERMMask (const Constant *C, unsigned Width, SmallVectorImpl< int > &ShuffleMask)
 Decode a VPPERM variable mask from an IR-level vector constant. More...
 
void DecodeVPERMVMask (const Constant *C, unsigned ElSize, unsigned Width, SmallVectorImpl< int > &ShuffleMask)
 Decode a VPERM W/D/Q/PS/PD mask from an IR-level vector constant. More...
 
void DecodeVPERMV3Mask (const Constant *C, unsigned ElSize, unsigned Width, SmallVectorImpl< int > &ShuffleMask)
 Decode a VPERMT2 W/D/Q/PS/PD mask from an IR-level vector constant. More...
 
TargetgetTheXCoreTarget ()
 
void initializeXCoreLowerThreadLocalPass (PassRegistry &p)
 
FunctionPasscreateXCoreFrameToArgsOffsetEliminationPass ()
 createXCoreFrameToArgsOffsetEliminationPass - returns an instance of the Frame to args offset elimination pass More...
 
FunctionPasscreateXCoreISelDag (XCoreTargetMachine &TM, CodeGenOpt::Level OptLevel)
 createXCoreISelDag - This pass converts a legalized DAG into a XCore-specific DAG, ready for instruction scheduling. More...
 
ModulePasscreateXCoreLowerThreadLocalPass ()
 
void initializeCoroEarlyPass (PassRegistry &)
 
void initializeCoroSplitPass (PassRegistry &)
 
void initializeCoroElidePass (PassRegistry &)
 
void initializeCoroCleanupPass (PassRegistry &)
 
static unsigned getComplexity (Value *V)
 Assign a complexity or rank value to LLVM Values. More...
 
static bool isCanonicalPredicate (CmpInst::Predicate Pred)
 Predicate canonicalization reduces the number of patterns that need to be matched by other transforms. More...
 
static ValuepeekThroughBitcast (Value *V, bool OneUseOnly=false)
 Return the source operand of a potentially bitcasted value while optionally checking if it has one use. More...
 
static ConstantAddOne (Constant *C)
 Add one to a Constant. More...
 
static ConstantSubOne (Constant *C)
 Subtract one from a Constant. More...
 
static bool IsFreeToInvert (Value *V, bool WillInvertAllUses)
 Return true if the specified value is free to invert (apply ~ to). More...
 
static OverflowCheckFlavor IntrinsicIDToOverflowCheckFlavor (unsigned ID)
 Returns the OverflowCheckFlavor corresponding to a overflow_with_op intrinsic. More...
 
static ConstantgetSafeVectorConstantForBinop (BinaryOperator::BinaryOps Opcode, Constant *In, bool IsRHSConstant)
 Some binary operators require special handling to avoid poison and undefined behavior. More...
 
raw_ostreamoperator<< (raw_ostream &OS, BBState &BBState) LLVM_ATTRIBUTE_UNUSED
 
static void combineKnownMetadata (Instruction *ReplInst, Instruction *I)
 
static unsigned ComputeSpeculationCost (const Instruction *I, const TargetTransformInfo &TTI)
 
static bool CompareVars (const ASanStackVariableDescription &a, const ASanStackVariableDescription &b)
 
static size_t VarAndRedzoneSize (size_t Size, size_t Granularity, size_t Alignment)
 
void collectCmpOps (CmpInst *Comparison, SmallVectorImpl< Value *> &CmpOperands)
 
static FunctiongetCopyDeclaration (Module *M, Type *Ty)
 
static void replaceCreatedSSACopys (PredicateInfo &PredInfo, Function &F)
 
static bool isUniformLoop (Loop *Lp, Loop *OuterLp)
 
static bool isUniformLoopNest (Loop *Lp, Loop *OuterLp)
 
static bool canIfConvertPHINodes (BasicBlock *BB)
 Check whether it is safe to if-convert this phi node. More...
 
static TypeconvertPointerToIntegerType (const DataLayout &DL, Type *Ty)
 
static TypegetWiderType (const DataLayout &DL, Type *Ty0, Type *Ty1)
 
static bool hasOutsideLoopUser (const Loop *TheLoop, Instruction *Inst, SmallPtrSetImpl< Value *> &AllowedExit)
 Check that the instruction has outside loop users and is not an identified reduction variable. More...
 
raw_ostreamoperator<< (raw_ostream &OS, const VPlanIngredient &I)
 
raw_ostreamoperator<< (raw_ostream &OS, VPlan &Plan)
 
raw_ostreamoperator<< (raw_ostream &OS, const VPValue &V)
 
ArrayRef Convenience constructors
template<typename T >
ArrayRef< TmakeArrayRef (const T &OneElt)
 Construct an ArrayRef from a single element. More...
 
template<typename T >
ArrayRef< TmakeArrayRef (const T *data, size_t length)
 Construct an ArrayRef from a pointer and length. More...
 
template<typename T >
ArrayRef< TmakeArrayRef (const T *begin, const T *end)
 Construct an ArrayRef from a range. More...
 
template<typename T >
ArrayRef< TmakeArrayRef (const SmallVectorImpl< T > &Vec)
 Construct an ArrayRef from a SmallVector. More...
 
template<typename T , unsigned N>
ArrayRef< TmakeArrayRef (const SmallVector< T, N > &Vec)
 Construct an ArrayRef from a SmallVector. More...
 
template<typename T >
ArrayRef< TmakeArrayRef (const std::vector< T > &Vec)
 Construct an ArrayRef from a std::vector. More...
 
template<typename T >
ArrayRef< TmakeArrayRef (const ArrayRef< T > &Vec)
 Construct an ArrayRef from an ArrayRef (no-op) (const) More...
 
template<typename T >
ArrayRef< T > & makeArrayRef (ArrayRef< T > &Vec)
 Construct an ArrayRef from an ArrayRef (no-op) More...
 
template<typename T , size_t N>
ArrayRef< TmakeArrayRef (const T(&Arr)[N])
 Construct an ArrayRef from a C array. More...
 
template<typename T >
MutableArrayRef< TmakeMutableArrayRef (T &OneElt)
 Construct a MutableArrayRef from a single element. More...
 
template<typename T >
MutableArrayRef< TmakeMutableArrayRef (T *data, size_t length)
 Construct a MutableArrayRef from a pointer and length. More...
 
ArrayRef Comparison Operators
template<typename T >
bool operator== (ArrayRef< T > LHS, ArrayRef< T > RHS)
 
template<typename T >
bool operator!= (ArrayRef< T > LHS, ArrayRef< T > RHS)
 
StringRef Comparison Operators
LLVM_ATTRIBUTE_ALWAYS_INLINE bool operator== (StringRef LHS, StringRef RHS)
 
LLVM_ATTRIBUTE_ALWAYS_INLINE bool operator!= (StringRef LHS, StringRef RHS)
 
bool operator< (StringRef LHS, StringRef RHS)
 
bool operator<= (StringRef LHS, StringRef RHS)
 
bool operator> (StringRef LHS, StringRef RHS)
 
bool operator>= (StringRef LHS, StringRef RHS)
 
std::string & operator+= (std::string &buffer, StringRef string)
 
Twine Inline Implementations
Twine operator+ (const Twine &LHS, const Twine &RHS)
 
Twine operator+ (const char *LHS, const StringRef &RHS)
 Additional overload to guarantee simplified codegen; this is equivalent to concat(). More...
 
Twine operator+ (const StringRef &LHS, const char *RHS)
 Additional overload to guarantee simplified codegen; this is equivalent to concat(). More...
 
raw_ostreamoperator<< (raw_ostream &OS, const Twine &RHS)
 
void describeFuzzerIntOps (std::vector< fuzzerop::OpDescriptor > &Ops)
 Getters for the default sets of operations, per general category. More...
 
void describeFuzzerFloatOps (std::vector< fuzzerop::OpDescriptor > &Ops)
 
void describeFuzzerControlFlowOps (std::vector< fuzzerop::OpDescriptor > &Ops)
 
void describeFuzzerPointerOps (std::vector< fuzzerop::OpDescriptor > &Ops)
 
void describeFuzzerAggregateOps (std::vector< fuzzerop::OpDescriptor > &Ops)
 
void describeFuzzerVectorOps (std::vector< fuzzerop::OpDescriptor > &Ops)
 
TransformationMode hasUnrollTransformation (Loop *L)
 
TransformationMode hasUnrollAndJamTransformation (Loop *L)
 
TransformationMode hasVectorizeTransformation (Loop *L)
 
TransformationMode hasDistributeTransformation (Loop *L)
 
TransformationMode hasLICMVersioningTransformation (Loop *L)
 

Variables

const NoneType None = NoneType::None
 
template<typename T >
int(*)(const void *, const void *) get_array_pod_sort_comparator (const T &)
 get_array_pod_sort_comparator - This is an internal helper function used to get type deduction of T right. More...
 
unsigned constexpr DefaultMaxUsesToExplore = 20
 The default value for MaxUsesToExplore argument. More...
 
cl::opt< unsignedDefMaxInstsToScan
 The default number of maximum instructions to scan in the block, used by FindAvailableLoadedValue(). More...
 
cl::opt< boolEnableMSSALoopDependency
 Enables memory ssa as a dependency for loop passes. More...
 
static const unsigned BWH_MagicField = 0 * 4
 Offsets of the 32-bit fields of bitcode wrapper header. More...
 
static const unsigned BWH_VersionField = 1 * 4
 
static const unsigned BWH_OffsetField = 2 * 4
 
static const unsigned BWH_SizeField = 3 * 4
 
static const unsigned BWH_CPUTypeField = 4 * 4
 
static const unsigned BWH_HeaderSize = 5 * 4
 
 success
 Parameters (see the expansion example below): (the builder, addr, loaded, new_val, ordering, /* OUT. More...
 
cl::opt< unsignedPartialUnrollingThreshold
 
cl::opt< boolDisableGISelLegalityCheck
 
class llvm::RegisterBankInfo ScalarAddx2
 
class llvm::RegisterBankInfo GPR
 
cl::opt< boolUseSegmentSetForPhysRegs
 
cl::opt< boolSwpEnableCopyToPhi
 
cl::opt< boolForceTopDown
 
cl::opt< boolForceBottomUp
 
charAtomicExpandID = AtomicExpand::ID
 AtomicExpandID – Lowers atomic operations in terms of either cmpxchg load-linked/store-conditional loops. More...
 
charMachineLoopInfoID = MachineLoopInfo::ID
 MachineLoopInfo - This pass is a loop analysis pass. More...
 
charMachineDominatorsID
 MachineDominators - This pass is a machine dominators analysis pass. More...
 
charMachineDominanceFrontierID = MachineDominanceFrontier::ID
 MachineDominanaceFrontier - This pass is a machine dominators analysis pass. More...
 
charMachineRegionInfoPassID
 MachineRegionInfo - This pass computes SESE regions for machine functions. More...
 
charEdgeBundlesID
 EdgeBundles analysis - Bundle machine CFG edges. More...
 
charLiveVariablesID = LiveVariables::ID
 LiveVariables pass - This pass computes the set of blocks in which each variable is life and sets machine operand kill flags. More...
 
charPHIEliminationID = PHIElimination::ID
 PHIElimination - This pass eliminates machine instruction PHI nodes by inserting copy instructions. More...
 
charLiveIntervalsID = LiveIntervals::ID
 LiveIntervals - This analysis keeps track of the live ranges of virtual and physical registers. More...
 
charLiveStacksID = LiveStacks::ID
 LiveStacks pass. An analysis keeping track of the liveness of stack slots. More...
 
charTwoAddressInstructionPassID = TwoAddressInstructionPass::ID
 TwoAddressInstruction - This pass reduces two-address instructions to use two operands. More...
 
charProcessImplicitDefsID = ProcessImplicitDefs::ID
 ProcessImpicitDefs pass - This pass removes IMPLICIT_DEFs. More...
 
charRegisterCoalescerID = RegisterCoalescer::ID
 RegisterCoalescer - This pass merges live ranges to eliminate copies. More...
 
charMachineSchedulerID = MachineScheduler::ID
 MachineScheduler - This pass schedules machine instructions. More...
 
charPostMachineSchedulerID = PostMachineScheduler::ID
 PostMachineScheduler - This pass schedules machine instructions postRA. More...
 
charSpillPlacementID = SpillPlacement::ID
 SpillPlacement analysis. More...
 
charShrinkWrapID = ShrinkWrap::ID
 ShrinkWrap pass. Look for the best place to insert save and restore. More...
 
charLiveRangeShrinkID = LiveRangeShrink::ID
 LiveRangeShrink pass. More...
 
charRAGreedyID = RAGreedy::ID
 Greedy register allocator. More...
 
charRABasicID = RABasic::ID
 Basic register allocator. More...
 
charVirtRegRewriterID = VirtRegRewriter::ID
 VirtRegRewriter pass. More...
 
charUnreachableMachineBlockElimID
 UnreachableMachineBlockElimination - This pass removes unreachable machine basic blocks. More...
 
charDeadMachineInstructionElimID = DeadMachineInstructionElim::ID
 DeadMachineInstructionElim - This pass removes dead machine instructions. More...
 
charDetectDeadLanesID = DetectDeadLanes::ID
 This pass adds dead/undef flags after analyzing subregister lanes. More...
 
charPostRAMachineSinkingID = PostRAMachineSinking::ID
 This pass perform post-ra machine sink for COPY instructions. More...
 
charPrologEpilogCodeInserterID = PEI::ID
 PrologEpilogCodeInserter - This pass inserts prolog and epilog code, and eliminates abstract frame references. More...
 
charExpandPostRAPseudosID = ExpandPostRA::ID
 ExpandPostRAPseudos - This pass expands pseudo instructions after register allocation. More...
 
charPostRAHazardRecognizerID = PostRAHazardRecognizer::ID
 createPostRAHazardRecognizer - This pass runs the post-ra hazard recognizer. More...
 
charPostRASchedulerID = PostRAScheduler::ID
 createPostRAScheduler - This pass performs post register allocation scheduling. More...
 
charBranchFolderPassID = BranchFolderPass::ID
 BranchFolding - This pass performs machine code CFG based optimizations to delete branches to branches, eliminate branches to successor blocks (creating fall throughs), and eliminating branches over branches. More...
 
charBranchRelaxationPassID = BranchRelaxation::ID
 BranchRelaxation - This pass replaces branches that need to jump further than is supported by a branch instruction. More...
 
charMachineFunctionPrinterPassID = MachineFunctionPrinterPass::ID
 MachineFunctionPrinterPass - This pass prints out MachineInstr's. More...
 
charMIRPrintingPassID = MIRPrintingPass::ID
 MIRPrintingPass - this pass prints out the LLVM IR using the MIR serialization format. More...
 
charTailDuplicateID = TailDuplicate::ID
 TailDuplicate - Duplicate blocks with unconditional branches into tails of their predecessors. More...
 
charEarlyTailDuplicateID = EarlyTailDuplicate::ID
 Duplicate blocks with unconditional branches into tails of their predecessors. More...
 
charMachineTraceMetricsID = MachineTraceMetrics::ID
 MachineTraceMetrics - This pass computes critical path and CPU resource usage in an ensemble of traces. More...
 
charEarlyIfConverterID = EarlyIfConverter::ID
 EarlyIfConverter - This pass performs if-conversion on SSA form by inserting cmov instructions. More...
 
charMachineCombinerID = MachineCombiner::ID
 This pass performs instruction combining using trace metrics to estimate critical-path and resource depth. More...
 
charStackColoringID = StackColoring::ID
 StackSlotColoring - This pass performs stack coloring and merging. More...
 
charIfConverterID = IfConverter::ID
 IfConverter - This pass performs machine code if conversion. More...
 
charMachineBlockPlacementID = MachineBlockPlacement::ID
 MachineBlockPlacement - This pass places basic blocks based on branch probabilities. More...
 
charMachineBlockPlacementStatsID = MachineBlockPlacementStats::ID
 MachineBlockPlacementStats - This pass collects statistics about the basic block placement using branch probabilities and block frequency information. More...
 
charGCMachineCodeAnalysisID = GCMachineCodeAnalysis::ID
 GCMachineCodeAnalysis - Target-independent pass to mark safe points in machine code. More...
 
charMachineCSEID = MachineCSE::ID
 MachineCSE - This pass performs global CSE on machine instructions. More...
 
charImplicitNullChecksID = ImplicitNullChecks::ID
 ImplicitNullChecks - This pass folds null pointer checks into nearby memory operations. More...
 
charMachineLICMID = MachineLICM::ID
 This pass performs loop invariant code motion on machine instructions. More...
 
charEarlyMachineLICMID = EarlyMachineLICM::ID
 This pass performs loop invariant code motion on machine instructions. More...
 
charMachineSinkingID = MachineSinking::ID
 MachineSinking - This pass performs sinking on machine instructions. More...
 
charMachineCopyPropagationID = MachineCopyPropagation::ID
 MachineCopyPropagation - This pass performs copy propagation on machine instructions. More...
 
charPeepholeOptimizerID = PeepholeOptimizer::ID
 PeepholeOptimizer - This pass performs peephole optimizations - like extension and comparison eliminations. More...
 
charOptimizePHIsID = OptimizePHIs::ID
 OptimizePHIs - This pass optimizes machine instruction PHIs to take advantage of opportunities created during DAG legalization. More...
 
charStackSlotColoringID = StackSlotColoring::ID
 StackSlotColoring - This pass performs stack slot coloring. More...
 
charFuncletLayoutID = FuncletLayout::ID
 This pass lays out funclets contiguously. More...
 
charXRayInstrumentationID = XRayInstrumentation::ID
 This pass inserts the XRay instrumentation sleds if they are supported by the target platform. More...
 
charFEntryInserterID = FEntryInserter::ID
 This pass inserts FEntry calls. More...
 
charPatchableFunctionID = PatchableFunction::ID
 This pass implements the "patchable-function" attribute. More...
 
charLocalStackSlotAllocationID = LocalStackSlotPass::ID
 LocalStackSlotAllocation - This pass assigns local frame indices to stack slots relative to one another and allocates base registers to access them when it is estimated by the target to be out of range of normal frame pointer or stack pointer index addressing. More...
 
charExpandISelPseudosID = ExpandISelPseudos::ID
 ExpandISelPseudos - This pass expands pseudo-instructions. More...
 
charUnpackMachineBundlesID = UnpackMachineBundles::ID
 UnpackMachineBundles - This pass unpack machine instruction bundles. More...
 
charFinalizeMachineBundlesID = FinalizeMachineBundles::ID
 FinalizeMachineBundles - This pass finalize machine instruction bundles (created earlier, e.g. More...
 
charStackMapLivenessID = StackMapLiveness::ID
 StackMapLiveness - This pass analyses the register live-out set of stackmap/patchpoint intrinsics and attaches the calculated information to the intrinsic for later emission to the StackMap. More...
 
charLiveDebugValuesID = LiveDebugValues::ID
 LiveDebugValues pass. More...
 
charRenameIndependentSubregsID = RenameIndependentSubregs::ID
 This pass detects subregister lanes in a virtual register that are used independently of other lanes and splits them into separate virtual registers. More...
 
charMachinePipelinerID = MachinePipeliner::ID
 This pass performs software pipelining on machine instructions. More...
 
bool TimePassesIsEnabled = false
 If the user specifies the -time-passes argument on an LLVM tool command line then the value of this boolean will be true, otherwise false. More...
 
const char AsmRewritePrecedence []
 
const unsigned MAX_SUBTARGET_FEATURES = 192
 
bool DebugFlag = false
 This boolean is set to true if the '-debug' command line option is specified. More...
 
bool EnableDebugBuffering = false
 EnableDebugBuffering - This defaults to false. More...
 
static const unsigned char BitReverseTable256 [256]
 Macro compressed bit reversal table for 256 bits. More...
 
const float huge_valf = HUGE_VALF
 Use this rather than HUGE_VALF; the latter causes warnings on MSVC. More...
 
cl::OptionCategory ColorCategory
 
SourceMgr SrcMgr
 
unsigned ErrorsPrinted = 0
 
charDemoteRegisterToMemoryID = RegToMem::ID
 
charInferAddressSpacesID
 
static const int kAsanStackLeftRedzoneMagic = 0xf1
 
static const int kAsanStackMidRedzoneMagic = 0xf2
 
static const int kAsanStackRightRedzoneMagic = 0xf3
 
static const int kAsanStackUseAfterReturnMagic = 0xf5
 
static const int kAsanStackUseAfterScopeMagic = 0xf8
 
charLowerInvokePassID = LowerInvokeLegacyPass::ID
 
charInstructionNamerID
 
charLowerSwitchID = LowerSwitch::ID
 
charBreakCriticalEdgesID
 
charLCSSAID = LCSSAWrapperPass::ID
 
charLoopSimplifyID = LoopSimplify::ID
 
cl::opt< boolDumpCriticalPathLength ("misched-dcpl", cl::Hidden, cl::desc("Print critical path length to stdout"))
 
charMIRCanonicalizerID = MIRCanonicalizer::ID
 
static cl::opt< bool, trueEnableTiming ("time-passes", cl::location(TimePassesIsEnabled), cl::Hidden, cl::desc("Time each pass, printing elapsed time for each on exit"))
 
cl::opt< boolLTODiscardValueNames ("lto-discard-value-names", cl::desc("Strip names from Value during LTO (other than GlobalValue)."), cl::init(false), cl::Hidden)
 
cl::opt< std::string > LTORemarksFilename ("lto-pass-remarks-output", cl::desc("Output filename for pass remarks"), cl::value_desc("filename"))
 
cl::opt< boolLTOPassRemarksWithHotness ("lto-pass-remarks-with-hotness", cl::desc("With PGO, include profile count in optimization remarks"), cl::Hidden)
 
static ValueProfRecordClosure InstrProfRecordClosure
 
static const fltSemantics semIEEEhalf = {15, -14, 11, 16}
 
static const fltSemantics semIEEEsingle = {127, -126, 24, 32}
 
static const fltSemantics semIEEEdouble = {1023, -1022, 53, 64}
 
static const fltSemantics semIEEEquad = {16383, -16382, 113, 128}
 
static const fltSemantics semX87DoubleExtended = {16383, -16382, 64, 80}
 
static const fltSemantics semBogus = {0, 0, 0, 0}
 
static const fltSemantics semPPCDoubleDouble = {-1, 0, 0, 0}
 
static const fltSemantics semPPCDoubleDoubleLegacy
 
const unsigned int maxExponent = 16383
 
const unsigned int maxPrecision = 113
 
const unsigned int maxPowerOfFiveExponent = maxExponent + maxPrecision - 1
 
const unsigned int maxPowerOfFiveParts = 2 + ((maxPowerOfFiveExponent * 815) / (351 * APFloatBase::integerPartWidth))
 
static const char hexDigitsLower [] = "0123456789abcdef0"
 
static const char hexDigitsUpper [] = "0123456789ABCDEF0"
 
static const char infinityL [] = "infinity"
 
static const char infinityU [] = "INFINITY"
 
static const char NaNL [] = "nan"
 
static const char NaNU [] = "NAN"
 
static const int halfShift = 10
 
static const UTF32 halfBase = 0x0010000UL
 
static const UTF32 halfMask = 0x3FFUL
 
static const char trailingBytesForUTF8 [256]
 
static const UTF32 offsetsFromUTF8 [6]
 
static const UTF8 firstByteMark [7] = { 0x00, 0x00, 0xC0, 0xE0, 0xF0, 0xF8, 0xFC }
 
static ManagedStatic< std::vector< std::string > > CurrentDebugType
 
int DisableABIBreakingChecks
 
static const MachineMemOperand::Flags MOSuppressPair
 
static const MachineMemOperand::Flags MOStridedAccess
 
charAMDGPUMachineCFGStructurizerID
 
charAMDGPUAnnotateKernelFeaturesID = AMDGPUAnnotateKernelFeatures::ID
 
charAMDGPUAtomicOptimizerID = AMDGPUAtomicOptimizer::ID
 
charAMDGPULowerIntrinsicsID = AMDGPULowerIntrinsics::ID
 
charAMDGPUFixFunctionBitcastsID = AMDGPUFixFunctionBitcasts::ID
 
charAMDGPULowerKernelArgumentsID
 
charAMDGPULowerKernelAttributesID
 
charAMDGPURewriteOutArgumentsID
 
charGCNDPPCombineID = GCNDPPCombine::ID
 
charR600ClauseMergePassID = R600ClauseMergePass::ID
 
charR600ControlFlowFinalizerID = R600ControlFlowFinalizer::ID
 
charR600ExpandSpecialInstrsPassID = R600ExpandSpecialInstrsPass::ID
 
charR600VectorRegMergerID = R600VectorRegMerger::ID
 
charR600PacketizerID = R600Packetizer::ID
 
charSIFoldOperandsID
 
charSIPeepholeSDWAID = SIPeepholeSDWA::ID
 
charSIShrinkInstructionsID
 
charSIFixSGPRCopiesID = SIFixSGPRCopies::ID
 
charSIFixVGPRCopiesID = SIFixVGPRCopies::ID
 
charSIFixupVectorISelID
 
charSILowerI1CopiesID = SILowerI1Copies::ID
 
charSILoadStoreOptimizerID = SILoadStoreOptimizer::ID
 
charSIWholeQuadModeID = SIWholeQuadMode::ID
 
charSILowerControlFlowID = SILowerControlFlow::ID
 
charSIInsertSkipsPassID
 
charSIOptimizeExecMaskingID = SIOptimizeExecMasking::ID
 
charSIFixWWMLivenessID = SIFixWWMLiveness::ID
 
charAMDGPUSimplifyLibCallsID
 
charAMDGPUUseNativeCallsID
 
charSIAddIMGInitID = SIAddIMGInit::ID
 
charAMDGPUPerfHintAnalysisID = AMDGPUPerfHintAnalysis::ID
 
charAMDGPUPromoteAllocaID
 
charAMDGPUUnifyMetadataID = AMDGPUUnifyMetadata::ID
 
charSIOptimizeExecMaskingPreRAID = SIOptimizeExecMaskingPreRA::ID
 
charAMDGPUAnnotateUniformValuesPassID
 
charAMDGPUCodeGenPrepareID
 
charSIAnnotateControlFlowPassID
 
charSIMemoryLegalizerID = SIMemoryLegalizer::ID
 
charSIDebuggerInsertNopsID = SIDebuggerInsertNops::ID
 
charSIModeRegisterID
 
charSIInsertWaitcntsID = SIInsertWaitcnts::ID
 
charSIFormMemoryClausesID = SIFormMemoryClauses::ID
 
charAMDGPUUnifyDivergentExitNodesID = AMDGPUUnifyDivergentExitNodes::ID
 
charAMDGPUOpenCLEnqueuedBlockLoweringID
 
static cl::opt< boolDumpHSAMetadata ("amdgpu-dump-hsa-metadata", cl::desc("Dump AMDGPU HSA Metadata"))
 
static cl::opt< boolVerifyHSAMetadata ("amdgpu-verify-hsa-metadata", cl::desc("Verify AMDGPU HSA Metadata"))
 
static const MCPhysReg RRegList [] = { ARM::R0, ARM::R1, ARM::R2, ARM::R3 }
 
static const MCPhysReg SRegList []
 
static const MCPhysReg DRegList []
 
static const MCPhysReg QRegList [] = { ARM::Q0, ARM::Q1, ARM::Q2, ARM::Q3 }
 
const MCInstrDesc ARMInsts []
 
cl::opt< boolReuseFrameIndexVals
 
static const charAVRDataLayout = "e-P1-p:16:8-i8:8-i16:8-i32:8-i64:8-f32:8-f64:8-n8-a:8"
 
const int SIZE_LONG = 4
 
const int SIZE_WORD = 2
 
charHexagonExpandCondsetsID = HexagonExpandCondsets::ID
 
cl::opt< boolHexagonDisableCompound
 
cl::opt< boolHexagonDisableDuplex
 
const InstrStage HexagonStages []
 
const MCInstrDesc MipsInsts []
 
static const unsigned MIPS_NACL_BUNDLE_ALIGN = 4u
 
static ManagedStatic< per_module_annot_t > annotationCache
 
static sys::Mutex Lock
 
charPPCVSXFMAMutateID = PPCVSXFMAMutate::ID
 
static const IntrinsicData IntrinsicsWithChain []
 
static const IntrinsicData IntrinsicsWithoutChain []
 
static const unsigned CodeModelLargeSize = 256
 
charPGOMemOPSizeOptID = PGOMemOPSizeOptLegacyPass::ID
 
static const size_t kMinAlignment = 16
 
charLibCallsShrinkWrapPassID = LibCallsShrinkWrapLegacyPass::ID
 
Verification flags.

These flags turns on/off that are expensive and are turned off by default, unless macro EXPENSIVE_CHECKS is defined.

The flags allow selectively turning the checks on without need to recompile.

bool VerifyDomInfo = false
 Enables verification of dominator trees. More...
 
bool VerifyLoopInfo = false
 Enables verification of loop info. More...
 
bool VerifyMemorySSA = false
 Enables verification of MemorySSA. More...
 
const char *const LLVMLoopUnrollFollowupAll = "llvm.loop.unroll.followup_all"
 
const char *const LLVMLoopUnrollFollowupUnrolled
 
const char *const LLVMLoopUnrollFollowupRemainder
 

Detailed Description

This class represents lattice values for constants.

Provide DenseMapInfo for MemOpKey.

createHexagonISelDag - This pass converts a legalized DAG into a Hexagon-specific DAG, ready for instruction scheduling.

SSAUpdaterTraits<MachineSSAUpdater> - Traits for the SSAUpdaterImpl template, specialized for MachineSSAUpdater.

This file contains helper functions to modify live ranges.

Specialize WriteGraph, the standard implementation won't work.

LLVM_ENABLE_EXCEPTIONS Whether LLVM is built with exception support.

Lightweight arrays that are backed by an arbitrary BinaryStream.

This file contains the declaration of the GlobalIFunc class, which represents a single indirect function in the IR.

Target-Independent Code Generator Pass Configuration Options pass.

List of target independent CodeGen pass IDs.

Implement a low-level type suitable for MachineInstr level instruction selection.

By default, the reg bank selector relies on local decisions to assign the register bank.

Contains matchers for matching SSA Machine Instructions.

Interface for Targets to specify which operations they can successfully select and how the others should be expanded most efficiently.

This contains common code to allow clients to notify changes to machine instr.

Provides analysis for continuously CSEing during GISel passes.

Interface for Targets to specify which operations are combined how and when.

This contains common combine transformations that may be used in a combine pass,or by the target elsewhere.

This contains common code to drive combines.

The DWARF and Apple accelerator tables are an indirect hash table optimized for null lookup rather than access to known data.

FIXME: This is basically just for bringup, this can be made a lot more rich in the future.

The Apple accelerator tables are a precursor of the newer DWARF v5 accelerator tables. Both formats share common design ideas.

The Apple accelerator table are output into an on-disk format that looks like this:

.---------------—.

HEADER
BUCKETS
---------------—
HASHES
---------------—
OFFSETS
---------------—
DATA

`---------------—'

The header contains a magic number, version, type of hash function, the number of buckets, total number of hashes, and room for a special struct of data and the length of that struct.

The buckets contain an index (e.g. 6) into the hashes array. The hashes section contains all of the 32-bit hash values in contiguous memory, and the offsets contain the offset into the data area for the particular hash.

For a lookup example, we could hash a function name and take it modulo the number of buckets giving us our bucket. From there we take the bucket value as an index into the hashes table and look at each successive hash as long as the hash value is still the same modulo result (bucket value) as earlier. If we have a match we look at that same entry in the offsets table and grab the offset in the data for our final match.

The DWARF v5 accelerator table consists of zero or more name indices that are output into an on-disk format that looks like this:

.---------------—.

HEADER
CU LIST
---------------—
LOCAL TU LIST
---------------—
FOREIGN TU LIST
---------------—
HASH TABLE
---------------—
NAME TABLE
---------------—
ABBREV TABLE
---------------—
ENTRY POOL

`---------------—'

For the full documentation please refer to the DWARF 5 standard.

This file defines the class template AccelTable, which is represents an abstract view of an Accelerator table, without any notion of an on-disk layout. This class is parameterized by an entry type, which should derive from AccelTableData. This is the type of individual entries in the table, and it should store the data necessary to emit them. AppleAccelTableData is the base class for Apple Accelerator Table entries, which have a uniform structure based on a sequence of Atoms. There are different sub-classes derived from AppleAccelTable, which differ in the set of Atoms and how they obtain their values.

An Apple Accelerator Table can be serialized by calling emitAppleAccelTable function.

TODO: Add DWARF v5 emission code.

Combiner Passes will need to setup a CombinerInfo and call combineMachineFunction.

Targets can pick individual opcode transformations from the helper or use tryCombine which invokes all transformations. All of the transformations return true if the MachineInstruction changed and false otherwise.

In other words, it looks at one instruction at a time to decide where the operand of that instruction should live.

At higher optimization level, we could imagine that the reg bank selector would use more global analysis and do crazier thing like duplicating instructions and so on. This is future work.

For now, the pass uses a greedy algorithm to decide where the operand of an instruction should live. It asks the target which banks may be used for each operand of the instruction and what is the cost. Then, it chooses the solution which minimize the cost of the instruction plus the cost of any move that may be needed to the values into the right register bank. In other words, the cost for an instruction on a register bank RegBank is: Cost of I on RegBank plus the sum of the cost for bringing the input operands from their current register bank to RegBank. Thus, the following formula: cost(I, RegBank) = cost(I.Opcode, RegBank) + sum(for each arg in I.arguments: costCrossCopy(arg.RegBank, RegBank))

E.g., Let say we are assigning the register bank for the instruction defining v2. v0(A_REGBANK) = ... v1(A_REGBANK) = ... v2 = G_ADD i32 v0, v1 <– MI

The target may say it can generate G_ADD i32 on register bank A and B with a cost of respectively 5 and 1. Then, let say the cost of a cross register bank copies from A to B is 1. The reg bank selector would compare the following two costs: cost(MI, A_REGBANK) = cost(G_ADD, A_REGBANK) + cost(v0.RegBank, A_REGBANK) + cost(v1.RegBank, A_REGBANK) = 5 + cost(A_REGBANK, A_REGBANK) + cost(A_REGBANK, A_REGBANK) = 5 + 0 + 0 = 5 cost(MI, B_REGBANK) = cost(G_ADD, B_REGBANK) + cost(v0.RegBank, B_REGBANK) + cost(v1.RegBank, B_REGBANK) = 1 + cost(A_REGBANK, B_REGBANK) + cost(A_REGBANK, B_REGBANK) = 1 + 1 + 1 = 3 Therefore, in this specific example, the reg bank selector would choose bank B for MI. v0(A_REGBANK) = ... v1(A_REGBANK) = ... tmp0(B_REGBANK) = COPY v0 tmp1(B_REGBANK) = COPY v1 v2(B_REGBANK) = G_ADD i32 tmp0, tmp1

This provides the CodeGen aspects of LowLevelType, such as Type conversion.

Indirect function uses ELF symbol type extension to mark that the address of a declaration should be resolved at runtime by calling a resolver function.

This file provides two different array implementations.

VarStreamArray - Arrays of variable length records.  The user specifies
  an Extractor type that can extract a record from a given offset and
  return the number of bytes consumed by the record.

FixedStreamArray - Arrays of fixed length records.  This is similar in
  spirit to ArrayRef<T>, but since it is backed by a BinaryStream, the
  elements of the array need not be laid out in contiguous memory.  

For a type attached to a MachineInstr, we only care about 2 details: total size and the number of vector lanes (if any). Accordingly, there are 4 possible valid type-kinds:

Other information required for correct selection is expected to be carried by the opcode, or non-type flags. For example the distinction between G_ADD and G_FADD for int/float or fast-math flags.

Typedef Documentation

◆ AliasAnalysis

using llvm::AliasAnalysis = typedef AAResults

Temporary typedef for legacy code that uses a generic AliasAnalysis pointer or reference.

Definition at line 710 of file AliasAnalysis.h.

◆ AnalysisID

using llvm::AnalysisID = typedef const void *

Definition at line 49 of file Pass.h.

◆ BBOrMBB

Definition at line 26 of file WasmEHFuncInfo.h.

◆ BBSideEffectsSet

Definition at line 118 of file GVNHoist.cpp.

◆ bf_iterator_default_set

template<typename NodeRef , unsigned SmallSize = 8>
using llvm::bf_iterator_default_set = typedef SmallPtrSet<NodeRef, SmallSize>

Definition at line 41 of file BreadthFirstIterator.h.

◆ BFIDOTGTraitsBase

Definition at line 124 of file BlockFrequencyInfo.cpp.

◆ Boolean

Definition at line 113 of file ConvertUTF.h.

◆ BumpPtrAllocator

The standard BumpPtrAllocator which just uses the default template parameters.

Definition at line 435 of file Allocator.h.

◆ BumpPtrList

template<class T >
using llvm::BumpPtrList = typedef AllocatorList<T, BumpPtrAllocator>

Definition at line 237 of file AllocatorList.h.

◆ CCAssignFn

typedef bool llvm::CCAssignFn(unsigned ValNo, MVT ValVT, MVT LocVT, CCValAssign::LocInfo LocInfo, ISD::ArgFlagsTy ArgFlags, CCState &State)

CCAssignFn - This function assigns a location for Val, updating State to reflect the change.

It returns 'true' if it failed to handle Val.

Definition at line 176 of file CallingConvLower.h.

◆ CCCustomFn

typedef bool llvm::CCCustomFn(unsigned &ValNo, MVT &ValVT, MVT &LocVT, CCValAssign::LocInfo &LocInfo, ISD::ArgFlagsTy &ArgFlags, CCState &State)

CCCustomFn - This function assigns a location for Val, possibly updating all args to reflect changes and indicates if it handled it.

It must set isCustom if it handles the arg and returns true.

Definition at line 183 of file CallingConvLower.h.

◆ CFGUpdate

Definition at line 66 of file MemorySSAUpdater.h.

◆ CGSCCAnalysisManager

The CGSCC analysis manager.

See the documentation for the AnalysisManager template for detail documentation. This type serves as a convenient way to refer to this construct in the adaptors and proxies used to integrate this into the larger pass manager infrastructure.

Definition at line 129 of file CGSCCPassManager.h.

◆ CGSCCAnalysisManagerFunctionProxy

A proxy from a CGSCCAnalysisManager to a Function.

Definition at line 562 of file CGSCCPassManager.h.

◆ CGSCCAnalysisManagerModuleProxy

A proxy from a CGSCCAnalysisManager to a Module.

Definition at line 168 of file CGSCCPassManager.h.

◆ CGSCCPassManager

The CGSCC pass manager.

See the documentation for the PassManager template for details. It runs a sequence of SCC passes over each SCC that the manager is run over. This type serves as a convenient way to refer to this construct.

Definition at line 150 of file CGSCCPassManager.h.

◆ CHIArgs

Definition at line 157 of file GVNHoist.cpp.

◆ CHIIt

using llvm::CHIIt = typedef SmallVectorImpl<CHIArg>::iterator

Definition at line 156 of file GVNHoist.cpp.

◆ ColorVector

Definition at line 109 of file EHPersonalities.h.

◆ const_gvsummary_iterator

using llvm::const_gvsummary_iterator = typedef GlobalValueSummaryMapTy::const_iterator

Type used for iterating through the global value summary map.

Definition at line 777 of file ModuleSummaryIndex.h.

◆ const_inst_iterator

Definition at line 128 of file InstIterator.h.

◆ const_inst_range

Definition at line 130 of file InstIterator.h.

◆ const_memoryaccess_def_iterator

Definition at line 131 of file MemorySSA.h.

◆ const_pred_iterator

Definition at line 105 of file CFG.h.

◆ ConstBlockSet

Definition at line 33 of file SyncDependenceAnalysis.h.

◆ ConstMemoryAccessPair

Definition at line 1069 of file MemorySSA.h.

◆ ConstOperandBundleDef

Definition at line 994 of file InstrTypes.h.

◆ CreateCmpXchgInstFun

Definition at line 27 of file AtomicExpandUtils.h.

◆ DescVector

Definition at line 23 of file DWARFExpression.cpp.

◆ DFAInput

using llvm::DFAInput = typedef uint64_t

Definition at line 72 of file DFAPacketizer.h.

◆ DFAStateInput

using llvm::DFAStateInput = typedef int64_t

Definition at line 73 of file DFAPacketizer.h.

◆ DiagnosticHandlerFunction

Definition at line 123 of file DiagnosticInfo.h.

◆ DictScope

using llvm::DictScope = typedef DelimitedScope<'{', '}'>

Definition at line 384 of file ScopedPrinter.h.

◆ DILineInfoTable

using llvm::DILineInfoTable = typedef SmallVector<std::pair<uint64_t, DILineInfo>, 16>

Definition at line 75 of file DIContext.h.

◆ DINodeRef

Definition at line 98 of file DebugInfoMetadata.h.

◆ DIScopeRef

Definition at line 99 of file DebugInfoMetadata.h.

◆ DITypeRef

Definition at line 100 of file DebugInfoMetadata.h.

◆ DomTreeBase

template<typename T >
using llvm::DomTreeBase = typedef DominatorTreeBase<T, false>

Definition at line 859 of file GenericDomTree.h.

◆ DomTreeNode

Definition at line 75 of file Dominators.h.

◆ DWARFAddressRangesVector

using llvm::DWARFAddressRangesVector = typedef std::vector<DWARFAddressRange>

DWARFAddressRangesVector - represents a set of absolute address ranges.

Definition at line 64 of file DWARFAddressRange.h.

◆ ExceptionSymbolProvider

typedef MCSymbol* llvm::ExceptionSymbolProvider(AsmPrinter *Asm)

Definition at line 28 of file AsmPrinterHandler.h.

◆ fatal_error_handler_t

typedef void(* llvm::fatal_error_handler_t) (void *user_data, const std::string &reason, bool gen_crash_diag)

An error handler callback.

Definition at line 26 of file ErrorHandling.h.

◆ filter_iterator

template<typename WrappedIteratorT , typename PredicateT >
using llvm::filter_iterator = typedef filter_iterator_impl< WrappedIteratorT, PredicateT, typename detail::fwd_or_bidi_tag<WrappedIteratorT>::type>

Defines filter_iterator to a suitable specialization of filter_iterator_impl, based on the underlying iterator's category.

Definition at line 417 of file STLExtras.h.

◆ FoldingSetNode

Definition at line 359 of file FoldingSet.h.

◆ ForwardIDFCalculator

Definition at line 98 of file IteratedDominanceFrontier.h.

◆ function_interval_iterator

Definition at line 245 of file IntervalIterator.h.

◆ FunctionAnalysisManager

Convenience typedef for the Function analysis manager.

Definition at line 1019 of file PassManager.h.

◆ FunctionAnalysisManagerLoopProxy

A proxy from a FunctionAnalysisManager to a Loop.

Definition at line 154 of file LoopAnalysisManager.h.

◆ FunctionAnalysisManagerModuleProxy

Provide the FunctionAnalysisManager to Module proxy.

Definition at line 1121 of file PassManager.h.

◆ FunctionCreator

using llvm::FunctionCreator = typedef std::function<void *(const std::string &)>

Definition at line 95 of file ExecutionEngine.h.

◆ FunctionPassManager

Convenience typedef for a pass manager over functions.

Definition at line 568 of file PassManager.h.

◆ FunctionRPOT

Definition at line 128 of file SyncDependenceAnalysis.cpp.

◆ FuzzerInitFun

using llvm::FuzzerInitFun = typedef int (*)(int *argc, char ***argv)

Definition at line 45 of file FuzzerCLI.h.

◆ FuzzerTestFun

using llvm::FuzzerTestFun = typedef int (*)(const uint8_t *Data, size_t Size)

Definition at line 44 of file FuzzerCLI.h.

◆ GCMetadataPrinterRegistry

GCMetadataPrinterRegistry - The GC assembly printer registry uses all the defaults from Registry.

Definition at line 36 of file GCMetadataPrinter.h.

◆ GCRegistry

Subclasses of GCStrategy are made available for use during compilation by adding them to the global GCRegistry.

This can done either within the LLVM source tree or via a loadable plugin. An example registeration would be: static GCRegistry::Add<CustomGC> X("custom-name", "my custom supper fancy gc strategy");

Note that to use a custom GCMetadataPrinter w/gc.roots, you must also register your GCMetadataPrinter subclass with the GCMetadataPrinterRegistery as well.

Definition at line 133 of file GCStrategy.h.

◆ gep_type_iterator

Definition at line 126 of file GetElementPtrTypeIterator.h.

◆ GlobalValueSummaryList

using llvm::GlobalValueSummaryList = typedef std::vector<std::unique_ptr<GlobalValueSummary> >

Definition at line 121 of file ModuleSummaryIndex.h.

◆ GlobalValueSummaryMapTy

Map from global value GUID to corresponding summary structures.

Use a std::map rather than a DenseMap so that pointers to the map's value_type (which are used by ValueInfo) are not invalidated by insertion. Also it will likely incur less overhead, as the value type is not very small and the size of the map is unknown, resulting in inefficiencies due to repeated insertions and resizing.

Definition at line 161 of file ModuleSummaryIndex.h.

◆ GraphDiffInvBBPair

using llvm::GraphDiffInvBBPair = typedef std::pair<const GraphDiff<BasicBlock *> *, Inverse<BasicBlock *> >

Definition at line 68 of file MemorySSAUpdater.h.

◆ gvsummary_iterator

using llvm::gvsummary_iterator = typedef GlobalValueSummaryMapTy::iterator

Definition at line 778 of file ModuleSummaryIndex.h.

◆ GVSummaryMapTy

Map of global value GUID to its summary, used to identify values defined in a particular module, and provide efficient access to their summary.

Definition at line 787 of file ModuleSummaryIndex.h.

◆ HoistingPointInfo

using llvm::HoistingPointInfo = typedef std::pair<BasicBlock *, SmallVecInsn>

Definition at line 124 of file GVNHoist.cpp.

◆ HoistingPointList

Definition at line 126 of file GVNHoist.cpp.

◆ IdxMBBPair

using llvm::IdxMBBPair = typedef std::pair<SlotIndex, MachineBasicBlock *>

Definition at line 312 of file SlotIndexes.h.

◆ ilist

template<class T , class... Options>
using llvm::ilist = typedef iplist<T, Options...>

Definition at line 407 of file ilist.h.

◆ IndexAttrPair

using llvm::IndexAttrPair = typedef std::pair<unsigned, AttributeSet>

Definition at line 209 of file AttributeImpl.h.

◆ InsnRange

using llvm::InsnRange = typedef std::pair<const MachineInstr *, const MachineInstr *>

InsnRange - This is used to track range of instructions with identical lexical scope.

Definition at line 40 of file LexicalScopes.h.

◆ inst_iterator

Definition at line 124 of file InstIterator.h.

◆ inst_range

Definition at line 129 of file InstIterator.h.

◆ interval_part_interval_iterator

Definition at line 247 of file IntervalIterator.h.

◆ InValuesType

using llvm::InValuesType = typedef DenseMap<BasicBlock *, SmallVector<std::pair<VNType, Instruction *>, 2> >

Definition at line 160 of file GVNHoist.cpp.

◆ JITTargetAddress

using llvm::JITTargetAddress = typedef uint64_t

Represents an address in the target process's address space.

Definition at line 41 of file JITSymbol.h.

◆ LargestSDNode

A representation of the largest SDNode, for use in sizeof().

This needs to be a union because the largest node differs on 32 bit systems with 4 and 8 byte pointer alignment, respectively.

Definition at line 2408 of file SelectionDAGNodes.h.

◆ LegalityPredicate

Definition at line 163 of file LegalizerInfo.h.

◆ LegalizeMutation

Definition at line 165 of file LegalizerInfo.h.

◆ ListScope

using llvm::ListScope = typedef DelimitedScope<'[', ']'>

Definition at line 385 of file ScopedPrinter.h.

◆ LiveVirtRegBitSet

Definition at line 36 of file LiveIntervalUnion.h.

◆ LoadStorePair

using llvm::LoadStorePair = typedef std::pair<Instruction *, Instruction *>

Definition at line 31 of file InstrProfiling.h.

◆ LoopAnalysisManager

The loop analysis manager.

See the documentation for the AnalysisManager template for detail documentation. This typedef serves as a convenient way to refer to this construct in the adaptors and proxies used to integrate this into the larger pass manager infrastructure.

Definition at line 79 of file LoopAnalysisManager.h.

◆ LoopAnalysisManagerFunctionProxy

A proxy from a LoopAnalysisManager to a Function.

Definition at line 83 of file LoopAnalysisManager.h.

◆ LoopPassManager

The Loop pass manager.

See the documentation for the PassManager template for details. It runs a sequence of Loop passes over each Loop that the manager is run over. This typedef serves as a convenient way to refer to this construct.

Definition at line 81 of file LoopPassManager.h.

◆ LoopToScevMapT

Definition at line 725 of file ScalarEvolutionExpressions.h.

◆ MachineDomTreeNode

Definition at line 41 of file MachineDominators.h.

◆ MBBOrBasicBlock

Definition at line 39 of file WinEHFuncInfo.h.

◆ MBFIDOTGraphTraitsBase

Definition at line 114 of file MachineBlockFrequencyInfo.cpp.

◆ MCAsmMacroParameters

Definition at line 143 of file MCAsmMacro.h.

◆ MCLOHArgs

Definition at line 182 of file MCLinkerOptimizationHint.h.

◆ MCLOHDirectives

Definition at line 183 of file MCLinkerOptimizationHint.h.

◆ MCPFRange

Definition at line 25 of file MCCodePadder.h.

◆ MCPhysReg

using llvm::MCPhysReg = typedef uint16_t

An unsigned integer type large enough to represent all physical registers, but not necessarily virtual registers.

Definition at line 30 of file MCRegisterInfo.h.

◆ MCSectionSubPair

using llvm::MCSectionSubPair = typedef std::pair<MCSection *, const MCExpr *>

Definition at line 57 of file MCStreamer.h.

◆ memoryaccess_def_iterator

Definition at line 129 of file MemorySSA.h.

◆ MemoryAccessPair

using llvm::MemoryAccessPair = typedef std::pair<MemoryAccess *, MemoryLocation>

Definition at line 1068 of file MemorySSA.h.

◆ ModuleAnalysisManager

Convenience typedef for the Module analysis manager.

Definition at line 1014 of file PassManager.h.

◆ ModuleAnalysisManagerCGSCCProxy

A proxy from a ModuleAnalysisManager to an SCC.

Definition at line 215 of file CGSCCPassManager.h.

◆ ModuleAnalysisManagerFunctionProxy

Provide the ModuleAnalysisManager to Function proxy.

Definition at line 1250 of file PassManager.h.

◆ ModuleHash

using llvm::ModuleHash = typedef std::array<uint32_t, 5>

160 bits SHA1

Definition at line 774 of file ModuleSummaryIndex.h.

◆ ModulePassManager

Convenience typedef for a pass manager over modules.

Definition at line 563 of file PassManager.h.

◆ ModulePathStringTableTy

using llvm::ModulePathStringTableTy = typedef StringMap<std::pair<uint64_t, ModuleHash> >

String table to hold/own module path strings, which additionally holds the module ID assigned to each module during the plugin step, as well as a hash of the module.

The StringMap makes a copy of and owns inserted strings.

Definition at line 783 of file ModuleSummaryIndex.h.

◆ MostAlignedSDNode

The SDNode class with the greatest alignment requirement.

Definition at line 2411 of file SelectionDAGNodes.h.

◆ Name2RegBankMap

Definition at line 47 of file MIParser.h.

◆ Name2RegClassMap

Definition at line 46 of file MIParser.h.

◆ NewLoopsMap

using llvm::NewLoopsMap = typedef SmallDenseMap<const Loop *, Loop *, 4>

Definition at line 36 of file UnrollLoop.h.

◆ NormalizePredTy

Definition at line 51 of file ScalarEvolutionNormalization.h.

◆ once_flag

typedef std::once_flag llvm::once_flag

Definition at line 70 of file Threading.h.

◆ OnDiskHashTableImplV3

Definition at line 349 of file InstrProfReader.h.

◆ OperandBundleDef

Definition at line 993 of file InstrTypes.h.

◆ OperandVector

using llvm::OperandVector = typedef SmallVectorImpl<std::unique_ptr<MCParsedAsmOperand> >

Definition at line 32 of file MCTargetAsmParser.h.

◆ OutValuesType

Definition at line 158 of file GVNHoist.cpp.

◆ PBQPRAGraph

Definition at line 34 of file PBQPRAConstraint.h.

◆ PhiToDefMap

Definition at line 65 of file MemorySSAUpdater.h.

◆ PointerTy

using llvm::PointerTy = typedef void *

Definition at line 22 of file GenericValue.h.

◆ PostDomTreeBase

template<typename T >
using llvm::PostDomTreeBase = typedef DominatorTreeBase<T, true>

Definition at line 862 of file GenericDomTree.h.

◆ PostIncLoopSet

Definition at line 47 of file ScalarEvolutionNormalization.h.

◆ pred_const_range

Definition at line 107 of file CFG.h.

◆ pred_iterator

Definition at line 103 of file CFG.h.

◆ pred_range

Definition at line 106 of file CFG.h.

◆ RandomEngine

using llvm::RandomEngine = typedef std::mt19937

Definition at line 24 of file RandomIRBuilder.h.

◆ RawInstrProfReader32

Definition at line 270 of file InstrProfReader.h.

◆ RawInstrProfReader64

Definition at line 271 of file InstrProfReader.h.

◆ Reg2SUnitsMap

Use a SparseMultiSet to track physical registers.

Storage is only allocated once for the pass. It can be cleared in constant time and reused without any frees.

Definition at line 90 of file ScheduleDAGInstrs.h.

◆ RegClassOrRegBank

Convenient type to represent either a register class or a register bank.

Definition at line 48 of file MachineRegisterInfo.h.

◆ RelocAddrMap

using llvm::RelocAddrMap = typedef DenseMap<uint64_t, RelocAddrEntry>

In place of applying the relocations to the data we've read from disk we use a separate mapping table to the side and checking that at locations in the dwarf where we expect relocated values.

This adds a bit of complexity to the dwarf parsing/extraction at the benefit of not allocating memory for the entire size of the debug info sections.

Definition at line 30 of file DWARFRelocMap.h.

◆ RequireAnalysisLoopPass

template<typename AnalysisT >
using llvm::RequireAnalysisLoopPass = typedef RequireAnalysisPass<AnalysisT, Loop, LoopAnalysisManager, LoopStandardAnalysisResults &, LPMUpdater &>

An alias template to easily name a require analysis loop pass.

Definition at line 103 of file LoopPassManager.h.

◆ ReverseIDFCalculator

Definition at line 99 of file IteratedDominanceFrontier.h.

◆ RTDyldSymbolTable

Definition at line 240 of file RuntimeDyldImpl.h.

◆ ScopedCommonHandle

Definition at line 173 of file WindowsSupport.h.

◆ ScopedCryptContext

Definition at line 175 of file WindowsSupport.h.

◆ ScopedFileHandle

Definition at line 174 of file WindowsSupport.h.

◆ ScopedFindHandle

Definition at line 177 of file WindowsSupport.h.

◆ ScopedJobHandle

Definition at line 178 of file WindowsSupport.h.

◆ ScopedRegHandle

Definition at line 176 of file WindowsSupport.h.

◆ SectionAddrMap

using llvm::SectionAddrMap = typedef DenseMap<const MCSection *, uint64_t>

Definition at line 32 of file MCExpr.h.

◆ ShouldSchedulePredTy

Check if the instr pair, FirstMI and SecondMI, should be fused together.

Given SecondMI, when FirstMI is unspecified, then check if SecondMI may be part of a fused pair at all.

Definition at line 34 of file MacroFusion.h.

◆ SizeOffsetEvalType

using llvm::SizeOffsetEvalType = typedef std::pair<Value *, Value *>

Definition at line 249 of file MemoryBuiltins.h.

◆ SizeOffsetType

using llvm::SizeOffsetType = typedef std::pair<APInt, APInt>

Definition at line 190 of file MemoryBuiltins.h.

◆ SmallVecImplInsn

Definition at line 120 of file GVNHoist.cpp.

◆ SmallVecInsn

Definition at line 119 of file GVNHoist.cpp.

◆ StackSafetyGlobalInfo

Definition at line 76 of file StackSafetyAnalysis.h.

◆ succ_const_iterator

Definition at line 246 of file CFG.h.

◆ succ_const_range

Definition at line 248 of file CFG.h.

◆ succ_iterator

Definition at line 245 of file CFG.h.

◆ succ_range

Definition at line 247 of file CFG.h.

◆ SummaryEntryVector

using llvm::SummaryEntryVector = typedef std::vector<ProfileSummaryEntry>

Definition at line 42 of file ProfileSummary.h.

◆ TableGenMainFn

using llvm::TableGenMainFn = typedef bool (raw_ostream &OS, RecordKeeper &Records)

Perform the action using Records, and write output to OS.

Returns true on error, false otherwise.

Definition at line 24 of file Main.h.

◆ thread

typedef std::thread llvm::thread

Definition at line 27 of file thread.h.

◆ TrackingMDNodeRef

Definition at line 142 of file TrackingMDRef.h.

◆ TrackingValueAsMetadataRef

Definition at line 143 of file TrackingMDRef.h.

◆ TypeGetter

Definition at line 58 of file IRMutator.h.

◆ TypeIdSummaryMapTy

using llvm::TypeIdSummaryMapTy = typedef std::multimap<GlobalValue::GUID, std::pair<std::string, TypeIdSummary> >

Map of a type GUID to type id string and summary (multimap used in case of GUID conflicts).

Definition at line 792 of file ModuleSummaryIndex.h.

◆ uint24_t

using llvm::uint24_t = typedef Uint24

Definition at line 33 of file DataExtractor.h.

◆ UnderlyingObjectsVector

Definition at line 116 of file ScheduleDAGInstrs.h.

◆ unique_value

using llvm::unique_value = typedef std::unique_ptr<Value, ValueDeleter>

Use this instead of std::unique_ptr<Value> or std::unique_ptr<Instruction>.

Those don't work because Value and Instruction's destructors are protected, aren't virtual, and won't destroy the complete object.

Definition at line 664 of file Value.h.

◆ UseListOrderStack

using llvm::UseListOrderStack = typedef std::vector<UseListOrder>

Definition at line 40 of file UseListOrder.h.

◆ UTF16

typedef unsigned short llvm::UTF16

Definition at line 111 of file ConvertUTF.h.

◆ UTF32

typedef unsigned int llvm::UTF32

Definition at line 110 of file ConvertUTF.h.

◆ UTF8

Definition at line 112 of file ConvertUTF.h.

◆ Value2VPValueTy

Definition at line 125 of file VPlanValue.h.

◆ ValueName

using llvm::ValueName = typedef StringMapEntry<Value *>

Definition at line 54 of file Value.h.

◆ ValuePlaneTy

typedef std::vector<GenericValue> llvm::ValuePlaneTy

Definition at line 56 of file Interpreter.h.

◆ ValueToValueMap

Definition at line 693 of file ScalarEvolutionExpressions.h.

◆ ValueToValueMapTy

Definition at line 64 of file MemorySSAUpdater.h.

◆ ValueToVReg

Map a value to a virtual register.

For now, we chose to map aggregate types to on single virtual register. This might be revisited if it turns out to be inefficient. PR26161 tracks that. Note: We need to expose this type to the target hooks for thing like ABI lowering that would be used during IRTranslation.

Definition at line 30 of file Types.h.

◆ ValueType

Definition at line 106 of file ScheduleDAGInstrs.h.

◆ VNtoInsns

Definition at line 131 of file GVNHoist.cpp.

◆ VNType

using llvm::VNType = typedef std::pair<unsigned, unsigned>

Definition at line 129 of file GVNHoist.cpp.

◆ VPDominatorTree

Template specialization of the standard LLVM dominator tree utility for VPBlockBases.

Definition at line 27 of file VPlanDominatorTree.h.

◆ VPDomTreeNode

Definition at line 29 of file VPlanDominatorTree.h.

◆ VPlanPtr

using llvm::VPlanPtr = typedef std::unique_ptr<VPlan>

Definition at line 76 of file VPlan.h.

◆ VPLoopInfo

VPLoopInfo provides analysis of natural loop for VPBlockBase-based Hierarchical CFG.

It is a specialization of LoopInfoBase class.

Definition at line 41 of file VPlanLoopInfo.h.

◆ VPValue2ValueTy

Definition at line 126 of file VPlanValue.h.

◆ VReg2SUnitMap

Use SparseSet as a SparseMap by relying on the fact that it never compares ValueT's, only unsigned keys.

This allows the set to be cleared between scheduling regions in constant time as long as ValueT does not require a destructor.

Definition at line 96 of file ScheduleDAGInstrs.h.

◆ VReg2SUnitMultiMap

Track local uses of virtual registers.

These uses are gathered by the DAG builder and may be consulted by the scheduler to avoid iterating an entire vreg use list.

Definition at line 101 of file ScheduleDAGInstrs.h.

◆ VReg2SUnitOperIdxMultiMap

Definition at line 104 of file ScheduleDAGInstrs.h.

Enumeration Type Documentation

◆ anonymous enum

anonymous enum
Enumerator
GIM_Try 

Begin a try-block to attempt a match and jump to OnFail if it is unsuccessful.

  • OnFail - The MatchTable entry at which to resume if the match fails.

FIXME: This ought to take an argument indicating the number of try-blocks to exit on failure. It's usually one but the last match attempt of a block will need more. The (implemented) alternative is to tack a GIM_Reject on the end of each try-block which is simpler but requires an extra opcode and iteration in the interpreter on each failed match.

GIM_SwitchOpcode 

Switch over the opcode on the specified instruction.

  • InsnID - Instruction ID
  • LowerBound - numerically minimum opcode supported
  • UpperBound - numerically maximum + 1 opcode supported
  • Default - failure jump target
  • JumpTable... - (UpperBound - LowerBound) (at least 2) jump targets
GIM_SwitchType 

Switch over the LLT on the specified instruction operand.

  • InsnID - Instruction ID
  • OpIdx - Operand index
  • LowerBound - numerically minimum Type ID supported
  • UpperBound - numerically maximum + 1 Type ID supported
  • Default - failure jump target
  • JumpTable... - (UpperBound - LowerBound) (at least 2) jump targets
GIM_RecordInsn 

Record the specified instruction.

GIM_CheckFeatures 

Check the feature bits.

GIM_CheckOpcode 

Check the opcode on the specified instruction.

GIM_CheckNumOperands 

Check the instruction has the right number of operands.

GIM_CheckI64ImmPredicate 

Check an immediate predicate on the specified instruction.

GIM_CheckAPIntImmPredicate 

Check an immediate predicate on the specified instruction via an APInt.

GIM_CheckAPFloatImmPredicate 

Check a floating point immediate predicate on the specified instruction.

GIM_CheckAtomicOrdering 

Check a memory operation has the specified atomic ordering.

  • InsnID - Instruction ID
  • Ordering - The AtomicOrdering value
GIM_CheckAtomicOrderingOrStrongerThan 
GIM_CheckAtomicOrderingWeakerThan 
GIM_CheckMemorySizeEqualTo 

Check the size of the memory access for the given machine memory operand.

  • InsnID - Instruction ID
  • MMOIdx - MMO index
  • Size - The size in bytes of the memory access
GIM_CheckMemorySizeEqualToLLT 

Check the size of the memory access for the given machine memory operand against the size of an operand.

  • InsnID - Instruction ID
  • MMOIdx - MMO index
  • OpIdx - The operand index to compare the MMO against
GIM_CheckMemorySizeLessThanLLT 
GIM_CheckMemorySizeGreaterThanLLT 
GIM_CheckCxxInsnPredicate 

Check a generic C++ instruction predicate.

  • InsnID - Instruction ID
  • PredicateID - The ID of the predicate function to call
GIM_CheckType 

Check the type for the specified operand.

GIM_CheckPointerToAny 

Check the type of a pointer to any address space.

  • InsnID - Instruction ID
  • OpIdx - Operand index
  • SizeInBits - The size of the pointer value in bits.
GIM_CheckRegBankForClass 

Check the register bank for the specified operand.

  • InsnID - Instruction ID
  • OpIdx - Operand index
  • Expected register bank (specified as a register class)
GIM_CheckComplexPattern 

Check the operand matches a complex predicate.

  • InsnID - Instruction ID
  • OpIdx - Operand index
  • RendererID - The renderer to hold the result
  • Complex predicate ID
GIM_CheckConstantInt 

Check the operand is a specific integer.

GIM_CheckLiteralInt 

Check the operand is a specific literal integer (i.e.

MO.isImm() or MO.isCImm() is true).

GIM_CheckIntrinsicID 

Check the operand is a specific intrinsic ID.

GIM_CheckIsMBB 

Check the specified operand is an MBB.

GIM_CheckIsSafeToFold 

Check if the specified operand is safe to fold into the current instruction.

GIM_CheckIsSameOperand 

Check the specified operands are identical.

  • InsnID - Instruction ID
  • OpIdx - Operand index
  • OtherInsnID - Other instruction ID
  • OtherOpIdx - Other operand index
GIM_Reject 

Fail the current try-block, or completely fail to match if there is no current try-block.

GIR_MutateOpcode 

Mutate an instruction.

GIR_BuildMI 

Build a new instruction.

  • InsnID - Instruction ID to define
  • Opcode - The new opcode to use
GIR_Copy 

Copy an operand to the specified instruction.

GIR_CopyOrAddZeroReg 

Copy an operand to the specified instruction or add a zero register if the operand is a zero immediate.

  • NewInsnID - Instruction ID to modify
  • OldInsnID - Instruction ID to copy from
  • OpIdx - The operand to copy
  • ZeroReg - The zero register to use
GIR_CopySubReg 

Copy an operand to the specified instruction.

  • NewInsnID - Instruction ID to modify
  • OldInsnID - Instruction ID to copy from
  • OpIdx - The operand to copy
  • SubRegIdx - The subregister to copy
GIR_AddImplicitDef 

Add an implicit register def to the specified instruction.

  • InsnID - Instruction ID to modify
  • RegNum - The register to add
GIR_AddImplicitUse 

Add an implicit register use to the specified instruction.

  • InsnID - Instruction ID to modify
  • RegNum - The register to add
GIR_AddRegister 

Add an register to the specified instruction.

  • InsnID - Instruction ID to modify
  • RegNum - The register to add
GIR_AddTempRegister 

Add a temporary register to the specified instruction.

  • InsnID - Instruction ID to modify
  • TempRegID - The temporary register ID to add
  • TempRegFlags - The register flags to set
GIR_AddImm 

Add an immediate to the specified instruction.

  • InsnID - Instruction ID to modify
  • Imm - The immediate to add
GIR_ComplexRenderer 

Render complex operands to the specified instruction.

  • InsnID - Instruction ID to modify
  • RendererID - The renderer to call
GIR_ComplexSubOperandRenderer 

Render sub-operands of complex operands to the specified instruction.

  • InsnID - Instruction ID to modify
  • RendererID - The renderer to call
  • RenderOpID - The suboperand to render.
GIR_CustomRenderer 

Render operands to the specified instruction using a custom function.

  • InsnID - Instruction ID to modify
  • OldInsnID - Instruction ID to get the matched operand from
  • RendererFnID - Custom renderer function to call
GIR_CopyConstantAsSImm 

Render a G_CONSTANT operator as a sign-extended immediate.

  • NewInsnID - Instruction ID to modify
  • OldInsnID - Instruction ID to copy from The operand index is implicitly 1.
GIR_CopyFConstantAsFPImm 

Render a G_FCONSTANT operator as a sign-extended immediate.

  • NewInsnID - Instruction ID to modify
  • OldInsnID - Instruction ID to copy from The operand index is implicitly 1.
GIR_ConstrainOperandRC 

Constrain an instruction operand to a register class.

  • InsnID - Instruction ID to modify
  • OpIdx - Operand index
  • RCEnum - Register class enumeration value
GIR_ConstrainSelectedInstOperands 

Constrain an instructions operands according to the instruction description.

GIR_MergeMemOperands 

Merge all memory operands into instruction.

  • InsnID - Instruction ID to modify
  • MergeInsnID... - One or more Instruction ID to merge into the result.
  • GIU_MergeMemOperands_EndOfList - Terminates the list of instructions to merge.
GIR_EraseFromParent 

Erase from parent.

GIR_MakeTempReg 

Create a new temporary register that's not constrained.

  • TempRegID - The temporary register ID to initialize.
  • Expected type
GIR_Done 

A successful emission.

GIR_Coverage 

Increment the rule coverage counter.

  • RuleID - The ID of the rule that was covered.
GIU_NumOpcodes 

Keeping track of the number of the GI opcodes. Must be the last entry.

Definition at line 71 of file InstructionSelector.h.

◆ anonymous enum

anonymous enum
Enumerator
GIU_MergeMemOperands_EndOfList 

Indicates the end of the variable-length MergeInsnID list in a GIR_MergeMemOperands opcode.

Definition at line 338 of file InstructionSelector.h.

◆ anonymous enum

anonymous enum

GlobalISel PatFrag Predicates.

Enumerator
GIPFP_I64_Invalid 
GIPFP_APInt_Invalid 
GIPFP_APFloat_Invalid 
GIPFP_MI_Invalid 

Definition at line 40 of file InstructionSelectorImpl.h.

◆ anonymous enum

anonymous enum : int

This is a llvm local version of __cxa_demangle.

Other than the name and being in the llvm namespace it is identical.

The mangled_name is demangled into buf and returned. If the buffer is not large enough, realloc is used to expand it.

The *status will be set to a value from the following enumeration

Enumerator
demangle_unknown_error 
demangle_invalid_args 
demangle_invalid_mangled_name 
demangle_memory_alloc_failure 
demangle_success 

Definition at line 23 of file Demangle.h.

◆ anonymous enum

anonymous enum
Enumerator
kSanitizerStatKindBits 

Definition at line 23 of file SanitizerStats.h.

◆ anonymous enum

anonymous enum : unsigned
Enumerator
INVALID_MEMORYACCESS_ID 

Definition at line 122 of file MemorySSA.h.

◆ anonymous enum

anonymous enum
Enumerator
SM_SentinelUndef 
SM_SentinelZero 

Definition at line 28 of file X86ShuffleDecode.h.

◆ anonymous enum

anonymous enum
Enumerator
TB_INDEX_0 
TB_INDEX_1 
TB_INDEX_2 
TB_INDEX_3 
TB_INDEX_4 
TB_INDEX_MASK 
TB_NO_REVERSE 
TB_NO_FORWARD 
TB_FOLDED_LOAD 
TB_FOLDED_STORE 
TB_ALIGN_SHIFT 
TB_ALIGN_NONE 
TB_ALIGN_16 
TB_ALIGN_32 
TB_ALIGN_64 
TB_ALIGN_MASK 

Definition at line 21 of file X86InstrFoldTables.h.

◆ anonymous enum

anonymous enum : unsigned
Enumerator
InvalidVN 

Definition at line 164 of file GVNHoist.cpp.

◆ AArch64FrameOffsetStatus

Use to report the frame offset status in isAArch64FrameOffsetLegal.

Enumerator
AArch64FrameOffsetCannotUpdate 

Offset cannot apply.

AArch64FrameOffsetIsLegal 

Offset is legal.

AArch64FrameOffsetCanUpdate 

Offset can apply, at least partly.

Definition at line 294 of file AArch64InstrInfo.h.

◆ AccelTableKind

enum llvm::AccelTableKind
strong

The kind of accelerator tables we should emit.

Enumerator
Default 

Platform default.

None 

None.

Apple 

.apple_names, .apple_namespaces, .apple_types, .apple_objc.

Dwarf 

DWARF v5 .debug_names.

Definition at line 273 of file DwarfDebug.h.

◆ AddressSpace

Enumerator
ADDRESS_SPACE_GENERIC 
ADDRESS_SPACE_GLOBAL 
ADDRESS_SPACE_SHARED 
ADDRESS_SPACE_CONST 
ADDRESS_SPACE_LOCAL 
ADDRESS_SPACE_PARAM 

Definition at line 22 of file NVPTXBaseInfo.h.

◆ AliasResult

enum llvm::AliasResult : uint8_t

The possible results of an alias query.

These results are always computed between two MemoryLocation objects as a query to some alias analysis.

Note that these are unscoped enumerations because we would like to support implicitly testing a result for the existence of any possible aliasing with a conversion to bool, but an "enum class" doesn't support this. The canonical names from the literature are suffixed and unique anyways, and so they serve as global constants in LLVM for these results.

See docs/AliasAnalysis.html for more information on the specific meanings of these values.

Enumerator
NoAlias 

The two locations do not alias at all.

This value is arranged to convert to false, while all other values convert to true. This allows a boolean context to convert the result to a binary flag indicating whether there is the possibility of aliasing.

MayAlias 

The two locations may or may not alias. This is the least precise result.

PartialAlias 

The two locations alias, but only due to a partial overlap.

MustAlias 

The two locations precisely alias each other.

Definition at line 78 of file AliasAnalysis.h.

◆ AlignStyle

enum llvm::AlignStyle
strong
Enumerator
Left 
Center 
Right 

Definition at line 18 of file FormatCommon.h.

◆ AlignTypeEnum

Enum used to categorize the alignment types stored by LayoutAlignElem.

Enumerator
INVALID_ALIGN 
INTEGER_ALIGN 
VECTOR_ALIGN 
FLOAT_ALIGN 
AGGREGATE_ALIGN 

Definition at line 51 of file DataLayout.h.

◆ AsmRewriteKind

Enumerator
AOK_Align 
AOK_EVEN 
AOK_Emit 
AOK_Input 
AOK_Output 
AOK_SizeDirective 
AOK_Label 
AOK_EndOfStatement 
AOK_Skip 
AOK_IntelExpr 

Definition at line 34 of file MCTargetAsmParser.h.

◆ AtomicOrdering

enum llvm::AtomicOrdering
strong

Atomic ordering for LLVM's memory model.

C++ defines ordering as a lattice. LLVM supplements this with NotAtomic and Unordered, which are both below the C++ orders.

not_atomic–>unordered–>relaxed–>release------------—>acq_rel–>seq_cst -->consume–>acquire–/

Enumerator
NotAtomic 
Unordered 
Monotonic 
Acquire 
Release 
AcquireRelease 
SequentiallyConsistent 

Definition at line 57 of file AtomicOrdering.h.

◆ AtomicOrderingCABI

Atomic ordering for C11 / C++11's memody models.

These values cannot change because they are shared with standard library implementations as well as with other compilers.

Enumerator
relaxed 
consume 
acquire 
release 
acq_rel 
seq_cst 

Definition at line 29 of file AtomicOrdering.h.

◆ BinaryStreamFlags

Enumerator
BSF_None 
BSF_Write 
BSF_Append 

Definition at line 22 of file BinaryStream.h.

◆ BitcodeError

enum llvm::BitcodeError
strong
Enumerator
CorruptedBitcode 

Definition at line 260 of file BitcodeReader.h.

◆ CfiFunctionLinkage

The type of CFI jumptable needed for a function.

Enumerator
CFL_Definition 
CFL_Declaration 
CFL_WeakDeclaration 

Definition at line 26 of file TypeMetadataUtils.h.

◆ ClrHandlerType

enum llvm::ClrHandlerType
strong
Enumerator
Catch 
Finally 
Fault 
Filter 

Definition at line 80 of file WinEHFuncInfo.h.

◆ CombineLevel

Enumerator
BeforeLegalizeTypes 
AfterLegalizeTypes 
AfterLegalizeVectorOps 
AfterLegalizeDAG 

Definition at line 16 of file DAGCombine.h.

◆ ConversionFlags

Enumerator
strictConversion 
lenientConversion 

Definition at line 134 of file ConvertUTF.h.

◆ ConversionResult

Enumerator
conversionOK 
sourceExhausted 
targetExhausted 
sourceIllegal 

Definition at line 127 of file ConvertUTF.h.

◆ DebugCompressionType

Enumerator
None 
GNU 

No compression.

zlib-gnu style compression

Definition at line 27 of file MCTargetOptions.h.

◆ DebuggerKind

enum llvm::DebuggerKind
strong

Identify a debugger for "tuning" the debug info.

The "debugger tuning" concept allows us to present a more intuitive interface that unpacks into different sets of defaults for the various individual feature-flag settings, that suit the preferences of the various debuggers. However, it's worth remembering that debuggers are not the only consumers of debug info, and some variations in DWARF might better be treated as target/platform issues. Fundamentally, o if the feature is useful (or not) to a particular debugger, regardless of the target, that's a tuning decision; o if the feature is useful (or not) on a particular platform, regardless of the debugger, that's a target decision. It's not impossible to see both factors in some specific case.

The "tuning" should be used to set defaults for individual feature flags in DwarfDebug; if a given feature has a more specific command-line option, that option should take precedence over the tuning.

Enumerator
Default 
GDB 
LLDB 
SCE 

Definition at line 92 of file TargetOptions.h.

◆ DiagnosticKind

Defines the different supported kind of a diagnostic.

This enum should be extended with a new ID for each added concrete subclass.

Enumerator
DK_InlineAsm 
DK_ResourceLimit 
DK_StackSize 
DK_Linker 
DK_DebugMetadataVersion 
DK_DebugMetadataInvalid 
DK_ISelFallback 
DK_SampleProfile 
DK_OptimizationRemark 
DK_OptimizationRemarkMissed 
DK_OptimizationRemarkAnalysis 
DK_OptimizationRemarkAnalysisFPCommute 
DK_OptimizationRemarkAnalysisAliasing 
DK_OptimizationFailure 
DK_FirstRemark 
DK_LastRemark 
DK_MachineOptimizationRemark 
DK_MachineOptimizationRemarkMissed 
DK_MachineOptimizationRemarkAnalysis 
DK_FirstMachineRemark 
DK_LastMachineRemark 
DK_MIRParser 
DK_PGOProfile 
DK_Unsupported 
DK_FirstPluginKind 

Definition at line 54 of file DiagnosticInfo.h.

◆ DiagnosticPredicateTy

Enumerator
Match 
NearMatch 
NoMatch 

Definition at line 137 of file MCTargetAsmParser.h.

◆ DiagnosticSeverity

Defines the different supported severity of a diagnostic.

Enumerator
DS_Error 
DS_Warning 
DS_Remark 
DS_Note 

Definition at line 43 of file DiagnosticInfo.h.

◆ DIDumpType

Selects which debug sections get dumped.

Enumerator
DIDT_Null 
DIDT_All 
DIDT_UUID 

Definition at line 147 of file DIContext.h.

◆ DIDumpTypeCounter

This is just a helper to programmatically construct DIDumpType.

Enumerator
DIDT_ID_UUID 
DIDT_ID_Count 

Definition at line 136 of file DIContext.h.

◆ DINameKind

enum llvm::DINameKind
strong

A DINameKind is passed to name search methods to specify a preference regarding the type of name resolution the caller wants.

Enumerator
None 
ShortName 
LinkageName 

Definition at line 119 of file DIContext.h.

◆ DWARFSectionKind

Enumerator
DW_SECT_INFO 
DW_SECT_TYPES 
DW_SECT_ABBREV 
DW_SECT_LINE 
DW_SECT_LOC 
DW_SECT_STR_OFFSETS 
DW_SECT_MACINFO 
DW_SECT_MACRO 

Definition at line 23 of file DWARFUnitIndex.h.

◆ EABI

enum llvm::EABI
strong
Enumerator
Unknown 
Default 
EABI4 
EABI5 
GNU 

Definition at line 67 of file TargetOptions.h.

◆ EHPersonality

enum llvm::EHPersonality
strong
Enumerator
Unknown 
GNU_Ada 
GNU_C 
GNU_C_SjLj 
GNU_CXX 
GNU_CXX_SjLj 
GNU_ObjC 
MSVC_X86SEH 
MSVC_Win64SEH 
MSVC_CXX 
CoreCLR 
Rust 
Wasm_CXX 

Definition at line 23 of file EHPersonalities.h.

◆ errc

enum llvm::errc
strong
Enumerator
argument_list_too_long 
argument_out_of_domain 
bad_address 
bad_file_descriptor 
broken_pipe 
device_or_resource_busy 
directory_not_empty 
executable_format_error 
file_exists 
file_too_large 
filename_too_long 
function_not_supported 
illegal_byte_sequence 
inappropriate_io_control_operation 
interrupted 
invalid_argument 
invalid_seek 
io_error 
is_a_directory 
no_child_process 
no_lock_available 
no_space_on_device 
no_such_device_or_address 
no_such_device 
no_such_file_or_directory 
no_such_process 
not_a_directory 
not_enough_memory 
not_supported 
operation_not_permitted 
permission_denied 
read_only_file_system 
resource_deadlock_would_occur 
resource_unavailable_try_again 
result_out_of_range 
too_many_files_open_in_system 
too_many_files_open 
too_many_links 

Definition at line 36 of file Errc.h.

◆ ErrorPolicy

enum llvm::ErrorPolicy
strong

Used as a return value for a error callback passed to DWARF context.

Callback should return Halt if client application wants to stop object parsing, or should return Continue otherwise.

Enumerator
Halt 
Continue 

Definition at line 54 of file DWARFContext.h.

◆ EventTag

Enumerator
CPP_EXCEPTION 
C_LONGJMP 

Definition at line 24 of file WasmEHFuncInfo.h.

◆ ExceptionHandling

Enumerator
None 
DwarfCFI 

No exception support.

SjLj 

DWARF-like instruction based exceptions.

ARM 

setjmp/longjmp based exceptions

WinEH 

ARM EHABI.

Wasm 

Windows Exception Handling.

Definition at line 18 of file MCTargetOptions.h.

◆ FloatStyle

enum llvm::FloatStyle
strong
Enumerator
Exponent 
ExponentUpper 
Fixed 
Percent 

Definition at line 19 of file NativeFormatting.h.

◆ FunctionModRefBehavior

Summary of how a function affects memory in the program.

Loads from constant globals are not considered memory accesses for this interface. Also, functions may freely modify stack space local to their invocation without having to report it through these interfaces.

Enumerator
FMRB_DoesNotAccessMemory 

This function does not perform any non-local loads or stores to memory.

This property corresponds to the GCC 'const' attribute. This property corresponds to the LLVM IR 'readnone' attribute. This property corresponds to the IntrNoMem LLVM intrinsic flag.

FMRB_OnlyReadsArgumentPointees 

The only memory references in this function (if it has any) are non-volatile loads from objects pointed to by its pointer-typed arguments, with arbitrary offsets.

This property corresponds to the IntrReadArgMem LLVM intrinsic flag.

FMRB_OnlyAccessesArgumentPointees 

The only memory references in this function (if it has any) are non-volatile loads and stores from objects pointed to by its pointer-typed arguments, with arbitrary offsets.

This property corresponds to the IntrArgMemOnly LLVM intrinsic flag.

FMRB_OnlyAccessesInaccessibleMem 

The only memory references in this function (if it has any) are references of memory that is otherwise inaccessible via LLVM IR.

This property corresponds to the LLVM IR inaccessiblememonly attribute.

FMRB_OnlyAccessesInaccessibleOrArgMem 

The function may perform non-volatile loads and stores of objects pointed to by its pointer-typed arguments, with arbitrary offsets, and it may also perform loads and stores of memory that is otherwise inaccessible via LLVM IR.

This property corresponds to the LLVM IR inaccessiblemem_or_argmemonly attribute.

FMRB_OnlyReadsMemory 

This function does not perform any non-local stores or volatile loads, but may read from any memory location.

This property corresponds to the GCC 'pure' attribute. This property corresponds to the LLVM IR 'readonly' attribute. This property corresponds to the IntrReadMem LLVM intrinsic flag.

FMRB_DoesNotReadMemory 
FMRB_UnknownModRefBehavior 

This indicates that the function could not be classified into one of the behaviors above.

Definition at line 216 of file AliasAnalysis.h.

◆ FunctionModRefLocation

The locations at which a function might access memory.

These are primarily used in conjunction with the AccessKind bits to describe both the nature of access and the locations of access for a function call.

Enumerator
FMRL_Nowhere 

Base case is no access to memory.

FMRL_ArgumentPointees 

Access to memory via argument pointers.

FMRL_InaccessibleMem 

Memory that is inaccessible via LLVM IR.

FMRL_Anywhere 

Access to any memory.

Definition at line 200 of file AliasAnalysis.h.

◆ GlobalISelAbortMode

Enable abort calls when global instruction selection fails to lower/select an instruction.

Enumerator
Disable 
Enable 
DisableWithDiag 

Definition at line 101 of file TargetOptions.h.

◆ GVDAGType

Enumerator
GVDT_None 
GVDT_Fraction 
GVDT_Integer 
GVDT_Count 

Definition at line 1363 of file BlockFrequencyInfoImpl.h.

◆ HexPrintStyle

enum llvm::HexPrintStyle
strong
Enumerator
Upper 
Lower 
PrefixUpper 
PrefixLower 

Definition at line 24 of file NativeFormatting.h.

◆ HighlightColor

enum llvm::HighlightColor
strong
Enumerator
Address 
String 
Tag 
Attribute 
Enumerator 
Macro 
Error 
Warning 
Note 
Remark 

Definition at line 23 of file WithColor.h.

◆ instrprof_error

enum llvm::instrprof_error
strong
Enumerator
success 
eof 
unrecognized_format 
bad_magic 
bad_header 
unsupported_version 
unsupported_hash_type 
too_large 
truncated 
malformed 
unknown_function 
hash_mismatch 
count_mismatch 
counter_overflow 
value_site_count_mismatch 
compress_failed 
uncompress_failed 
empty_raw_profile 
zlib_unavailable 

Definition at line 280 of file InstrProf.h.

◆ InstrProfSectKind

Definition at line 57 of file InstrProf.h.

◆ InstrProfValueKind

Definition at line 237 of file InstrProf.h.

◆ IntegerStyle

enum llvm::IntegerStyle
strong
Enumerator
Integer 
Number 

Definition at line 20 of file NativeFormatting.h.

◆ IntrinsicType

enum llvm::IntrinsicType : uint16_t
Enumerator
GATHER 
SCATTER 
PREFETCH 
RDSEED 
RDRAND 
RDPMC 
RDTSC 
XTEST 
XGETBV 
ADX 
FPCLASSS 
INTR_TYPE_1OP 
INTR_TYPE_2OP 
INTR_TYPE_3OP 
INTR_TYPE_4OP 
INTR_TYPE_3OP_IMM8 
CMP_MASK_CC 
CMP_MASK_SCALAR_CC 
VSHIFT 
COMI 
COMI_RM 
CVTPD2PS 
CVTPD2PS_MASK 
CVTPD2PS_RND_MASK 
INTR_TYPE_1OP_MASK 
INTR_TYPE_1OP_MASK_RM 
INTR_TYPE_2OP_MASK 
INTR_TYPE_2OP_MASK_RM 
INTR_TYPE_3OP_MASK 
IFMA_OP 
VPERM_2OP 
INTR_TYPE_SCALAR_MASK 
INTR_TYPE_SCALAR_MASK_RM 
INTR_TYPE_3OP_SCALAR_MASK 
COMPRESS_EXPAND_IN_REG 
TRUNCATE_TO_REG 
CVTPS2PH_MASK 
CVTPD2I_MASK 
TRUNCATE_TO_MEM_VI8 
TRUNCATE_TO_MEM_VI16 
TRUNCATE_TO_MEM_VI32 
FIXUPIMM 
FIXUPIMM_MASKZ 
FIXUPIMMS 
FIXUPIMMS_MASKZ 
GATHER_AVX2 
ROUNDP 
ROUNDS 

Definition at line 22 of file X86IntrinsicsInfo.h.

◆ LibFunc

Enumerator
NumLibFuncs 

Definition at line 34 of file TargetLibraryInfo.h.

◆ LLVMConstants

Enumerator
DEBUG_METADATA_VERSION 

Definition at line 51 of file Metadata.h.

◆ LoopUnrollResult

Represents the result of a UnrollLoop invocation.

Enumerator
Unmodified 

The loop was not modified.

PartiallyUnrolled 

The loop was partially unrolled – we still have a loop, but with a smaller trip count.

We may also have emitted epilogue loop if the loop had a non-constant trip count.

FullyUnrolled 

The loop was fully unrolled into straight-line code.

We no longer have any back-edges.

Definition at line 52 of file UnrollLoop.h.

◆ lostFraction

Enum that represents what fraction of the LSB truncated bits of an fp number represent.

This essentially combines the roles of guard and sticky bits.

Enumerator
lfExactlyZero 
lfLessThanHalf 
lfExactlyHalf 
lfMoreThanHalf 

Definition at line 48 of file APFloat.h.

◆ MachineCombinerPattern

These are instruction patterns matched by the machine combiner pass.

Enumerator
REASSOC_AX_BY 
REASSOC_AX_YB 
REASSOC_XA_BY 
REASSOC_XA_YB 
MULADDW_OP1 
MULADDW_OP2 
MULSUBW_OP1 
MULSUBW_OP2 
MULADDWI_OP1 
MULSUBWI_OP1 
MULADDX_OP1 
MULADDX_OP2 
MULSUBX_OP1 
MULSUBX_OP2 
MULADDXI_OP1 
MULSUBXI_OP1 
FMULADDS_OP1 
FMULADDS_OP2 
FMULSUBS_OP1 
FMULSUBS_OP2 
FMULADDD_OP1 
FMULADDD_OP2 
FMULSUBD_OP1 
FMULSUBD_OP2 
FNMULSUBS_OP1 
FNMULSUBD_OP1 
FMLAv1i32_indexed_OP1 
FMLAv1i32_indexed_OP2 
FMLAv1i64_indexed_OP1 
FMLAv1i64_indexed_OP2 
FMLAv2f32_OP2 
FMLAv2f32_OP1 
FMLAv2f64_OP1 
FMLAv2f64_OP2 
FMLAv2i32_indexed_OP1 
FMLAv2i32_indexed_OP2 
FMLAv2i64_indexed_OP1 
FMLAv2i64_indexed_OP2 
FMLAv4f32_OP1 
FMLAv4f32_OP2 
FMLAv4i32_indexed_OP1 
FMLAv4i32_indexed_OP2 
FMLSv1i32_indexed_OP2 
FMLSv1i64_indexed_OP2 
FMLSv2f32_OP1 
FMLSv2f32_OP2 
FMLSv2f64_OP1 
FMLSv2f64_OP2 
FMLSv2i32_indexed_OP1 
FMLSv2i32_indexed_OP2 
FMLSv2i64_indexed_OP1 
FMLSv2i64_indexed_OP2 
FMLSv4f32_OP1 
FMLSv4f32_OP2 
FMLSv4i32_indexed_OP1 
FMLSv4i32_indexed_OP2 

Definition at line 21 of file MachineCombinerPattern.h.

◆ MCAssemblerFlag

Enumerator
MCAF_SyntaxUnified 

.syntax (ARM/ELF)

MCAF_SubsectionsViaSymbols 

.subsections_via_symbols (MachO)

MCAF_Code16 

.code16 (X86) / .code 16 (ARM)

MCAF_Code32 

.code32 (X86) / .code 32 (ARM)

MCAF_Code64 

.code64 (X86)

Definition at line 48 of file MCDirectives.h.

◆ MCDataRegionType

Enumerator
MCDR_DataRegion 

.data_region

MCDR_DataRegionJT8 

.data_region jt8

MCDR_DataRegionJT16 

.data_region jt16

MCDR_DataRegionJT32 

.data_region jt32

MCDR_DataRegionEnd 

.end_data_region

Definition at line 56 of file MCDirectives.h.

◆ MCFixupKind

Extensible enumeration to represent the type of a fixup.

Enumerator
FK_Data_1 

A one-byte fixup.

FK_Data_2 

A two-byte fixup.

FK_Data_4 

A four-byte fixup.

FK_Data_8 

A eight-byte fixup.

FK_PCRel_1 

A one-byte pc relative fixup.

FK_PCRel_2 

A two-byte pc relative fixup.

FK_PCRel_4 

A four-byte pc relative fixup.

FK_PCRel_8 

A eight-byte pc relative fixup.

FK_GPRel_1 

A one-byte gp relative fixup.

FK_GPRel_2 

A two-byte gp relative fixup.

FK_GPRel_4 

A four-byte gp relative fixup.

FK_GPRel_8 

A eight-byte gp relative fixup.

FK_DTPRel_4 

A four-byte dtp relative fixup.

FK_DTPRel_8 

A eight-byte dtp relative fixup.

FK_TPRel_4 

A four-byte tp relative fixup.

FK_TPRel_8 

A eight-byte tp relative fixup.

FK_SecRel_1 

A one-byte section relative fixup.

FK_SecRel_2 

A two-byte section relative fixup.

FK_SecRel_4 

A four-byte section relative fixup.

FK_SecRel_8 

A eight-byte section relative fixup.

FK_Data_Add_1 

A one-byte add fixup.

FK_Data_Add_2 

A two-byte add fixup.

FK_Data_Add_4 

A four-byte add fixup.

FK_Data_Add_8 

A eight-byte add fixup.

FK_Data_Sub_1 

A one-byte sub fixup.

FK_Data_Sub_2 

A two-byte sub fixup.

FK_Data_Sub_4 

A four-byte sub fixup.

FK_Data_Sub_8 

A eight-byte sub fixup.

FirstTargetFixupKind 
MaxTargetFixupKind 

Definition at line 23 of file MCFixup.h.

◆ MCLOHType

Linker Optimization Hint Type.

Enumerator
MCLOH_AdrpAdrp 

Adrp xY, _v1 -> Adrp xY, _v2.

MCLOH_AdrpLdr 

Adrp _v -> Ldr _v.

MCLOH_AdrpAddLdr 

Adrp _v -> Add _v -> Ldr.

MCLOH_AdrpLdrGotLdr 

Adrp _v -> Ldr _v -> Ldr.

MCLOH_AdrpAddStr 

Adrp _v -> Add _v -> Str.

MCLOH_AdrpLdrGotStr 

Adrp _v -> Ldr _v -> Str.

MCLOH_AdrpAdd 

Adrp _v -> Add _v.

MCLOH_AdrpLdrGot 

Adrp _v -> Ldr _v.

Definition at line 34 of file MCLinkerOptimizationHint.h.

◆ MCSymbolAttr

Enumerator
MCSA_Invalid 

Not a valid directive.

MCSA_ELF_TypeFunction 

.type _foo, STT_FUNC # aka

MCSA_ELF_TypeIndFunction 

.type _foo, STT_GNU_IFUNC

MCSA_ELF_TypeObject 

.type _foo, STT_OBJECT # aka

MCSA_ELF_TypeTLS 

.type _foo, STT_TLS # aka

MCSA_ELF_TypeCommon 

.type _foo, STT_COMMON # aka

MCSA_ELF_TypeNoType 

.type _foo, STT_NOTYPE # aka

MCSA_ELF_TypeGnuUniqueObject 
MCSA_Global 

.type _foo,

.globl

MCSA_Hidden 

.hidden (ELF)

MCSA_IndirectSymbol 

.indirect_symbol (MachO)

MCSA_Internal 

.internal (ELF)

MCSA_LazyReference 

.lazy_reference (MachO)

MCSA_Local 

.local (ELF)

MCSA_NoDeadStrip 

.no_dead_strip (MachO)

MCSA_SymbolResolver 

.symbol_resolver (MachO)

MCSA_AltEntry 

.alt_entry (MachO)

MCSA_PrivateExtern 

.private_extern (MachO)

MCSA_Protected 

.protected (ELF)

MCSA_Reference 

.reference (MachO)

MCSA_Weak 

.weak

MCSA_WeakDefinition 

.weak_definition (MachO)

MCSA_WeakReference 

.weak_reference (MachO)

MCSA_WeakDefAutoPrivate 

.weak_def_can_be_hidden (MachO)

Definition at line 19 of file MCDirectives.h.

◆ MCVersionMinType

Enumerator
MCVM_IOSVersionMin 

.ios_version_min

MCVM_OSXVersionMin 

.macosx_version_min

MCVM_TvOSVersionMin 

.tvos_version_min

MCVM_WatchOSVersionMin 

.watchos_version_min

Definition at line 64 of file MCDirectives.h.

◆ MemoryAccessKind

The three kinds of memory access relevant to 'readonly' and 'readnone' attributes.

Enumerator
MAK_ReadNone 
MAK_ReadOnly 
MAK_MayWrite 
MAK_WriteOnly 

Definition at line 32 of file FunctionAttrs.h.

◆ ModRefInfo

enum llvm::ModRefInfo : uint8_t
strong

Flags indicating whether a memory access modifies or references memory.

This is no access at all, a modification, a reference, or both a modification and a reference. These are specifically structured such that they form a three bit matrix and bit-tests for 'mod' or 'ref' or 'must' work with any of the possible values.

Enumerator
Must 

Must is provided for completeness, but no routines will return only Must today.

See definition of Must below.

MustRef 

The access may reference the value stored in memory, a mustAlias relation was found, and no mayAlias or partialAlias found.

MustMod 

The access may modify the value stored in memory, a mustAlias relation was found, and no mayAlias or partialAlias found.

MustModRef 

The access may reference, modify or both the value stored in memory, a mustAlias relation was found, and no mayAlias or partialAlias found.

NoModRef 

The access neither references nor modifies the value stored in memory.

Ref 

The access may reference the value stored in memory.

Mod 

The access may modify the value stored in memory.

ModRef 

The access may reference and may modify the value stored in memory.

Definition at line 102 of file AliasAnalysis.h.

◆ MSDemangleFlags

Enumerator
MSDF_None 
MSDF_DumpBackrefs 

Definition at line 35 of file Demangle.h.

◆ NEONModImmType

Enumerator
VMOVModImm 
VMVNModImm 
OtherModImm 

Definition at line 811 of file ARMISelLowering.h.

◆ NoneType

enum llvm::NoneType
strong

A simple null object to allow implicit construction of Optional<T> and similar types without having to spell out the specialization's name.

Enumerator
None 

Definition at line 23 of file None.h.

◆ OperandMatchResultTy

Enumerator
MatchOperand_Success 
MatchOperand_NoMatch 
MatchOperand_ParseFail 

Definition at line 131 of file MCTargetAsmParser.h.

◆ OverflowCheckFlavor

Specific patterns of overflow check idioms that we match.

Enumerator
OCF_UNSIGNED_ADD 
OCF_SIGNED_ADD 
OCF_UNSIGNED_SUB 
OCF_SIGNED_SUB 
OCF_UNSIGNED_MUL 
OCF_SIGNED_MUL 
OCF_INVALID 

Definition at line 189 of file InstCombineInternal.h.

◆ OverflowResult

enum llvm::OverflowResult
strong
Enumerator
AlwaysOverflows 
MayOverflow 
NeverOverflows 

Definition at line 414 of file ValueTracking.h.

◆ PassDebuggingString

Enumerator
EXECUTION_MSG 
MODIFICATION_MSG 
FREEING_MSG 
ON_BASICBLOCK_MSG 
ON_FUNCTION_MSG 
ON_MODULE_MSG 
ON_REGION_MSG 
ON_LOOP_MSG 
ON_CG_MSG 

Definition at line 103 of file LegacyPassManagers.h.

◆ PassKind

Enumerator
PT_BasicBlock 
PT_Region 
PT_Loop 
PT_Function 
PT_CallGraphSCC 
PT_Module 
PT_PassManager 

Definition at line 66 of file Pass.h.

◆ PassManagerType

Different types of internal pass managers.

External pass managers (PassManager and FunctionPassManager) are not represented here. Ordering of pass manager types is important here.

Enumerator
PMT_Unknown 
PMT_ModulePassManager 

MPPassManager.

PMT_CallGraphPassManager 

CGPassManager.

PMT_FunctionPassManager 

FPPassManager.

PMT_LoopPassManager 

LPPassManager.

PMT_RegionPassManager 

RGPassManager.

PMT_BasicBlockPassManager 

BBPassManager.

PMT_Last 

Definition at line 54 of file Pass.h.

◆ PassSummaryAction

What to do with the summary when running passes that operate on it.

Enumerator
None 

Do nothing.

Import 

Import information from summary.

Export 

Export information to summary.

Definition at line 224 of file IPO.h.

◆ PGOViewCountsType

Enumerator
PGOVCT_None 
PGOVCT_Graph 
PGOVCT_Text 

Definition at line 34 of file BlockFrequencyInfo.h.

◆ PredicateType

Enumerator
PT_Branch 
PT_Assume 
PT_Switch 

Definition at line 96 of file PredicateInfo.h.

◆ PrevailingType

enum llvm::PrevailingType
strong

PrevailingType enum used as a return type of callback passed to computeDeadSymbols.

Yes and No values used when status explicitly set by symbols resolution, otherwise status is Unknown.

Enumerator
Yes 
No 
Unknown 

Definition at line 167 of file FunctionImport.h.

◆ RemapFlags

These are flags that the value mapping APIs allow.

Enumerator
RF_None 
RF_NoModuleLevelChanges 

If this flag is set, the remapper knows that only local values within a function (such as an instruction or argument) are mapped, not global values like functions and global metadata.

RF_IgnoreMissingLocals 

If this flag is set, the remapper ignores missing function-local entries (Argument, Instruction, BasicBlock) that are not in the value map.

If it is unset, it aborts if an operand is asked to be remapped which doesn't exist in the mapping.

There are no such assertions in MapValue(), whose results are almost unchanged by this flag. This flag mainly changes the assertion behaviour in RemapInstruction().

Since an Instruction's metadata operands (even that point to SSA values) aren't guaranteed to be dominated by their definitions, MapMetadata will return "!{}" instead of "null" for LocalAsMetadata instances whose SSA values are unmapped when this flag is set. Otherwise, MapValue() completely ignores this flag.

MapMetadata() always ignores this flag.

RF_MoveDistinctMDs 

Instruct the remapper to move distinct metadata instead of duplicating it when there are module-level changes.

RF_NullMapMissingGlobalValues 

Any global values not in value map are mapped to null instead of mapping to self.

Illegal if RF_IgnoreMissingLocals is also set.

Definition at line 67 of file ValueMapper.h.

◆ ReplacementType

enum llvm::ReplacementType
strong
Enumerator
Empty 
Format 
Literal 

Definition at line 45 of file FormatVariadic.h.

◆ sampleprof_error

Enumerator
success 
bad_magic 
unsupported_version 
too_large 
truncated 
malformed 
unrecognized_format 
unsupported_writing_format 
truncated_name_table 
not_implemented 
counter_overflow 
ostream_seek_unsupported 

Definition at line 41 of file SampleProf.h.

◆ SanitizerStatKind

Enumerator
SanStat_CFI_VCall 
SanStat_CFI_NVCall 
SanStat_CFI_DerivedCast 
SanStat_CFI_UnrelatedCast 
SanStat_CFI_ICall 

Definition at line 25 of file SanitizerStats.h.

◆ SCEVTypes

Enumerator
scConstant 
scTruncate 
scZeroExtend 
scSignExtend 
scAddExpr 
scMulExpr 
scUDivExpr 
scAddRecExpr 
scUMaxExpr 
scSMaxExpr 
scUnknown 
scCouldNotCompute 

Definition at line 39 of file ScalarEvolutionExpressions.h.

◆ SelectPatternFlavor

Specific patterns of select instructions we can match.

Enumerator
SPF_UNKNOWN 
SPF_SMIN 
SPF_UMIN 

Signed minimum.

SPF_SMAX 

Unsigned minimum.

SPF_UMAX 

Signed maximum.

SPF_FMINNUM 

Unsigned maximum.

SPF_FMAXNUM 

Floating point minnum.

SPF_ABS 

Floating point maxnum.

SPF_NABS 

Absolute value.

Negated absolute value

Definition at line 518 of file ValueTracking.h.

◆ SelectPatternNaNBehavior

Behavior when a floating point min/max is given one NaN and one non-NaN as input.

Enumerator
SPNB_NA 
SPNB_RETURNS_NAN 

NaN behavior not applicable.

SPNB_RETURNS_OTHER 

Given one NaN input, returns the NaN.

SPNB_RETURNS_ANY 

Given one NaN input, returns the non-NaN.

Given one NaN input, can return either (or it has been determined that no operands can be NaN).

Definition at line 532 of file ValueTracking.h.

◆ SIScheduleBlockLinkKind

Enumerator
NoData 
Data 

Definition at line 57 of file SIMachineScheduler.h.

◆ SIScheduleCandReason

Enumerator
NoCand 
RegUsage 
Latency 
Successor 
Depth 
NodeOrder 

Definition at line 32 of file SIMachineScheduler.h.

◆ SISchedulerBlockCreatorVariant

Enumerator
LatenciesAlone 
LatenciesGrouped 
LatenciesAlonePlusConsecutive 

Definition at line 220 of file SIMachineScheduler.h.

◆ SISchedulerBlockSchedulerVariant

Enumerator
BlockLatencyRegUsage 
BlockRegUsageLatency 
BlockRegUsage 

Definition at line 317 of file SIMachineScheduler.h.

◆ StatepointFlags

enum llvm::StatepointFlags
strong

The statepoint intrinsic accepts a set of flags as its third argument.

Valid values come out of this set.

Enumerator
None 
GCTransition 

Indicates that this statepoint is a transition from GC-aware code to code that is not GC-aware.

DeoptLiveIn 

Mark the deopt arguments associated with the statepoint as only being "live-in".

By default, deopt arguments are "live-through". "live-through" requires that they the value be live on entry, on exit, and at any point during the call. "live-in" only requires the value be available at the start of the call. In particular, "live-in" values can be placed in unused argument registers or other non-callee saved registers.

MaskAll 

A bitmask that includes all valid flags.

Definition at line 42 of file Statepoint.h.

◆ stream_error_code

Enumerator
unspecified 
stream_too_short 
invalid_array_size 
invalid_offset 
filesystem_error 

Definition at line 19 of file BinaryStreamError.h.

◆ TransformationMode

The mode sets how eager a transformation should be applied.

Enumerator
TM_Unspecified 

The pass can use heuristics to determine whether a transformation should be applied.

TM_Enable 

The transformation should be applied without considering a cost model.

TM_Disable 

The transformation should not be applied.

TM_Force 

Force is a flag and should not be used alone.

TM_ForcedByUser 

The transformation was directed by the user, e.g.

by a #pragma in the source code. If the transformation could not be applied, a warning should be emitted.

TM_SuppressedByUser 

The transformation must not be applied.

For instance, #pragma clang loop unroll(disable) explicitly forbids any unrolling to take place. Unlike general loop metadata, it must not be dropped. Most passes should not behave differently under TM_Disable and TM_SuppressedByUser.

Definition at line 212 of file LoopUtils.h.

◆ ZeroBehavior

The behavior an operation has on an input of 0.

Enumerator
ZB_Undefined 

The returned value is undefined.

ZB_Max 

The returned value is numeric_limits<T>::max()

ZB_Width 

The returned value is numeric_limits<T>::digits.

Definition at line 44 of file MathExtras.h.

Function Documentation

◆ __deregister_frame()

void llvm::__deregister_frame ( void *  p)

◆ __register_frame()

void llvm::__register_frame ( void *  p)

◆ AArch64StringToVectorLayout()

static AArch64Layout::VectorLayout llvm::AArch64StringToVectorLayout ( StringRef  LayoutStr)
inlinestatic

◆ AArch64VectorLayoutToString()

static const char* llvm::AArch64VectorLayoutToString ( AArch64Layout::VectorLayout  Layout)
inlinestatic

◆ abs()

APFloat llvm::abs ( APFloat  X)
inline

◆ AbsoluteDifference()

template<typename T >
std::enable_if<std::is_unsigned<T>::value, T>::type llvm::AbsoluteDifference ( T  X,
T  Y 
)

Subtract two unsigned integers, X and Y, of type T and return the absolute value of the result.

Definition at line 767 of file MathExtras.h.

References max().

Referenced by isHardwareLoop(), llvm::xray::profileFromTrace(), and llvm::msf::MappedBlockStream::readBytes().

◆ addClonedBlockToLoopInfo()

const Loop * llvm::addClonedBlockToLoopInfo ( BasicBlock OriginalBB,
BasicBlock ClonedBB,
LoopInfo LI,
NewLoopsMap NewLoops 
)

Adds ClonedBB to LoopInfo, creates a new loop for ClonedBB if necessary and adds a mapping from the original loop to the new loop to NewLoops.

Returns nullptr if no new loop was created and a pointer to the original loop OriginalBB was part of otherwise.

Definition at line 190 of file LoopUnroll.cpp.

References llvm::LoopBase< BlockT, LoopT >::addBasicBlockToLoop(), llvm::LoopBase< BlockT, LoopT >::addChildLoop(), llvm::LoopInfoBase< BlockT, LoopT >::addTopLevelLoop(), llvm::LoopInfoBase< BlockT, LoopT >::AllocateLoop(), assert(), llvm::LoopBase< BlockT, LoopT >::getHeader(), llvm::LoopInfoBase< BlockT, LoopT >::getLoopFor(), llvm::LoopBase< BlockT, LoopT >::getParentLoop(), and llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::lookup().

Referenced by CloneLoopBlocks(), and UnrollLoop().

◆ addConstantPoolReference()

static const MachineInstrBuilder& llvm::addConstantPoolReference ( const MachineInstrBuilder MIB,
unsigned  CPI,
unsigned  GlobalBaseReg,
unsigned char  OpFlags 
)
inlinestatic

addConstantPoolReference - This function is used to add a reference to the base of a constant value spilled to the per-function constant pool.

The reference uses the abstract ConstantPoolIndex which is retained until either machine code emission or assembly output. In PIC mode on x86-32, the GlobalBaseReg parameter can be used to make this a GlobalBaseReg-relative reference.

Definition at line 224 of file X86InstrBuilder.h.

References llvm::MachineInstrBuilder::addConstantPoolIndex(), llvm::MachineInstrBuilder::addImm(), and llvm::MachineInstrBuilder::addReg().

Referenced by canTurnIntoCOPY(), and computeBytesPoppedByCalleeForSRet().

◆ addCoroutinePassesToExtensionPoints()

void llvm::addCoroutinePassesToExtensionPoints ( PassManagerBuilder Builder)

◆ addDirectMem()

static const MachineInstrBuilder& llvm::addDirectMem ( const MachineInstrBuilder MIB,
unsigned  Reg 
)
inlinestatic

addDirectMem - This function is used to add a direct memory reference to the current instruction – that is, a dereference of an address in a register, with no scale, index or displacement.

An example is: DWORD PTR [EAX].

Definition at line 125 of file X86InstrBuilder.h.

References llvm::MachineInstrBuilder::addImm(), and llvm::MachineInstrBuilder::addReg().

Referenced by addEpilog(), addEpilogLeaf(), addEpilogOnlyR10(), addProlog(), addPrologLeaf(), canTurnIntoCOPY(), computeBytesPoppedByCalleeForSRet(), createPHIsForCMOVsInSinkBB(), and X86ChooseCmpImmediateOpcode().

◆ addFrameReference() [1/3]

static const MachineInstrBuilder& llvm::addFrameReference ( const MachineInstrBuilder MIB,
int  FI 
)
inlinestatic

◆ addFrameReference() [2/3]

static const MachineInstrBuilder& llvm::addFrameReference ( const MachineInstrBuilder MIB,
int  FI,
int  Offset = 0,
bool  mem = true 
)
inlinestatic

◆ addFrameReference() [3/3]

static const MachineInstrBuilder& llvm::addFrameReference ( const MachineInstrBuilder MIB,
int  FI,
int  Offset = 0 
)
inlinestatic

addFrameReference - This function is used to add a reference to the base of an abstract object on the stack frame of the current function.

This reference has base register as the FrameIndex offset until it is resolved. This allows a constant offset to be specified as well...

Definition at line 199 of file X86InstrBuilder.h.

References llvm::MachineInstrBuilder::addFrameIndex(), addOffset(), llvm::MachineInstr::getDesc(), llvm::MachinePointerInfo::getFixedStack(), llvm::MachineFunction::getFrameInfo(), llvm::MachineFunction::getMachineMemOperand(), llvm::MachineFrameInfo::getObjectAlignment(), llvm::MachineFrameInfo::getObjectSize(), llvm::MachineBasicBlock::getParent(), llvm::MachineInstr::getParent(), llvm::MCInstrDesc::mayLoad(), llvm::MCInstrDesc::mayStore(), MI, llvm::MachineMemOperand::MOLoad, llvm::MachineMemOperand::MONone, and llvm::MachineMemOperand::MOStore.

◆ addFullAddress()

static const MachineInstrBuilder& llvm::addFullAddress ( const MachineInstrBuilder MIB,
const X86AddressMode AM 
)
inlinestatic

◆ addInnerLoopsToHeadersMap()

template<class BlockT , class LoopT >
void llvm::addInnerLoopsToHeadersMap ( DenseMap< BlockT *, const LoopT *> &  LoopHeaders,
const LoopInfoBase< BlockT, LoopT > &  LI,
const LoopT &  L 
)

Definition at line 652 of file LoopInfoImpl.h.

Referenced by llvm::LoopInfoBase< BasicBlock, Loop >::verify().

◆ addLiveIns()

void llvm::addLiveIns ( MachineBasicBlock MBB,
const LivePhysRegs LiveRegs 
)

◆ addNodeToInterval() [1/2]

void llvm::addNodeToInterval ( Interval Int,
BasicBlock BB 
)
inline

Definition at line 73 of file IntervalIterator.h.

References llvm::Interval::Nodes.

◆ addNodeToInterval() [2/2]

void llvm::addNodeToInterval ( Interval Int,
Interval I 
)
inline

Definition at line 83 of file IntervalIterator.h.

References llvm::Interval::Nodes.

◆ addOffset() [1/2]

static const MachineInstrBuilder& llvm::addOffset ( const MachineInstrBuilder MIB,
int  Offset 
)
inlinestatic

◆ addOffset() [2/2]

static const MachineInstrBuilder& llvm::addOffset ( const MachineInstrBuilder MIB,
const MachineOperand Offset 
)
inlinestatic

◆ AddOne()

static Constant* llvm::AddOne ( Constant C)
inlinestatic

◆ addRegOffset()

static const MachineInstrBuilder& llvm::addRegOffset ( const MachineInstrBuilder MIB,
unsigned  Reg,
bool  isKill,
int  Offset 
)
inlinestatic

◆ addRegReg()

static const MachineInstrBuilder& llvm::addRegReg ( const MachineInstrBuilder MIB,
unsigned  Reg1,
bool  isKill1,
unsigned  Reg2,
bool  isKill2 
)
inlinestatic

addRegReg - This function is used to add a memory reference of the form: [Reg + Reg].

Definition at line 165 of file X86InstrBuilder.h.

References llvm::MachineInstrBuilder::addImm(), llvm::MachineInstrBuilder::addReg(), and getKillRegState().

Referenced by llvm::X86InstrInfo::classifyLEAReg(), and llvm::X86InstrInfo::convertToThreeAddress().

◆ addStringMetadataToLoop()

void llvm::addStringMetadataToLoop ( Loop TheLoop,
const char MDString,
unsigned  V = 0 
)

Set input string into loop metadata by keeping other values intact.

Definition at line 126 of file LoopVersioningLICM.cpp.

References llvm::Loop::getLoopID(), and llvm::MDNode::getNumOperands().

◆ adjustPqBits()

static unsigned llvm::adjustPqBits ( const MCInst Inst,
unsigned  Value,
unsigned  PBitShift,
unsigned  QBitShift 
)
static

◆ adl_begin()

template<typename ContainerTy >
auto llvm::adl_begin ( ContainerTy &&  container) -> decltype(adl_detail::adl_begin(std::forward<ContainerTy>(container)))

◆ adl_end()

template<typename ContainerTy >
auto llvm::adl_end ( ContainerTy &&  container) -> decltype(adl_detail::adl_end(std::forward<ContainerTy>(container)))

◆ adl_swap()

template<typename T >
void llvm::adl_swap ( T &&  lhs,
T &&  rhs 
)
noexcept

Definition at line 203 of file STLExtras.h.

References llvm::adl_detail::adl_swap().

◆ alignAddr()

uintptr_t llvm::alignAddr ( const void *  Addr,
size_t  Alignment 
)
inline

Aligns Addr to Alignment bytes, rounding up.

Alignment should be a power of two. This method rounds up, so alignAddr(7, 4) == 8 and alignAddr(8, 4) == 8.

Definition at line 623 of file MathExtras.h.

References assert(), and isPowerOf2_64().

Referenced by alignmentAdjustment(), and llvm::trailing_objects_internal::TrailingObjectsImpl< Align, BaseTy, TopTrailingObj, PrevTy, NextTy, MoreTys... >::getTrailingObjectsImpl().

◆ alignDown()

uint64_t llvm::alignDown ( uint64_t  Value,
uint64_t  Align,
uint64_t  Skew = 0 
)
inline

◆ alignmentAdjustment()

size_t llvm::alignmentAdjustment ( const void *  Ptr,
size_t  Alignment 
)
inline

Returns the necessary adjustment for aligning Ptr to Alignment bytes, rounding up.

Definition at line 634 of file MathExtras.h.

References alignAddr().

Referenced by llvm::BumpPtrAllocatorImpl< MallocAllocator, 65536 >::Allocate(), loadTestingFormat(), llvm::FixedStreamArray< PSHashRecord >::operator[](), and llvm::BinaryStreamReader::readArray().

◆ alignTo() [1/2]

uint64_t llvm::alignTo ( uint64_t  Value,
uint64_t  Align,
uint64_t  Skew = 0 
)
inline

Returns the next integer (mod 2**64) that is greater than or equal to Value and is a multiple of Align.

Align must be non-zero.

If non-zero Skew is specified, the return value will be a minimal integer that is greater than or equal to Value and equal to Align * N + Skew for some integer N. If Skew is larger than Align, its value is adjusted to 'Skew mod Align'.

Examples:

alignTo(5, 8) = 8
alignTo(17, 8) = 24
alignTo(~0LL, 8) = 0
alignTo(321, 255) = 510
alignTo(5, 8, 7) = 7
alignTo(17, 8, 1) = 17
alignTo(~0LL, 8, 3) = 3
alignTo(321, 255, 42) = 552

Definition at line 685 of file MathExtras.h.

References llvm::AMDGPU::HSAMD::Kernel::Arg::Key::Align, and assert().

Referenced by addByteCountSuffix(), llvm::codeview::DebugChecksumsSubsection::addChecksum(), addData(), llvm::trailing_objects_internal::TrailingObjectsImpl< Align, BaseTy, TopTrailingObj, PrevTy, NextTy, MoreTys... >::additionalSizeToAllocImpl(), AdjustStackOffset(), llvm::TargetFrameLowering::alignSPAdjust(), llvm::AMDGPUMachineFunction::allocateLDSGlobal(), llvm::CCState::AllocateStack(), llvm::AMDGPUTargetLowering::analyzeFormalArgumentsCompute(), llvm::RISCVAsmBackend::applyFixup(), areCandidatesToMergeOrPair(), AssignProtectedObjSet(), calculateDiSymbolStreamSize(), llvm::codeview::DebugSubsectionRecordBuilder::calculateSerializedLength(), llvm::pdb::DbiModuleDescriptorBuilder::calculateSerializedLength(), llvm::pdb::HashTable< llvm::pdb::SrcHeaderBlockEntry, llvm::pdb::StringTableHashTraits >::calculateSerializedLength(), llvm::VNCoercion::canCoerceMustAliasedValueToLoad(), CC_ARM_AAPCS_Custom_Aggregate(), CC_MipsO32_FP64(), llvm::AArch64TargetLowering::CCAssignFnForReturn(), llvm::codeview::DebugSubsectionRecordBuilder::commit(), ComputeLinkerOptionsLoadCommandSize(), llvm::MachObjectWriter::computeSectionAddresses(), llvm::RuntimeDyldImpl::computeTotalAllocSize(), llvm::MCCodePaddingPolicy::computeWindowEndAddress(), llvm::AArch64FrameLowering::determineCalleeSaves(), divideCeil(), dump(), llvm::AArch64FrameLowering::eliminateCallFramePseudoInstr(), llvm::Thumb1FrameLowering::eliminateCallFramePseudoInstr(), llvm::SIFrameLowering::eliminateCallFramePseudoInstr(), llvm::X86FrameLowering::eliminateCallFramePseudoInstr(), llvm::DWARFYAML::EmitDebugAranges(), llvm::AArch64FrameLowering::emitEpilogue(), llvm::X86FrameLowering::emitEpilogue(), llvm::CodeViewContext::emitFileChecksums(), llvm::SparcFrameLowering::emitPrologue(), llvm::AArch64FrameLowering::emitPrologue(), llvm::X86FrameLowering::emitPrologue(), llvm::BPFSelectionDAGInfo::EmitTargetCodeForMemcpy(), emitThumbRegPlusImmediate(), enableAllocFrameElim(), llvm::MipsFrameLowering::estimateStackSize(), llvm::DWARFDebugNames::Header::extract(), llvm::StringTableBuilder::finalizeInOrder(), llvm::SparcSubtarget::getAdjustedFrameSize(), llvm::CCState::getAlignedCallFrameSize(), llvm::AMDGPUSubtarget::getExplicitKernArgSize(), llvm::R600FrameLowering::getFrameIndexReference(), llvm::AMDGPUTargetLowering::getImplicitParameterOffset(), llvm::ARMBaseInstrInfo::getInstSizeInBytes(), llvm::X86TTIImpl::getIntImmCost(), llvm::XCoreTargetLowering::getJumpTableEncoding(), llvm::AMDGPUSubtarget::getKernArgSegmentSize(), llvm::msf::MappedBlockStream::getLength(), llvm::AMDGPU::IsaInfo::getMaxWavesPerEU(), llvm::HexagonTTIImpl::getMemoryOpCost(), llvm::WritableMemoryBuffer::getNewUninitMemBuffer(), llvm::AMDGPU::IsaInfo::getNumSGPRBlocks(), llvm::AMDGPU::IsaInfo::getNumVGPRBlocks(), llvm::R600AsmPrinter::getPassName(), llvm::pdb::DbiModuleDescriptor::getRecordLength(), getRsrcReg(), llvm::pdb::DbiStreamBuilder::getSourceFileNameIndex(), llvm::X86InstrInfo::getSPAdjust(), llvm::DataLayout::getTypeAllocSize(), llvm::MipsTargetLowering::getTypeForExtReturn(), llvm::AMDGPU::IsaInfo::getWavesPerWorkGroup(), llvm::AArch64FrameLowering::getWinEHFuncletFrameSize(), llvm::MipsCallLowering::MipsHandler::handle(), llvm::CallLowering::handleAssignments(), llvm::MipsTargetLowering::HandleByVal(), llvm::CCState::HandleByVal(), hasAnyNonFlatUseOfReg(), llvm::RISCVFrameLowering::hasFP(), hasOnlySelectUsers(), isCallPromotable(), isFuncletReturnInstr(), isInSymtab(), isKnownTypeIdMember(), llvm::AArch64LegalizerInfo::legalizeCustom(), llvm::MipsCallLowering::lowerCall(), llvm::SparcTargetLowering::LowerCall_64(), llvm::AMDGPUCallLowering::lowerFormalArguments(), llvm::AArch64CallLowering::lowerFormalArguments(), lowerObjectSizeCall(), mayTailCallThisCC(), OffsetToAlignment(), llvm::MDNode::operator delete(), llvm::MDNode::operator new(), llvm::VarStreamArrayExtractor< CrossModuleImportItem >::operator()(), llvm::VarStreamArrayExtractor< codeview::DebugSubsectionRecord >::operator()(), llvm::raw_ostream::operator<<(), pad(), llvm::BinaryStreamWriter::padToAlignment(), llvm::BinaryStreamReader::padToAlignment(), PrintQuotedString(), llvm::HexagonFrameLowering::processFunctionBeforeFrameFinalized(), readGSIHashBuckets(), llvm::BitVector::reset(), llvm::AArch64FrameLowering::resolveFrameIndexReference(), llvm::WholeProgramDevirtPass::run(), scavengeStackSlot(), llvm::HexagonDAGToDAGISel::SelectAnyImmediate(), llvm::HexagonDAGToDAGISel::SelectGlobalAddress(), llvm::BitVector::set(), llvm::msf::MSFBuilder::setDirectoryBlocksHint(), TypeSizeToSizeIndex(), llvm::StrOffsetsContributionDescriptor::validateContributionSize(), VarAndRedzoneSize(), llvm::LegalizerHelper::widenScalar(), llvm::object::WindowsResourceCOFFWriter::WindowsResourceCOFFWriter(), llvm::object::WindowsResourceCOFFWriter::write(), llvm::MachObjectWriter::writeObject(), llvm::pdb::writeSparseBitVector(), llvm::orc::OrcAArch64::writeTrampolines(), and llvm::ExecutionEngine::~ExecutionEngine().

◆ alignTo() [2/2]

template<uint64_t Align>
constexpr uint64_t llvm::alignTo ( uint64_t  Value)
inline

Returns the next integer (mod 2**64) that is greater than or equal to Value and is a multiple of Align.

Align must be non-zero.

Definition at line 693 of file MathExtras.h.

References llvm::AMDGPU::HSAMD::Kernel::Arg::Key::Align.

◆ all_of()

template<typename R , typename UnaryPredicate >
bool llvm::all_of ( R &&  Range,
UnaryPredicate  P 
)

Provide wrappers to std::all_of which take ranges instead of having to pass begin/end explicitly.

Definition at line 1186 of file STLExtras.h.

References adl_begin(), and adl_end().

Referenced by llvm::DbgVariable::addMMIEntry(), llvm::DebugLocEntry::addValues(), llvm::GlobalsAAResult::alias(), alwaysAvailable(), llvm::DebugHandlerBase::beginFunction(), BrPHIToSelect(), llvm::MachineIRBuilder::buildInstr(), buildModuleSummaryIndex(), llvm::mca::ResourceManager::canBeIssued(), canLowerToLDG(), llvm::slpvectorizer::BoUpSLP::canMapToVector(), canSinkInstructions(), canTRE(), llvm::LoopVectorizationPlanner::collectTriviallyDeadInstructions(), combineAnd(), combineConcatVectorOfExtracts(), combineLoadToOperationType(), combineX86ShufflesRecursively(), compareLoops(), completeEphemeralValues(), computeDeadSymbols(), llvm::slpvectorizer::BoUpSLP::computeMinimumValueSizes(), computePointerICmp(), ConstantFoldInstruction(), createCodeGenPreparePass(), createLoopSimplifyPass(), deleteDeadBlocksFromLoop(), doesStoreDominatesAllLatches(), llvm::GVNExpression::Expression::dump(), emitDebugRangesImpl(), FoldBUILD_VECTOR(), FoldCONCAT_VECTORS(), llvm::SelectionDAG::FoldConstantVectorArithmetic(), formLCSSAOnAllLoops(), llvm::ScalarEvolution::getAddRecExpr(), getChainID(), llvm::DbgVariable::getFrameIndexExprs(), llvm::AArch64InstrInfo::getOutliningCandidateInfo(), getParameterABIAttributes(), getRegClassForUnfoldedLoad(), llvm::X86TTIImpl::getUserCost(), llvm::SelectionDAG::getVectorShuffle(), llvm::TextInstrProfReader::hasFormat(), llvm::Loop::hasLoopInvariantOperands(), hasOnlySelectUsers(), hasProfileData(), hoistRegion(), llvm::SCEVUnionPredicate::implies(), INITIALIZE_PASS(), isAlwaysFoldable(), llvm::SCEVUnionPredicate::isAlwaysTrue(), isAsciiString(), llvm::ValueInfo::isDSOLocal(), llvm::mca::Instruction::isEliminated(), isEphemeralValueOf(), llvm::SelectionDAG::isKnownToBeAPowerOfTwo(), llvm::Loop::isLCSSAForm(), isLoopDead(), llvm::Loop::isRecursivelyLCSSAForm(), isSafeSROAGEP(), llvm::AArch64_AM::isSVEMaskOfIdenticalElements(), llvm::LoopVectorizationLegality::isUniform(), llvm::HexagonTargetLowering::LowerBITCAST(), LowerVECTOR_SHUFFLE(), lowerVectorShuffle(), LowerVSETCC(), make_early_inc_range(), matchPair(), mayLoopAccessLocation(), llvm::LoopVectorizationCostModel::memoryInstructionCanBeWidened(), operator!=(), llvm::itanium_demangle::ParameterPack::ParameterPack(), partitionShuffleOfConcats(), promoteLoopAccessesToScalars(), llvm::SDValue::reachesChainWithoutSideEffects(), removeBitcastsFromLoadStoreOnMinMax(), llvm::LazyCallGraph::RefSCC::removeInternalRefEdge(), scalarizeExtractedBinop(), shouldReorderOperands(), shouldSplitOnPredicatedArgument(), SimplifyGEPInst(), simplifyX86varShift(), sinkLastInstruction(), sinkLoopInvariantInstructions(), llvm::InnerLoopVectorizer::sinkScalarOperands(), sortPtrAccesses(), llvm::Function::stealArgumentListFrom(), StrengthenNoWrapFlags(), llvm::JumpThreadingPass::TryToUnfoldSelectInCurrBB(), tryToVectorizeHorReductionOrInstOperands(), llvm::RecordRecTy::typeIsConvertibleTo(), unswitchBestCondition(), unswitchNontrivialInvariants(), unswitchTrivialSwitch(), llvm::mca::Instruction::update(), llvm::InnerLoopVectorizer::updateAnalysis(), and llvm::coverage::CoverageMappingWriter::write().

◆ allocate_buffer()

void* llvm::allocate_buffer ( size_t  Size,
size_t  Alignment 
)
inline

Allocate a buffer of memory with the given size and alignment.

When the compiler supports aligned operator new, this will use it to to handle even over-aligned allocations.

However, this doesn't make any attempt to leverage the fancier techniques like posix_memalign due to portability. It is mostly intended to allow compatibility with platforms that, after aligned allocation was added, use reduced default alignment.

Definition at line 533 of file Compiler.h.

Referenced by llvm::unique_function< ReturnT(ParamTs...)>::unique_function().

◆ allocValueProfData()

static std::unique_ptr<ValueProfData> llvm::allocValueProfData ( uint32_t  TotalSize)
static

◆ allocValueProfDataInstrProf()

ValueProfData* llvm::allocValueProfDataInstrProf ( size_t  TotalSizeInBytes)

Definition at line 636 of file InstrProf.cpp.

References llvm::Intrinsic::memset.

◆ analyzeArguments()

static void llvm::analyzeArguments ( TargetLowering::CallLoweringInfo CLI,
const Function F,
const DataLayout TD,
const SmallVectorImpl< ISD::OutputArg > *  Outs,
const SmallVectorImpl< ISD::InputArg > *  Ins,
CallingConv::ID  CallConv,
SmallVectorImpl< CCValAssign > &  ArgLocs,
CCState CCInfo,
bool  IsCall,
bool  IsVarArg 
)
static

Definition at line 1027 of file AVRISelLowering.cpp.

References llvm::ISD::ADD, llvm::MachineInstrBuilder::addImm(), llvm::MachineFunction::addLiveIn(), llvm::MachineInstrBuilder::addMBB(), llvm::MachineInstrBuilder::addReg(), llvm::MachineBasicBlock::addSuccessor(), llvm::CCValAssign::AExt, analyzeBuiltinArguments(), analyzeStandardArguments(), llvm::ISD::ANY_EXTEND, Arg, assert(), llvm::ISD::AssertSext, llvm::ISD::AssertZext, llvm::CallingConv::AVR_BUILTIN, llvm::CallingConv::AVR_INTR, llvm::CallingConv::AVR_SIGNAL, llvm::CCValAssign::BCvt, llvm::SmallVectorTemplateCommon< T >::begin(), llvm::MachineBasicBlock::begin(), llvm::ISD::BITCAST, BuildMI(), llvm::AVRISD::CALL, llvm::TargetLowering::CallLoweringInfo::CallConv, Callee, llvm::TargetLowering::CallLoweringInfo::Callee, llvm::TargetLowering::CallLoweringInfo::Chain, llvm::CCState::CheckReturn(), Context, llvm::MachineFrameInfo::CreateFixedObject(), llvm::MachineFunction::CreateMachineBasicBlock(), llvm::MachineRegisterInfo::createVirtualRegister(), llvm::TargetLowering::CallLoweringInfo::DAG, llvm::TargetLowering::CallLoweringInfo::DL, llvm::SmallVectorBase::empty(), llvm::SmallVectorTemplateCommon< T >::end(), llvm::MachineBasicBlock::end(), llvm::MachineFunction::end(), llvm::MachineInstr::eraseFromParent(), F(), llvm::CCValAssign::Full, llvm::AttributeList::FunctionIndex, G, llvm::MCInstrInfo::get(), llvm::Function::getAttributes(), llvm::MachineBasicBlock::getBasicBlock(), llvm::TargetRegisterInfo::getCallPreservedMask(), llvm::SelectionDAG::getCALLSEQ_END(), llvm::SelectionDAG::getCALLSEQ_START(), llvm::SelectionDAG::getContext(), llvm::SelectionDAG::getCopyFromReg(), llvm::SelectionDAG::getCopyToReg(), llvm::SelectionDAG::getDataLayout(), llvm::MachineInstr::getDebugLoc(), llvm::MachinePointerInfo::getFixedStack(), llvm::SelectionDAG::getFrameIndex(), llvm::MachineFunction::getFrameInfo(), llvm::MachineFunction::getFunction(), llvm::MachineFunction::getInfo(), llvm::AVRSubtarget::getInstrInfo(), llvm::SelectionDAG::getIntPtrConstant(), llvm::ilist_node_impl< OptionsT >::getIterator(), llvm::SelectionDAG::getLoad(), llvm::CCValAssign::getLocInfo(), llvm::CCValAssign::getLocMemOffset(), llvm::CCValAssign::getLocReg(), llvm::CCValAssign::getLocVT(), llvm::SelectionDAG::getMachineFunction(), llvm::SDValue::getNode(), llvm::SelectionDAG::getNode(), llvm::MachineInstr::getOpcode(), llvm::MachineInstr::getOperand(), llvm::MachineBasicBlock::getParent(), llvm::TargetLoweringBase::getPointerTy(), llvm::MachineOperand::getReg(), llvm::MachineFunction::getRegInfo(), llvm::SelectionDAG::getRegister(), llvm::AVRSubtarget::getRegisterInfo(), llvm::SelectionDAG::getRegisterMask(), llvm::MachinePointerInfo::getStack(), llvm::SelectionDAG::getStore(), llvm::SelectionDAG::getTargetExternalSymbol(), llvm::SelectionDAG::getTargetGlobalAddress(), llvm::TargetLoweringBase::getTargetMachine(), llvm::SDValue::getValue(), llvm::SelectionDAG::getValueType(), llvm::SelectionDAG::getVTList(), llvm::MVT::Glue, llvm::AttributeList::hasAttribute(), I, llvm::MVT::i16, llvm::MVT::i8, llvm::MipsISD::Ins, llvm::TargetLowering::CallLoweringInfo::Ins, llvm::MachineFunction::insert(), llvm::CCValAssign::isMemLoc(), llvm::CCValAssign::isRegLoc(), llvm::TargetLowering::CallLoweringInfo::IsTailCall, llvm::TargetLowering::CallLoweringInfo::IsVarArg, llvm_unreachable, llvm::BitmaskEnumDetail::Mask(), MI, llvm::Attribute::Naked, llvm::MVT::Other, llvm::TargetLowering::CallLoweringInfo::Outs, llvm::TargetLowering::CallLoweringInfo::OutVals, llvm::SmallVectorTemplateBase< T >::push_back(), Reg, llvm::AVRISD::RET_FLAG, llvm::AVRISD::RETI_FLAG, reverse(), llvm::AVRMachineFunctionInfo::setVarArgsFrameIndex(), llvm::CCValAssign::SExt, llvm::ISD::SIGN_EXTEND, llvm::SmallVectorBase::size(), llvm::MachineBasicBlock::splice(), llvm::AVRTargetLowering::Subtarget, TII, llvm::MachineBasicBlock::transferSuccessorsAndUpdatePHIs(), TRI, llvm::ISD::TRUNCATE, llvm::ISD::ZERO_EXTEND, and llvm::CCValAssign::ZExt.

◆ analyzeBuiltinArguments()

static void llvm::analyzeBuiltinArguments ( TargetLowering::CallLoweringInfo CLI,
const Function F,
const DataLayout TD,
const SmallVectorImpl< ISD::OutputArg > *  Outs,
const SmallVectorImpl< ISD::InputArg > *  Ins,
CallingConv::ID  CallConv,
SmallVectorImpl< CCValAssign > &  ArgLocs,
CCState CCInfo,
bool  IsCall,
bool  IsVarArg 
)
static

◆ analyzeStandardArguments()

static void llvm::analyzeStandardArguments ( TargetLowering::CallLoweringInfo CLI,
const Function F,
const DataLayout TD,
const SmallVectorImpl< ISD::OutputArg > *  Outs,
const SmallVectorImpl< ISD::InputArg > *  Ins,
CallingConv::ID  CallConv,
SmallVectorImpl< CCValAssign > &  ArgLocs,
CCState CCInfo,
bool  IsCall,
bool  IsVarArg 
)
static

Analyze incoming and outgoing function arguments.

We need custom C++ code to handle special constraints in the ABI like reversing the order of the pieces of splitted arguments. In addition, all pieces of a certain argument have to be passed either using registers or the stack but never mixing both.

Definition at line 933 of file AVRISelLowering.cpp.

References llvm::CCState::addLoc(), llvm::CCState::AllocateReg(), llvm::CCState::AllocateStack(), llvm::CCState::AnalyzeCallOperands(), llvm::CCState::AnalyzeFormalArguments(), llvm::AMDGPU::HSAMD::Kernel::Key::Args, array_lengthof(), assert(), llvm::SmallVectorTemplateCommon< T >::begin(), llvm::CCValAssign::Full, llvm::DataLayout::getABITypeAlignment(), llvm::CCState::getContext(), llvm::CCValAssign::getMem(), llvm::CCValAssign::getReg(), llvm::DataLayout::getTypeAllocSize(), llvm::MVT::i16, parseExternFuncCallArgs(), parseFunctionArgs(), Reg, reverse(), Size, and llvm::SmallVectorBase::size().

Referenced by analyzeArguments(), and analyzeBuiltinArguments().

◆ annotateValueSite() [1/2]

void llvm::annotateValueSite ( Module M,
Instruction Inst,
const InstrProfRecord InstrProfR,
InstrProfValueKind  ValueKind,
uint32_t  SiteIndx,
uint32_t  MaxMDCount = 3 
)

Get the value profile data for value site SiteIdx from InstrProfR and annotate the instruction Inst with the value profile meta data.

Annotate up to MaxMDCount (default 3) number of records per value site.

Definition at line 813 of file InstrProf.cpp.

References llvm::InstrProfRecord::getNumValueDataForSite(), and llvm::InstrProfRecord::getValueForSite().

Referenced by isIndirectBrTarget(), llvm::pgo::promoteIndirectCall(), and SortCallTargets().

◆ annotateValueSite() [2/2]

void llvm::annotateValueSite ( Module M,
Instruction Inst,
ArrayRef< InstrProfValueData >  VDs,
uint64_t  Sum,
InstrProfValueKind  ValueKind,
uint32_t  MaxMDCount 
)

◆ any_cast() [1/5]

template<class T >
T llvm::any_cast ( const Any Value)

Definition at line 123 of file Any.h.

References llvm::Any::any_cast.

◆ any_cast() [2/5]

template<class T >
T llvm::any_cast ( Any Value)

Definition at line 129 of file Any.h.

References llvm::Any::any_cast.

◆ any_cast() [3/5]

template<class T >
T llvm::any_cast ( Any &&  Value)

Definition at line 135 of file Any.h.

◆ any_cast() [4/5]

template<class T >
const T* llvm::any_cast ( const Any Value)

Definition at line 141 of file Any.h.

References assert().

◆ any_cast() [5/5]

template<class T >
T* llvm::any_cast ( Any Value)

Definition at line 150 of file Any.h.

References assert().

◆ any_isa()

template<typename T >
bool llvm::any_isa ( const Any Value)

Definition at line 115 of file Any.h.

◆ any_of()

template<typename R , typename UnaryPredicate >
bool llvm::any_of ( R &&  Range,
UnaryPredicate  P 
)

Provide wrappers to std::any_of which take ranges instead of having to pass begin/end explicitly.

Definition at line 1193 of file STLExtras.h.

References adl_begin(), and adl_end().

Referenced by addArgumentReturnedAttrs(), llvm::mca::Pipeline::addEventListener(), addIntrinsicToSummary(), llvm::DwarfExpression::addMachineRegExpression(), alwaysAvailable(), AnyAliasLiveIn(), areCallingConvEligibleForTCO_64SVR4(), llvm::SDNode::areOnlyUsersOf(), llvm::DwarfDebug::beginModule(), llvm::AArch64InstrInfo::buildOutlinedFrame(), callHasFloatingPointArgument(), canonicalizeSaturatedSubtract(), canSinkInstructions(), canTrackGlobalVariableInterprocedurally(), checkFunctionsAttributeConsistency(), combineX86ShuffleChain(), containsGCPtrType(), ConvertToSInt(), createLICMPass(), doCandidateWalk(), llvm::GVNExpression::Expression::dump(), llvm::CodeViewContext::emitLineTableForFunction(), emitSignedInt64(), llvm::CodeExtractor::extractCodeRegion(), findDefsUsedOutsideOfLoop(), llvm::sys::Process::FindInEnvPath(), findInnerReductionPhi(), FoldCondBranchOnPHI(), foldInsSequenceIntoBroadcast(), llvm::ScalarEvolution::forgetValue(), getCommonExitBlock(), getInductionVariable(), llvm::DOTGraphTraits< BoUpSLP * >::getNodeLabel(), llvm::SCEVAddRecExpr::getNumIterationsInRange(), getOnlyLiveSuccessor(), getOpcode(), llvm::AArch64InstrInfo::getOutliningCandidateInfo(), getRegClassForUnfoldedLoad(), getSameOpcode(), getTargetConstantBitsFromNode(), getTargetShuffleMask(), llvm::slpvectorizer::BoUpSLP::getTreeCost(), llvm::AMDGPUTTIImpl::getUnrollingPreferences(), llvm::DWARFVerifier::handleDebugInfo(), llvm::CallBase::hasArgument(), llvm::mca::InstructionBase::hasDependentUsers(), llvm::MachineInstr::hasOrderedMemoryRef(), hoistAndMergeSGPRInits(), llvm::SCEVUnionPredicate::implies(), INITIALIZE_PASS(), llvm::AArch64RegisterInfo::isAnyArgRegReserved(), isEFLAGSLive(), llvm::HexagonSubtarget::isHVXVectorType(), llvm::cl::Option::isInAllSubCommands(), llvm::AArch64InstrInfo::isLdStPairSuppressed(), isLoopDead(), llvm::ScalarEvolution::isLoopInvariantPredicate(), llvm::AArch64InstrInfo::isMBBSafeToOutlineFrom(), isOnlyReachableViaThisEdge(), isOverflowIntrinsicNoWrap(), isSCCHeader(), llvm::AArch64InstrInfo::isStridedAccess(), llvm::RecordRecTy::isSubClassOf(), llvm::SelectionDAG::isUndef(), llvm::LiveRange::isUndefIn(), llvm::SMSchedule::isValidSchedule(), isVariableIndexable(), LowerDbgDeclare(), lowerV8I16VectorShuffle(), make_early_inc_range(), matchUnaryPermuteVectorShuffle(), matchVectorShuffleAsByteRotate(), llvm::InstrProfWriter::mergeRecordsFromWriter(), moveUp(), llvm::InnerLoopVectorizer::needsScalarInduction(), packCmovGroup(), llvm::GVNHoist::rank(), resolveTargetShuffleInputsAndMask(), llvm::InlinerPass::run(), llvm::DevirtSCCRepeatedPass< PassT >::run(), setBranchWeights(), llvm::HexagonRegisterInfo::shouldCoalesce(), shouldRotateLoopExitingLatch(), llvm::TargetLowering::SimplifyDemandedVectorElts(), llvm::X86TargetLowering::SimplifyDemandedVectorEltsForTargetNode(), sinkLastInstruction(), splitBlock(), stripNonValidData(), tryToReplaceWithConstant(), UnrollLoop(), UnrollRuntimeLoopRemainder(), unswitchAllTrivialConditions(), llvm::LoopBase< BasicBlock, Loop >::verifyLoop(), and XFormVExtractWithShuffleIntoLoad().

◆ appendToCompilerUsed()

void llvm::appendToCompilerUsed ( Module M,
ArrayRef< GlobalValue *>  Values 
)

Adds global values to the llvm.compiler.used list.

Definition at line 126 of file ModuleUtils.cpp.

References appendToUsedList().

Referenced by llvm::LTOCodeGenerator::compile(), createHWAddressSanitizerPass(), instrumentMaskedLoadOrStore(), RetagMask(), and updateCompilerUsed().

◆ appendToGlobalCtors()

void llvm::appendToGlobalCtors ( Module M,
Function F,
int  Priority,
Constant Data = nullptr 
)

Append F to the list of global ctors of module M with the given Priority.

This wraps the function in the appropriate structure and stores it along side other global constructors. For details see http://llvm.org/docs/LangRef.html#intg_global_ctors

Definition at line 84 of file ModuleUtils.cpp.

References appendToGlobalArray().

Referenced by createEfficiencySanitizerPass(), createHWAddressSanitizerPass(), createThreadSanitizerLegacyPassPass(), llvm::SanitizerStatReport::finish(), getOrInsertGlobal(), INITIALIZE_PASS(), instrumentMaskedLoadOrStore(), needsRuntimeRegistrationOfSectionRange(), and shouldKeepInEntry().

◆ appendToGlobalDtors()

void llvm::appendToGlobalDtors ( Module M,
Function F,
int  Priority,
Constant Data = nullptr 
)

Same as appendToGlobalCtors(), but for global dtors.

Definition at line 88 of file ModuleUtils.cpp.

References appendToGlobalArray().

Referenced by createEfficiencySanitizerPass(), and instrumentMaskedLoadOrStore().

◆ appendToUsed()

void llvm::appendToUsed ( Module M,
ArrayRef< GlobalValue *>  Values 
)

Adds global values to the llvm.used list.

Definition at line 122 of file ModuleUtils.cpp.

References appendToUsedList().

Referenced by needsRuntimeRegistrationOfSectionRange().

◆ apply_tuple()

template<typename F , typename Tuple >
auto llvm::apply_tuple ( F &&  f,
Tuple &&  t 
) -> decltype(detail::apply_tuple_impl( std::forward<F>(f), std::forward<Tuple>(t), build_index_impl< std::tuple_size<typename std::decay<Tuple>::type>::value>

Given an input tuple (a1, a2, ..., an), pass the arguments of the tuple variadically to f as if by calling f(a1, a2, ..., an) and return the result.

Definition at line 1535 of file STLExtras.h.

References llvm::detail::apply_tuple_impl().

Referenced by llvm::formatv_object< Tuple >::formatv_object().

◆ applyMapping()

class llvm::RegisterBankInfo * void llvm::applyMapping ( const OperandsMapper OpdMapper) const

Apply OpdMapper.getInstrMapping() to OpdMapper.getMI().

After this call OpdMapper.getMI() may not be valid anymore. OpdMapper.getInstrMapping().getID() carries the information of what has been chosen to map OpdMapper.getMI(). This ID is set by the various getInstrXXXMapping method.

Therefore, getting the mapping and applying it should be kept in sync.

Definition at line 698 of file RegisterBankInfo.h.

References llvm::RegisterBankInfo::applyDefaultMapping(), llvm::RegisterBankInfo::applyMappingImpl(), llvm::RegisterBankInfo::DefaultMappingID, InstructionMapping::getID(), OperandsMapper::getInstrMapping(), getSizeInBits(), and llvm::RegisterBankInfo::PartialMapping::verify().

Referenced by llvm::RegBankSelect::RepairingPlacement::switchTo().

◆ applyPPCha()

static uint16_t llvm::applyPPCha ( uint64_t  value)
inlinestatic

Definition at line 681 of file RuntimeDyldELF.cpp.

Referenced by applyPPChighesta().

◆ applyPPChi()

static uint16_t llvm::applyPPChi ( uint64_t  value)
inlinestatic

Definition at line 677 of file RuntimeDyldELF.cpp.

Referenced by applyPPChighesta().

◆ applyPPChigher()

static uint16_t llvm::applyPPChigher ( uint64_t  value)
inlinestatic

Definition at line 685 of file RuntimeDyldELF.cpp.

Referenced by applyPPChighesta().

◆ applyPPChighera()

static uint16_t llvm::applyPPChighera ( uint64_t  value)
inlinestatic

Definition at line 689 of file RuntimeDyldELF.cpp.

Referenced by applyPPChighesta().

◆ applyPPChighest()

static uint16_t llvm::applyPPChighest ( uint64_t  value)
inlinestatic

Definition at line 693 of file RuntimeDyldELF.cpp.

Referenced by applyPPChighesta().

◆ applyPPChighesta()

static uint16_t llvm::applyPPChighesta ( uint64_t  value)
inlinestatic

◆ applyPPClo()

static uint16_t llvm::applyPPClo ( uint64_t  value)
inlinestatic

Definition at line 675 of file RuntimeDyldELF.cpp.

Referenced by applyPPChighesta().

◆ ApproximateLoopSize()

unsigned llvm::ApproximateLoopSize ( const Loop L,
unsigned NumCalls,
bool NotDuplicatable,
bool Convergent,
const TargetTransformInfo TTI,
const SmallPtrSetImpl< const Value *> &  EphValues,
unsigned  BEInsns 
)

◆ AreStatisticsEnabled()

bool llvm::AreStatisticsEnabled ( )

◆ ARMCondCodeFromString()

static unsigned llvm::ARMCondCodeFromString ( StringRef  CC)
inlinestatic

◆ ARMCondCodeToString()

static const char* llvm::ARMCondCodeToString ( ARMCC::CondCodes  CC)
inlinestatic

◆ array_lengthof()

template<class T , std::size_t N>
constexpr size_t llvm::array_lengthof ( T(&)  [N])
inline

Find the length of an array.

Definition at line 1044 of file STLExtras.h.

References N.

Referenced by llvm::TargetLoweringBase::addRegisterClass(), AnalyzeArguments(), analyzeStandardArguments(), llvm::ARMBaseInstrInfo::ARMBaseInstrInfo(), canLowerByDroppingEvenElements(), CC_PPC32_SVR4_Custom_AlignArgRegs(), CC_PPC32_SVR4_Custom_AlignFPArgRegs(), CC_PPC32_SVR4_Custom_SkipLastArgRegsPPCF128(), CC_RISCV(), CC_SkipOdd(), llvm::AArch64TargetLowering::CCAssignFnForReturn(), convertAddSubFlagsOpcode(), DecodeCtrRegs64RegisterClass(), DecodeCtrRegsRegisterClass(), DecodeGuestRegs64RegisterClass(), DecodeGuestRegsRegisterClass(), DecodePRRegsRegisterClass(), llvm::PPCInstrInfo::DefinesPredicate(), llvm::MCDwarfLineTableHeader::Emit(), llvm::Mips16TargetLowering::EmitInstrWithCustomInserter(), EnsureStackAlignment(), llvm::SystemZFrameLowering::getCalleeSavedSpillSlots(), llvm::HexagonFrameLowering::getCalleeSavedSpillSlots(), llvm::PPCFrameLowering::getCalleeSavedSpillSlots(), llvm::DIFile::getChecksumKind(), llvm::TargetLoweringBase::getCondCodeAction(), llvm::MipsAsmBackend::getFixupKindInfo(), llvm::RISCVAsmBackend::getFixupKindInfo(), llvm::MCAsmBackend::getFixupKindInfo(), getLdStNInstrDesc(), llvm::TargetLoweringBase::getNumRegisters(), llvm::TargetLoweringBase::getOperationAction(), getPrefixes(), llvm::TargetLoweringBase::getRegisterType(), llvm::object::MachOObjectFile::getRelocationTypeName(), llvm::MipsRegisterInfo::getReservedRegs(), llvm::AMDGPURegisterInfo::getSubRegFromChannel(), llvm::TargetLoweringBase::hasTargetDAGCombine(), haveEfficientBuildVectorPattern(), INITIALIZE_PASS(), llvm::X86_MC::initLLVMToSEHAndCVRegMapping(), isPCRel(), llvm::TargetLoweringBase::isTypeLegal(), lowerCallResult(), LowerCallResult(), LowerVASTART(), mayUsePostIncMode(), llvm::MipsSETargetLowering::MipsSETargetLowering(), needStackSlotPassParameters(), llvm::Triple::normalize(), PrepareCall(), llvm::TargetLoweringBase::setCondCodeAction(), llvm::TargetLoweringBase::setJumpIsExpensive(), llvm::TargetLoweringBase::setOperationAction(), llvm::TargetLoweringBase::setTargetDAGCombine(), llvm::SystemZFrameLowering::SystemZFrameLowering(), llvm::HexagonDAGToDAGISel::tryLoadOfLoadIntrinsic(), write_hex(), and write_padding().

◆ array_pod_sort() [1/2]

template<class IteratorTy >
void llvm::array_pod_sort ( IteratorTy  Start,
IteratorTy  End 
)
inline

array_pod_sort - This sorts an array with the specified start and end extent.

This is just like std::sort, except that it calls qsort instead of using an inlined template. qsort is slightly slower than std::sort, but most sorts are not performance critical in LLVM and std::sort has to be template instantiated for each type, leading to significant measured code bloat. This function should generally be used instead of std::sort where possible.

This function assumes that you have simple POD-like types that can be compared with std::less and can be moved with memcpy. If this isn't true, you should use std::sort.

NOTE: If qsort_r were portable, we could allow a custom comparator and default to std::less.

Definition at line 1083 of file STLExtras.h.

Referenced by CasesAreContiguous(), llvm::SplitAnalysis::clear(), llvm::AccelTableBase::computeBucketCount(), llvm::object::computeSymbolSizes(), llvm::symbolize::SymbolizableObjectFile::create(), llvm::X86TargetLowering::ExpandInlineAsm(), llvm::ScalarEvolution::findArrayDimensions(), llvm::MDAttachmentMap::getAll(), llvm::MachineModuleInfoImpl::getSortedStubs(), isTerminalReg(), isWeak(), lookupFoldTable(), lowerV16I8VectorShuffle(), lowerV8I16GeneralSingleInputVectorShuffle(), mergeOperations(), llvm::PassNameParser::printOptionInfo(), llvm::TargetRegistry::printRegisteredTargetsForVersion(), llvm::LegacyInlinerBase::removeDeadFunctions(), setUsedInitializer(), SimplifyBranchOnICmpChain(), llvm::JumpThreadingPass::SimplifyPartiallyRedundantLoad(), llvm::InstCombiner::SliceUpIllegalIntegerPHI(), sortOpts(), sortSubCommands(), and ValuesOverlap().

◆ array_pod_sort() [2/2]

template<class IteratorTy >
void llvm::array_pod_sort ( IteratorTy  Start,
IteratorTy  End,
int(*)(const typename std::iterator_traits< IteratorTy >::value_type *, const typename std::iterator_traits< IteratorTy >::value_type *)  Compare 
)
inline

Definition at line 1096 of file STLExtras.h.

◆ array_pod_sort_comparator()

template<typename T >
int llvm::array_pod_sort_comparator ( const void *  P1,
const void *  P2 
)
inline

Adapt std::less<T> for array_pod_sort.

Definition at line 1050 of file STLExtras.h.

◆ arrayRefFromStringRef()

ArrayRef<uint8_t> llvm::arrayRefFromStringRef ( StringRef  Input)
inline

Construct a string ref from an array ref of unsigned chars.

Definition at line 61 of file StringExtras.h.

References llvm::StringRef::bytes_begin(), and llvm::StringRef::bytes_end().

Referenced by llvm::pdb::PDBFileBuilder::commit(), llvm::pdb::PDBFileBuilder::getNamedStreamIndex(), and llvm::BinaryStreamWriter::writeFixedString().

◆ attributesPermitTailCall()

bool llvm::attributesPermitTailCall ( const Function F,
const Instruction I,
const ReturnInst Ret,
const TargetLoweringBase TLI,
bool AllowDifferingSizes = nullptr 
)

Test if given that the input instruction is in the tail call position, if there is an attribute mismatch between the caller and the callee that will inhibit tail call optimizations.

AllowDifferingSizes is an output parameter which, if forming a tail call is permitted, determines whether it's permitted only if the size of the caller's and callee's return types match exactly.

Definition at line 513 of file Analysis.cpp.

References llvm::Intrinsic::getAttributes(), llvm::Function::getAttributes(), llvm::Attribute::NoAlias, llvm::Attribute::NonNull, llvm::AttributeList::ReturnIndex, llvm::Attribute::SExt, llvm::Value::use_empty(), and llvm::Attribute::ZExt.

Referenced by ComputeLinearIndex(), despeculateCountZeros(), and returnTypeIsEligibleForTailCall().

◆ AVRDAGToDAGISel::select< AVRISD::CALL >()

template<>
bool llvm::AVRDAGToDAGISel::select< AVRISD::CALL > ( SDNode N)

◆ AVRDAGToDAGISel::select< ISD::BRIND >()

template<>
bool llvm::AVRDAGToDAGISel::select< ISD::BRIND > ( SDNode N)

◆ AVRDAGToDAGISel::select< ISD::FrameIndex >()

template<>
bool llvm::AVRDAGToDAGISel::select< ISD::FrameIndex > ( SDNode N)

◆ AVRDAGToDAGISel::select< ISD::LOAD >()

template<>
bool llvm::AVRDAGToDAGISel::select< ISD::LOAD > ( SDNode N)

◆ AVRDAGToDAGISel::select< ISD::STORE >()

template<>
bool llvm::AVRDAGToDAGISel::select< ISD::STORE > ( SDNode N)

◆ baseRegNeedsLoadStoreMask()

bool llvm::baseRegNeedsLoadStoreMask ( unsigned  Reg)

Definition at line 258 of file MipsNaClELFStreamer.cpp.

References llvm::X86II::T8.

◆ bf_begin()

template<class T >
bf_iterator<T> llvm::bf_begin ( const T G)

Definition at line 148 of file BreadthFirstIterator.h.

References llvm::bf_iterator< GraphT, SetType, GT >::begin().

Referenced by breadth_first().

◆ bf_end()

template<class T >
bf_iterator<T> llvm::bf_end ( const T G)

Definition at line 152 of file BreadthFirstIterator.h.

References llvm::bf_iterator< GraphT, SetType, GT >::end().

Referenced by breadth_first().

◆ biasPhysReg()

int llvm::biasPhysReg ( const SUnit SU,
bool  isTop 
)

Minimize physical register live ranges.

Regalloc wants them adjacent to their physreg def/use.

FIXME: This is an unnecessary check on the critical path. Most are root/leaf copies which can be prescheduled. The rest (e.g. x86 MUL) could be bundled with the operation that produces or consumes the physreg. We'll do this when regalloc has support for parallel copies.

Definition at line 2881 of file MachineScheduler.cpp.

References llvm::MachineInstr::defs(), llvm::SUnit::getInstr(), llvm::MachineInstr::getOperand(), llvm::MachineOperand::getReg(), llvm::MachineInstr::isCopy(), llvm::MachineInstr::isMoveImmediate(), llvm::TargetRegisterInfo::isPhysicalRegister(), MI, llvm::SUnit::NumPredsLeft, and llvm::SUnit::NumSuccsLeft.

Referenced by llvm::GenericSchedulerBase::GenericSchedulerBase(), and llvm::GenericScheduler::tryCandidate().

◆ bit_cast()

template<typename To , typename From , typename = typename std::enable_if<sizeof(To) == sizeof(From)>::type>
To llvm::bit_cast ( const From from)
inlinenoexcept

◆ BitcodeErrorCategory()

const std::error_category & llvm::BitcodeErrorCategory ( )

Definition at line 5704 of file BitcodeReader.cpp.

References ErrorCategory.

Referenced by make_error_code(), and SkipBitcodeWrapperHeader().

◆ BitsToDouble()

double llvm::BitsToDouble ( uint64_t  Bits)
inline

◆ BitsToFloat()

float llvm::BitsToFloat ( uint32_t  Bits)
inline

This function takes a 32-bit integer and returns the bit equivalent float.

Definition at line 581 of file MathExtras.h.

References F(), and llvm::Intrinsic::memcpy.

Referenced by llvm::APInt::bitsToFloat(), getFPTernOp(), getMulHu(), llvm::R600InstPrinter::printLiteral(), and llvm::msgpack::Reader::read().

◆ breadth_first()

template<class T >
iterator_range<bf_iterator<T> > llvm::breadth_first ( const T G)

Definition at line 157 of file BreadthFirstIterator.h.

References bf_begin(), bf_end(), and make_range().

◆ buildDbgValueForSpill()

MachineInstr * llvm::buildDbgValueForSpill ( MachineBasicBlock BB,
MachineBasicBlock::iterator  I,
const MachineInstr Orig,
int  FrameIndex 
)

◆ BuildMI() [1/16]

MachineInstrBuilder llvm::BuildMI ( MachineFunction MF,
const DebugLoc DL,
const MCInstrDesc MCID 
)
inline

Builder interface. Specify how to create the initial instruction itself.

Definition at line 304 of file MachineInstrBuilder.h.

References llvm::MachineFunction::CreateMachineInstr().

Referenced by addAsmInstr(), addEpilog(), addEpilogLeaf(), addEpilogOnlyR10(), addExclusiveRegPair(), llvm::MachineBasicBlock::addLiveIn(), addProlog(), addPrologLeaf(), addSegmentsWithValNo(), llvm::X86FrameLowering::adjustForHiPEPrologue(), llvm::ARMFrameLowering::adjustForSegmentedStacks(), llvm::X86FrameLowering::adjustForSegmentedStacks(), llvm::SITargetLowering::AdjustInstrPostInstrSelection(), llvm::MipsSEInstrInfo::adjustStackPtr(), allPhiOperandsUndefined(), llvm::AMDGPUInstructionSelector::AMDGPUInstructionSelector(), analyzeArguments(), llvm::MipsInstrInfo::analyzeBranch(), llvm::AVRInstrInfo::analyzeBranch(), AnyAliasLiveIn(), AppendEndToFunction(), areCandidatesToMergeOrPair(), llvm::HexagonFrameLowering::assignCalleeSavedSpillSlots(), branchMaxOffsets(), llvm::ARMBaseInstrInfo::breakPartialRegDependency(), llvm::X86InstrInfo::breakPartialRegDependency(), llvm::Mips16InstrInfo::BuildAddiuSpImm(), llvm::X86FrameLowering::BuildCFI(), buildDbgValueForSpill(), llvm::R600InstrInfo::buildDefaultInstruction(), llvm::MachineIRBuilder::buildDirectDbgValue(), buildEXP(), llvm::SIInstrInfo::buildExtractSubReg(), llvm::MachineIRBuilder::buildIndirectDbgValue(), llvm::MachineIRBuilder::buildInstrNoInsert(), BuildMI(), buildMUBUFOffsetLoadStore(), llvm::AArch64InstrInfo::buildOutlinedFrame(), llvm::X86InstrInfo::buildOutlinedFrame(), llvm::SIInstrInfo::buildShrunkInst(), llvm::SIInstrInfo::calculateLDSSpillAddress(), calculateSetFPREG(), callHasRegMask(), canMoveInstsAcrossMemOp(), llvm::TailDuplicator::canTailDuplicate(), canTurnIntoCOPY(), CC_MipsO32_FP64(), changeFCMPPredToAArch64CC(), llvm::X86InstrInfo::classifyLEAReg(), CombineCVTAToLocal(), llvm::PPCInstrInfo::commuteInstructionImpl(), CompareMBBNumbers(), computeBytesPoppedByCalleeForSRet(), ComputeCommonTailLength(), llvm::FastISel::constrainOperandRegClass(), constrainRegToClass(), ContainsReg(), convertCalleeSaveRestoreToSPPrePostIncDec(), ConvertImplicitDefToConstZero(), llvm::SIInstrInfo::convertNonUniformIfRegion(), llvm::SIInstrInfo::convertNonUniformLoopRegion(), llvm::ARMBaseInstrInfo::convertToThreeAddress(), llvm::X86InstrInfo::convertToThreeAddress(), llvm::SIInstrInfo::convertToThreeAddress(), llvm::ARMBaseInstrInfo::copyFromCPSR(), llvm::AArch64InstrInfo::copyGPRRegTuple(), llvm::BPFInstrInfo::copyPhysReg(), llvm::RISCVInstrInfo::copyPhysReg(), llvm::MSP430InstrInfo::copyPhysReg(), llvm::WebAssemblyInstrInfo::copyPhysReg(), llvm::Thumb1InstrInfo::copyPhysReg(), llvm::Thumb2InstrInfo::copyPhysReg(), llvm::MipsSEInstrInfo::copyPhysReg(), llvm::LanaiInstrInfo::copyPhysReg(), llvm::Mips16InstrInfo::copyPhysReg(), llvm::NVPTXInstrInfo::copyPhysReg(), llvm::XCoreInstrInfo::copyPhysReg(), llvm::ARCInstrInfo::copyPhysReg(), llvm::AVRInstrInfo::copyPhysReg(), llvm::SparcInstrInfo::copyPhysReg(), llvm::AArch64InstrInfo::copyPhysReg(), llvm::SIInstrInfo::copyPhysReg(), llvm::HexagonInstrInfo::copyPhysReg(), llvm::ARMBaseInstrInfo::copyPhysReg(), llvm::SystemZInstrInfo::copyPhysReg(), llvm::PPCInstrInfo::copyPhysReg(), llvm::X86InstrInfo::copyPhysReg(), llvm::ARMBaseInstrInfo::copyToCPSR(), createLanaiDelaySlotFillerPass(), createPHIsForCMOVsInSinkBB(), createPHIsForSelects(), createSIAddIMGInitPass(), createSIDebuggerInsertNopsPass(), createSIFixWWMLivenessPass(), createSIModeRegisterPass(), createSIWholeQuadModePass(), createSparcDelaySlotFillerPass(), createSwiftErrorEntriesInEntryBlock(), createX86FixupBWInsts(), createX86FixupSetCC(), createX86IndirectBranchTrackingPass(), createX86OptimizeLEAs(), createX86PadShortFunctions(), createX86RetpolineThunksPass(), llvm::HexagonFrameLowering::determineCalleeSaves(), doesNotGeneratecode(), llvm::SplitEditor::dump(), llvm::MSP430FrameLowering::eliminateCallFramePseudoInstr(), llvm::AVRFrameLowering::eliminateCallFramePseudoInstr(), llvm::XCoreFrameLowering::eliminateCallFramePseudoInstr(), llvm::SIFrameLowering::eliminateCallFramePseudoInstr(), llvm::PPCFrameLowering::eliminateCallFramePseudoInstr(), llvm::BPFRegisterInfo::eliminateFrameIndex(), llvm::MSP430RegisterInfo::eliminateFrameIndex(), llvm::SparcRegisterInfo::eliminateFrameIndex(), llvm::WebAssemblyRegisterInfo::eliminateFrameIndex(), llvm::RISCVRegisterInfo::eliminateFrameIndex(), llvm::LanaiRegisterInfo::eliminateFrameIndex(), llvm::AVRRegisterInfo::eliminateFrameIndex(), llvm::HexagonRegisterInfo::eliminateFrameIndex(), llvm::SystemZRegisterInfo::eliminateFrameIndex(), llvm::SIRegisterInfo::eliminateFrameIndex(), llvm::PPCRegisterInfo::eliminateFrameIndex(), emitAlignedDPRCS2Restores(), emitAlignedDPRCS2Spills(), emitAligningInstructions(), emitARMRegPlusImmediate(), llvm::PPCTargetLowering::EmitAtomicBinary(), emitBuildPairF64Pseudo(), llvm::AArch64FrameLowering::emitCalleeSavedFrameMoves(), EmitCfiOffset(), emitClzero(), llvm::InstrEmitter::EmitDbgLabel(), llvm::InstrEmitter::EmitDbgValue(), EmitDefCfaOffset(), EmitDefCfaRegister(), llvm::PPCTargetLowering::emitEHSjLjLongJmp(), llvm::PPCTargetLowering::emitEHSjLjSetJmp(), llvm::SIFrameLowering::emitEntryFunctionPrologue(), llvm::AVRFrameLowering::emitEpilogue(), llvm::Mips16FrameLowering::emitEpilogue(), llvm::Thumb1FrameLowering::emitEpilogue(), llvm::MipsSEFrameLowering::emitEpilogue(), llvm::SparcFrameLowering::emitEpilogue(), llvm::MSP430FrameLowering::emitEpilogue(), llvm::XCoreFrameLowering::emitEpilogue(), llvm::SIFrameLowering::emitEpilogue(), llvm::ARMFrameLowering::emitEpilogue(), llvm::AArch64FrameLowering::emitEpilogue(), llvm::ARCFrameLowering::emitEpilogue(), llvm::LanaiFrameLowering::emitEpilogue(), llvm::WebAssemblyFrameLowering::emitEpilogue(), llvm::X86FrameLowering::emitEpilogue(), llvm::PPCFrameLowering::emitEpilogue(), llvm::AArch64TargetLowering::EmitF128CSEL(), emitFrameOffset(), llvm::HexagonDAGToDAGISel::EmitFunctionEntryCode(), emitGPDisp(), emitIncrement(), emitIndirectDst(), emitIndirectSrc(), llvm::R600TargetLowering::EmitInstrWithCustomInserter(), llvm::BPFTargetLowering::EmitInstrWithCustomInserter(), llvm::RISCVTargetLowering::EmitInstrWithCustomInserter(), llvm::AVRTargetLowering::EmitInstrWithCustomInserter(), llvm::XCoreTargetLowering::EmitInstrWithCustomInserter(), llvm::MSP430TargetLowering::EmitInstrWithCustomInserter(), llvm::SITargetLowering::EmitInstrWithCustomInserter(), llvm::ARMTargetLowering::EmitInstrWithCustomInserter(), llvm::MipsTargetLowering::EmitInstrWithCustomInserter(), llvm::PPCTargetLowering::EmitInstrWithCustomInserter(), llvm::X86TargetLowering::EmitInstrWithCustomInserter(), llvm::MachineRegisterInfo::EmitLiveInCopies(), llvm::ARMBaseRegisterInfo::emitLoadConstPool(), emitLoadM0FromVGPRLoop(), emitLoadSRsrcFromVGPRLoop(), emitMonitor(), llvm::PPCTargetLowering::EmitPartwordAtomicBinary(), llvm::TargetLoweringBase::emitPatchPoint(), emitPostLd(), emitPostSt(), llvm::AVRFrameLowering::emitPrologue(), llvm::Mips16FrameLowering::emitPrologue(), llvm::NVPTXFrameLowering::emitPrologue(), llvm::Thumb1FrameLowering::emitPrologue(), llvm::MipsSEFrameLowering::emitPrologue(), llvm::SparcFrameLowering::emitPrologue(), llvm::XCoreFrameLowering::emitPrologue(), llvm::MSP430FrameLowering::emitPrologue(), llvm::SIFrameLowering::emitPrologue(), llvm::ARMFrameLowering::emitPrologue(), llvm::ARCFrameLowering::emitPrologue(), llvm::AArch64FrameLowering::emitPrologue(), llvm::LanaiFrameLowering::emitPrologue(), llvm::SystemZFrameLowering::emitPrologue(), llvm::WebAssemblyFrameLowering::emitPrologue(), llvm::X86FrameLowering::emitPrologue(), llvm::PPCFrameLowering::emitPrologue(), emitRDPKRU(), emitRegUpdate(), llvm::MSP430TargetLowering::EmitShiftInstr(), emitSplitF64Pseudo(), llvm::X86FrameLowering::emitSPUpdate(), emitT2RegPlusImmediate(), emitThumb1LoadConstPool(), emitThumb2LoadConstPool(), emitThumbRegPlusImmediate(), emitThumbRegPlusImmInReg(), emitWRPKRU(), emitXBegin(), llvm::TargetLoweringBase::emitXRayCustomEvent(), llvm::TargetLoweringBase::emitXRayTypedEvent(), enableAllocFrameElim(), eraseDeadBBsAndChildren(), llvm::InstructionSelector::executeMatchTable(), expandLoadStackGuard(), llvm::ARMBaseInstrInfo::expandLoadStackGuardBase(), expandMOV32r1(), ExpandMOVImmSExti8(), llvm::HexagonInstrInfo::expandPostRAPseudo(), llvm::SIInstrInfo::expandPostRAPseudo(), llvm::AArch64InstrInfo::expandPostRAPseudo(), llvm::PPCInstrInfo::expandPostRAPseudo(), llvm::SparcTargetLowering::expandSelectCC(), llvm::HexagonInstrInfo::expandVGatherPseudo(), extractRsrcPtr(), llvm::FastISel::fastEmitInst_(), llvm::FastISel::fastEmitInst_extractsubreg(), llvm::FastISel::fastEmitInst_f(), llvm::FastISel::fastEmitInst_i(), llvm::FastISel::fastEmitInst_r(), llvm::FastISel::fastEmitInst_ri(), llvm::FastISel::fastEmitInst_rii(), llvm::FastISel::fastEmitInst_rr(), llvm::FastISel::fastEmitInst_rri(), llvm::FastISel::fastEmitInst_rrr(), finalizeBundle(), findIncDecAfter(), findNextInsertLocation(), findPotentialBlockers(), findSingleRegDef(), findStartOfTree(), findTemporariesForLR(), findUncondBrI(), fixStackStores(), fixupGlobalSaddr(), llvm::ARMBaseInstrInfo::FoldImmediate(), llvm::SystemZInstrInfo::foldMemoryOperandImpl(), foldVGPRCopyIntoRegSequence(), forceReg(), llvm::HexagonInstrInfo::genAllInsnTimingClasses(), llvm::AArch64InstrInfo::genAlternativeCodeSequence(), generateStackAdjustment(), genFusedMultiply(), llvm::MipsInstrInfo::genInstrWithNewOpc(), genMaddR(), llvm::SIInstrInfo::getAddNoCarry(), getAdjustedCmp(), getAllSGPRs(), getCmpForPseudo(), getCompareCC(), getComparePred(), getCompareSourceReg(), getConstant(), getDPPOp(), GetDSubRegs(), getEquivalentCallShort(), llvm::ARMTargetLowering::getExceptionSelectorRegister(), getFallThroughMBB(), llvm::HexagonFrameLowering::getFrameIndexReference(), llvm::SparcInstrInfo::getGlobalBaseReg(), getImplicitScaleFactor(), llvm::PPCInstrInfo::getLoadOpcodeForSpill(), getLoadStoreOffsetAlign(), getLSMultipleTransferSize(), getMappedOp(), getMopState(), getNewSource(), getNewValueJumpOpcode(), getPostIndexedLoadStoreOpcode(), getReassignedChan(), getRegClassForUnfoldedLoad(), getRegClassFromGRPhysReg(), llvm::FastISel::getRegForValue(), getRegsUsedByPHIs(), getRetpolineSymbol(), llvm::X86InstrInfo::getSerializableDirectMachineOperandTargetFlags(), getSmrdOpcode(), getSubOpcode(), getTag(), llvm::BPFTargetLowering::getTargetNodeName(), getUnconditionalBrDisp(), getUnderlyingArgReg(), llvm::ARMInstrInfo::getUnindexedOpcode(), llvm::MipsTargetLowering::HandleByVal(), HandleVRSaveUpdate(), HasArgumentDef(), llvm::RISCVFrameLowering::hasFP(), hasOneExitNode(), hasUseAfterLoop(), hasVulnerableLoad(), IfNeededExtSP(), IfNeededLDAWSP(), INITIALIZE_PASS(), llvm::X86FrameLowering::inlineStackProbe(), llvm::WebAssemblyInstrInfo::insertBranch(), llvm::BPFInstrInfo::insertBranch(), llvm::XCoreInstrInfo::insertBranch(), llvm::ARCInstrInfo::insertBranch(), llvm::RISCVInstrInfo::insertBranch(), llvm::NVPTXInstrInfo::insertBranch(), llvm::MSP430InstrInfo::insertBranch(), llvm::MipsInstrInfo::insertBranch(), llvm::SparcInstrInfo::insertBranch(), llvm::AVRInstrInfo::insertBranch(), llvm::HexagonInstrInfo::insertBranch(), llvm::LanaiInstrInfo::insertBranch(), llvm::ARMBaseInstrInfo::insertBranch(), llvm::AArch64InstrInfo::insertBranch(), llvm::R600InstrInfo::insertBranch(), llvm::SystemZInstrInfo::insertBranch(), llvm::SIInstrInfo::insertBranch(), llvm::PPCInstrInfo::insertBranch(), llvm::X86InstrInfo::insertBranch(), llvm::HexagonFrameLowering::insertCFIInstructions(), llvm::SITargetLowering::insertCopiesSplitCSR(), llvm::AArch64TargetLowering::insertCopiesSplitCSR(), llvm::PPCTargetLowering::insertCopiesSplitCSR(), insertCopy(), insertDivByZeroTrap(), llvm::SIInstrInfo::insertEQ(), InsertFPConstInst(), InsertFPImmInst(), llvm::RISCVInstrInfo::insertIndirectBranch(), llvm::AVRInstrInfo::insertIndirectBranch(), llvm::SIInstrInfo::insertIndirectBranch(), InsertLDR_STR(), llvm::SIInstrInfo::insertNE(), InsertNewDef(), llvm::MipsInstrInfo::insertNoop(), llvm::HexagonInstrInfo::insertNoop(), llvm::PPCInstrInfo::insertNoop(), insertNopBeforeInstruction(), llvm::AArch64InstrInfo::insertOutlinedCall(), llvm::X86InstrInfo::insertOutlinedCall(), insertPHI(), llvm::SIInstrInfo::insertReturn(), InsertReturnAddressAuth(), InsertSEH(), llvm::AArch64InstrInfo::insertSelect(), llvm::SystemZInstrInfo::insertSelect(), llvm::PPCInstrInfo::insertSelect(), llvm::SIInstrInfo::insertSelect(), llvm::X86InstrInfo::insertSelect(), InsertSPConstInst(), InsertSPImmInst(), insertUndefLaneMask(), llvm::SIInstrInfo::insertVectorSelect(), llvm::SIInstrInfo::insertWaitStates(), instrDefsUsesSCC(), isCopy(), isCopyMulResult(), isEFLAGSLive(), isFpMulInstruction(), isFullUndefDef(), isFunctionEntryBlock(), isHardwareLoop(), isInRage(), llvm::X86TargetLowering::isIntDivCheap(), isLEASimpleIncOrDec(), isLiveOut(), llvm::ARMBaseInstrInfo::isLoadFromStackSlotPostFE(), isMergeableLdStUpdate(), IsMovepDestinationRegPair(), isMulPowOf2(), isPHIRegionIndex(), IsSafeAndProfitableToMove(), isSExtLoad(), isSimpleIf(), llvm::SIInstrInfo::legalizeGenericOperand(), llvm::SIInstrInfo::legalizeOperands(), llvm::SIInstrInfo::legalizeOperandsVOP2(), llvm::SIInstrInfo::legalizeOpWithMove(), llvm::MipsSEInstrInfo::loadImmediate(), llvm::XCoreInstrInfo::loadImmediate(), llvm::ARCInstrInfo::loadImmediate(), llvm::Mips16InstrInfo::loadImmediate(), llvm::SystemZInstrInfo::loadImmediate(), loadM0FromVGPR(), llvm::X86InstrInfo::loadRegFromAddr(), llvm::MipsSEInstrInfo::loadRegFromStack(), llvm::Mips16InstrInfo::loadRegFromStack(), llvm::BPFInstrInfo::loadRegFromStackSlot(), llvm::RISCVInstrInfo::loadRegFromStackSlot(), llvm::MSP430InstrInfo::loadRegFromStackSlot(), llvm::Thumb1InstrInfo::loadRegFromStackSlot(), llvm::Thumb2InstrInfo::loadRegFromStackSlot(), llvm::LanaiInstrInfo::loadRegFromStackSlot(), llvm::XCoreInstrInfo::loadRegFromStackSlot(), llvm::ARCInstrInfo::loadRegFromStackSlot(), llvm::AVRInstrInfo::loadRegFromStackSlot(), llvm::SparcInstrInfo::loadRegFromStackSlot(), llvm::AArch64InstrInfo::loadRegFromStackSlot(), llvm::HexagonInstrInfo::loadRegFromStackSlot(), llvm::ARMBaseInstrInfo::loadRegFromStackSlot(), llvm::SIInstrInfo::loadRegFromStackSlot(), llvm::SystemZInstrInfo::loadRegFromStackSlot(), llvm::X86InstrInfo::loadRegFromStackSlot(), loadRegPairFromStackSlot(), loadSRsrcFromVGPR(), llvm::PPCRegisterInfo::lowerCRBitRestore(), llvm::PPCRegisterInfo::lowerCRBitSpilling(), llvm::PPCRegisterInfo::lowerCRRestore(), llvm::PPCRegisterInfo::lowerCRSpilling(), llvm::PPCRegisterInfo::lowerDynamicAlloc(), llvm::PPCRegisterInfo::lowerDynamicAreaOffset(), LowerFPToInt(), llvm::PPCRegisterInfo::lowerVRSAVERestore(), llvm::PPCRegisterInfo::lowerVRSAVESpilling(), llvm::Mips16InstrInfo::makeFrame(), makeImplicit(), MakeM0Inst(), mapWasmLandingPadIndex(), matchSwap(), llvm::SIRegisterInfo::materializeFrameBaseRegister(), llvm::AArch64RegisterInfo::materializeFrameBaseRegister(), llvm::PPCRegisterInfo::materializeFrameBaseRegister(), llvm::ARMBaseRegisterInfo::materializeFrameBaseRegister(), llvm::SIInstrInfo::materializeImmediate(), mergeOperations(), Mips16WhichOp8uOr16simm(), MoveAndTeeForMultiUse(), llvm::SIInstrInfo::moveToVALU(), llvm::RISCVInstrInfo::movImm32(), llvm::PPCInstrInfo::optimizeCompareInstr(), llvm::AArch64InstrInfo::optimizeCondBranch(), llvm::LanaiInstrInfo::optimizeSelect(), llvm::ARMBaseInstrInfo::optimizeSelect(), optimizeVcndVcmpPair(), packCmovGroup(), parseCond(), llvm::HexagonInstrInfo::PredicateInstruction(), llvm::AArch64FrameLowering::processFunctionBeforeFrameFinalized(), llvm::X86FrameLowering::processFunctionBeforeFrameFinalized(), ProcessSourceNode(), propagateSwiftErrorVRegs(), llvm::SIInstrInfo::readlaneVGPRToSGPR(), readsVCCZ(), llvm::TargetInstrInfo::reassociateOps(), llvm::HexagonInstrInfo::reduceLoopCount(), registerDefinedBetween(), llvm::ARMBaseInstrInfo::reMaterialize(), llvm::X86InstrInfo::reMaterialize(), llvm::AArch64InstrInfo::removeBranch(), removeExternalCFGEdges(), llvm::X86InstrInfo::replaceBranchWithTailCall(), replaceFI(), ReplaceFrameIndex(), llvm::ARMTargetLowering::ReplaceNodeResults(), reportIllegalCopy(), llvm::ARMFrameLowering::ResolveFrameIndexReference(), llvm::AVRFrameLowering::restoreCalleeSavedRegisters(), llvm::Thumb1FrameLowering::restoreCalleeSavedRegisters(), llvm::SystemZFrameLowering::restoreCalleeSavedRegisters(), llvm::MSP430FrameLowering::restoreCalleeSavedRegisters(), llvm::AArch64FrameLowering::restoreCalleeSavedRegisters(), llvm::X86FrameLowering::restoreCalleeSavedRegisters(), llvm::PPCFrameLowering::restoreCalleeSavedRegisters(), restoreCRs(), llvm::Mips16InstrInfo::restoreFrame(), llvm::SIRegisterInfo::restoreSGPR(), RestoreSpillList(), llvm::X86FrameLowering::restoreWin32EHStackPointers(), llvm::UnreachableBlockElimPass::run(), llvm::InsertNOPLoad::runOnMachineFunction(), llvm::SelectionDAGISel::runOnMachineFunction(), llvm::FixAllFDIVSQRT::runOnMachineFunction(), llvm::MachinePipeliner::runOnMachineFunction(), llvm::AVRDynAllocaSR::runOnMachineFunction(), llvm::ThumbRegisterInfo::saveScavengerRegister(), llvm::FastISel::selectBitCast(), llvm::FastISel::selectCall(), selectCopy(), selectFP16CopyFromGPR32(), llvm::FastISel::selectIntrinsicCall(), llvm::FastISel::selectPatchpoint(), llvm::FastISel::selectStackmap(), llvm::FastISel::selectXRayCustomEvent(), llvm::FastISel::selectXRayTypedEvent(), llvm::FunctionLoweringInfo::set(), setCallTargetReg(), llvm::ARMBaseInstrInfo::setExecutionDomain(), setM0ToIndexFromSGPR(), llvm::SparcFrameLowering::SparcFrameLowering(), llvm::AVRFrameLowering::spillCalleeSavedRegisters(), llvm::Thumb1FrameLowering::spillCalleeSavedRegisters(), llvm::SystemZFrameLowering::spillCalleeSavedRegisters(), llvm::MipsSEFrameLowering::spillCalleeSavedRegisters(), llvm::MSP430FrameLowering::spillCalleeSavedRegisters(), llvm::AArch64FrameLowering::spillCalleeSavedRegisters(), llvm::X86FrameLowering::spillCalleeSavedRegisters(), llvm::PPCFrameLowering::spillCalleeSavedRegisters(), llvm::SIRegisterInfo::spillSGPR(), splitEdge(), splitMBB(), storeRegPairToStackSlot(), llvm::X86InstrInfo::storeRegToAddr(), llvm::MipsSEInstrInfo::storeRegToStack(), llvm::Mips16InstrInfo::storeRegToStack(), llvm::BPFInstrInfo::storeRegToStackSlot(), llvm::RISCVInstrInfo::storeRegToStackSlot(), llvm::MSP430InstrInfo::storeRegToStackSlot(), llvm::Thumb1InstrInfo::storeRegToStackSlot(), llvm::Thumb2InstrInfo::storeRegToStackSlot(), llvm::LanaiInstrInfo::storeRegToStackSlot(), llvm::XCoreInstrInfo::storeRegToStackSlot(), llvm::ARCInstrInfo::storeRegToStackSlot(), llvm::AVRInstrInfo::storeRegToStackSlot(), llvm::SparcInstrInfo::storeRegToStackSlot(), llvm::AArch64InstrInfo::storeRegToStackSlot(), llvm::HexagonInstrInfo::storeRegToStackSlot(), llvm::ARMBaseInstrInfo::storeRegToStackSlot(), llvm::SIInstrInfo::storeRegToStackSlot(), llvm::SystemZInstrInfo::storeRegToStackSlot(), llvm::PPCInstrInfo::storeRegToStackSlot(), llvm::X86InstrInfo::storeRegToStackSlot(), subRangeLiveAt(), llvm::SystemZInstrInfo::SystemZInstrInfo(), trySequenceOfOnes(), updateOperand(), VerifyLowRegs(), WindowsRequiresStackProbe(), llvm::WebAssemblyFrameLowering::writeSPToGlobal(), and X86ChooseCmpImmediateOpcode().

◆ BuildMI() [2/16]

MachineInstrBuilder llvm::BuildMI ( MachineFunction MF,
const DebugLoc DL,
const MCInstrDesc MCID,
unsigned  DestReg 
)
inline

This version of the builder sets up the first operand as a destination virtual register.

Definition at line 311 of file MachineInstrBuilder.h.

References llvm::MachineFunction::CreateMachineInstr(), and llvm::RegState::Define.

◆ BuildMI() [3/16]

MachineInstrBuilder llvm::BuildMI ( MachineBasicBlock BB,
MachineBasicBlock::iterator  I,
const DebugLoc DL,
const MCInstrDesc MCID,
unsigned  DestReg 
)
inline

This version of the builder inserts the newly-built instruction before the given position in the given MachineBasicBlock, and sets up the first operand as a destination virtual register.

Definition at line 320 of file MachineInstrBuilder.h.

References llvm::MachineInstrBuilder::addReg(), llvm::MachineFunction::CreateMachineInstr(), llvm::RegState::Define, llvm::MachineBasicBlock::getParent(), llvm::MachineBasicBlock::insert(), and MI.

◆ BuildMI() [4/16]

MachineInstrBuilder llvm::BuildMI ( MachineBasicBlock BB,
MachineBasicBlock::instr_iterator  I,
const DebugLoc DL,
const MCInstrDesc MCID,
unsigned  DestReg 
)
inline

This version of the builder inserts the newly-built instruction before the given position in the given MachineBasicBlock, and sets up the first operand as a destination virtual register.

If I is inside a bundle, then the newly inserted MachineInstr is added to the same bundle.

Definition at line 336 of file MachineInstrBuilder.h.

References llvm::MachineInstrBuilder::addReg(), llvm::MachineFunction::CreateMachineInstr(), llvm::RegState::Define, llvm::MachineBasicBlock::getParent(), llvm::MachineBasicBlock::insert(), and MI.

◆ BuildMI() [5/16]

MachineInstrBuilder llvm::BuildMI ( MachineBasicBlock BB,
MachineInstr I,
const DebugLoc DL,
const MCInstrDesc MCID,
unsigned  DestReg 
)
inline

Definition at line 346 of file MachineInstrBuilder.h.

References BuildMI(), and llvm::MachineInstr::isInsideBundle().

◆ BuildMI() [6/16]

MachineInstrBuilder llvm::BuildMI ( MachineBasicBlock BB,
MachineInstr I,
const DebugLoc DL,
const MCInstrDesc MCID,
unsigned  DestReg 
)
inline

Definition at line 356 of file MachineInstrBuilder.h.

References BuildMI().

◆ BuildMI() [7/16]

MachineInstrBuilder llvm::BuildMI ( MachineBasicBlock BB,
MachineBasicBlock::iterator  I,
const DebugLoc DL,
const MCInstrDesc MCID 
)
inline

This version of the builder inserts the newly-built instruction before the given position in the given MachineBasicBlock, and does NOT take a destination register.

Definition at line 365 of file MachineInstrBuilder.h.

References llvm::MachineFunction::CreateMachineInstr(), llvm::MachineBasicBlock::getParent(), llvm::MachineBasicBlock::insert(), and MI.

◆ BuildMI() [8/16]

◆ BuildMI() [9/16]

MachineInstrBuilder llvm::BuildMI ( MachineBasicBlock BB,
MachineInstr I,
const DebugLoc DL,
const MCInstrDesc MCID 
)
inline

Definition at line 385 of file MachineInstrBuilder.h.

References BuildMI(), and llvm::MachineInstr::isInsideBundle().

◆ BuildMI() [10/16]

MachineInstrBuilder llvm::BuildMI ( MachineBasicBlock BB,
MachineInstr I,
const DebugLoc DL,
const MCInstrDesc MCID 
)
inline

Definition at line 395 of file MachineInstrBuilder.h.

References BuildMI().

◆ BuildMI() [11/16]

MachineInstrBuilder llvm::BuildMI ( MachineBasicBlock BB,
const DebugLoc DL,
const MCInstrDesc MCID 
)
inline

This version of the builder inserts the newly-built instruction at the end of the given MachineBasicBlock, and does NOT take a destination register.

Definition at line 403 of file MachineInstrBuilder.h.

References BuildMI(), and llvm::MachineBasicBlock::end().

◆ BuildMI() [12/16]

MachineInstrBuilder llvm::BuildMI ( MachineBasicBlock BB,
const DebugLoc DL,
const MCInstrDesc MCID,
unsigned  DestReg 
)
inline

This version of the builder inserts the newly-built instruction at the end of the given MachineBasicBlock, and sets up the first operand as a destination virtual register.

Definition at line 411 of file MachineInstrBuilder.h.

References buildDbgValueForSpill(), BuildMI(), llvm::MachineBasicBlock::end(), llvm::ISD::FrameIndex, I, Reg, and updateDbgValueForSpill().

◆ BuildMI() [13/16]

MachineInstrBuilder llvm::BuildMI ( MachineFunction MF,
const DebugLoc DL,
const MCInstrDesc MCID,
bool  IsIndirect,
unsigned  Reg,
const MDNode Variable,
const MDNode Expr 
)

This version of the builder builds a DBG_VALUE intrinsic for either a value in a register or a register-indirect address.

The convention is that a DBG_VALUE is indirect iff the second operand is an immediate.

Definition at line 1987 of file MachineInstr.cpp.

References llvm::MachineInstrBuilder::addImm(), llvm::MachineInstrBuilder::addMetadata(), llvm::MachineInstrBuilder::addReg(), assert(), BuildMI(), and llvm::RegState::Debug.

◆ BuildMI() [14/16]

MachineInstrBuilder llvm::BuildMI ( MachineFunction MF,
const DebugLoc DL,
const MCInstrDesc MCID,
bool  IsIndirect,
MachineOperand MO,
const MDNode Variable,
const MDNode Expr 
)

◆ BuildMI() [15/16]

MachineInstrBuilder llvm::BuildMI ( MachineBasicBlock BB,
MachineBasicBlock::iterator  I,
const DebugLoc DL,
const MCInstrDesc MCID,
bool  IsIndirect,
unsigned  Reg,
const MDNode Variable,
const MDNode Expr 
)

This version of the builder builds a DBG_VALUE intrinsic for either a value in a register or a register-indirect address and inserts it at position I.

Definition at line 2022 of file MachineInstr.cpp.

References BuildMI(), llvm::MachineBasicBlock::getParent(), and llvm::MachineBasicBlock::insert().

◆ BuildMI() [16/16]

MachineInstrBuilder llvm::BuildMI ( MachineBasicBlock BB,
MachineBasicBlock::iterator  I,
const DebugLoc DL,
const MCInstrDesc MCID,
bool  IsIndirect,
MachineOperand MO,
const MDNode Variable,
const MDNode Expr 
)

This version of the builder builds a DBG_VALUE intrinsic for a machine operand and inserts it at position I.

Definition at line 2033 of file MachineInstr.cpp.

References BuildMI(), llvm::MachineBasicBlock::getParent(), and llvm::MachineBasicBlock::insert().

◆ buildModuleSummaryIndex()

ModuleSummaryIndex llvm::buildModuleSummaryIndex ( const Module M,
std::function< BlockFrequencyInfo *(const Function &F)>  GetBFICallback,
ProfileSummaryInfo PSI 
)

Direct function to compute a ModuleSummaryIndex from a given module.

If operating within a pass manager which has defined ways to compute the BlockFrequencyInfo for a given function, that can be provided via a std::function callback. Otherwise, this routine will manually construct that information.

Definition at line 455 of file ModuleSummaryAnalysis.cpp.

References llvm::ModuleSummaryIndex::addGlobalValueSummary(), all_of(), assert(), llvm::AMDGPUISD::BFI, llvm::ModuleSymbolTable::CollectAsmSymbols(), collectUsedGlobalVariables(), computeAliasSummary(), computeFunctionSummary(), computeVariableSummary(), llvm::detail::DenseSetImpl< ValueT, DenseMap< ValueT, detail::DenseSetEmpty, ValueInfoT, detail::DenseSetPair< ValueT > >, ValueInfoT >::count(), llvm::SmallPtrSetImplBase::empty(), F(), G, llvm::ModuleSummaryIndex::getGlobalValueSummary(), llvm::GlobalValue::getGUID(), llvm::Module::getModuleFlag(), llvm::Module::getModuleInlineAsm(), llvm::Module::getNamedValue(), llvm::Function::hasFnAttribute(), llvm::Function::hasProfileData(), llvm::detail::DenseSetImpl< ValueT, DenseMap< ValueT, detail::DenseSetEmpty, ValueInfoT, detail::DenseSetPair< ValueT > >, ValueInfoT >::insert(), llvm::SmallPtrSetImpl< PtrType >::insert(), llvm::GlobalValue::InternalLinkage, llvm::GlobalValue::isDeclaration(), llvm::GlobalValue::isDSOLocal(), Name, llvm::Attribute::NoRecurse, llvm::Attribute::ReadNone, llvm::Attribute::ReadOnly, llvm::Function::returnDoesNotAlias(), setLiveRoot(), llvm::object::BasicSymbolRef::SF_Global, llvm::object::BasicSymbolRef::SF_Weak, and VI.

Referenced by llvm::ModuleSummaryIndexAnalysis::run(), and llvm::ModuleSummaryIndexWrapperPass::runOnModule().

◆ BuryPointer() [1/2]

void llvm::BuryPointer ( const void *  Ptr)

Definition at line 16 of file BuryPointer.cpp.

References LLVM_ATTRIBUTE_UNUSED.

Referenced by BuryPointer().

◆ BuryPointer() [2/2]

template<typename T >
void llvm::BuryPointer ( std::unique_ptr< T Ptr)

Definition at line 24 of file BuryPointer.h.

References BuryPointer().

◆ bypassSlowDivision()

bool llvm::bypassSlowDivision ( BasicBlock BB,
const DenseMap< unsigned int, unsigned int > &  BypassWidth 
)

This optimization identifies DIV instructions in a BB that can be profitably bypassed and carried out with a shorter, faster divide.

This optimization may add basic blocks immediately after BB; for obvious reasons, you shouldn't pass those blocks to bypassSlowDivision.

Referenced by createCodeGenPreparePass(), and llvm::DenseMapInfo< DivRemMapKey >::getHashValue().

◆ ByteSwap_16()

uint16_t llvm::ByteSwap_16 ( uint16_t  Value)
inline

Return a byte-swapped representation of the 16-bit argument.

Definition at line 439 of file MathExtras.h.

References llvm::sys::SwapByteOrder_16().

Referenced by llvm::APInt::byteSwap().

◆ ByteSwap_32()

uint32_t llvm::ByteSwap_32 ( uint32_t  Value)
inline

Return a byte-swapped representation of the 32-bit argument.

Definition at line 444 of file MathExtras.h.

References llvm::sys::SwapByteOrder_32().

Referenced by llvm::APInt::byteSwap().

◆ ByteSwap_64()

uint64_t llvm::ByteSwap_64 ( uint64_t  Value)
inline

Return a byte-swapped representation of the 64-bit argument.

Definition at line 449 of file MathExtras.h.

References llvm::sys::SwapByteOrder_64().

Referenced by llvm::APInt::byteSwap().

◆ c_str()

template<class T >
SmallVectorImpl<T>::const_pointer llvm::c_str ( SmallVectorImpl< T > &  str)

◆ cacheAnnotationFromMD() [1/2]

static void llvm::cacheAnnotationFromMD ( const MDNode md,
key_val_pair_t &  retval 
)
static

◆ cacheAnnotationFromMD() [2/2]

static void llvm::cacheAnnotationFromMD ( const Module m,
const GlobalValue gv 
)
static

◆ calculateClrEHStateNumbers()

void llvm::calculateClrEHStateNumbers ( const Function Fn,
WinEHFuncInfo FuncInfo 
)

◆ calculateCountScale()

static uint64_t llvm::calculateCountScale ( uint64_t  MaxCount)
inlinestatic

Calculate what to divide by to scale counts.

Given the maximum count, calculate a divisor that will scale all the weights to strictly less than std::numeric_limits<uint32_t>::max().

Definition at line 210 of file Instrumentation.h.

References max().

Referenced by llvm::pgo::promoteIndirectCall(), and setProfMetadata().

◆ calculateDbgEntityHistory()

void llvm::calculateDbgEntityHistory ( const MachineFunction MF,
const TargetRegisterInfo TRI,
DbgValueHistoryMap DbgValues,
DbgLabelInstrMap DbgLabels 
)

◆ calculateSEHStateNumbers()

void llvm::calculateSEHStateNumbers ( const Function ParentFn,
WinEHFuncInfo FuncInfo 
)

◆ calculateSpillWeightsAndHints()

void llvm::calculateSpillWeightsAndHints ( LiveIntervals LIS,
MachineFunction MF,
VirtRegMap VRM,
const MachineLoopInfo MLI,
const MachineBlockFrequencyInfo MBFI,
VirtRegAuxInfo::NormalizingFn  norm = normalizeSpillWeight 
)

◆ calculateWasmEHInfo()

void llvm::calculateWasmEHInfo ( const Function F,
WasmEHFuncInfo EHInfo 
)

◆ calculateWinCXXEHStateNumbers()

void llvm::calculateWinCXXEHStateNumbers ( const Function ParentFn,
WinEHFuncInfo FuncInfo 
)

Analyze the IR in ParentFn and it's handlers to build WinEHFuncInfo, which describes the state numbers and tables used by __CxxFrameHandler3.

This analysis assumes that WinEHPrepare has already been run.

Definition at line 446 of file WinEHPrepare.cpp.

References calculateCXXStateNumbers(), calculateStateNumbersForInvokes(), llvm::WinEHFuncInfo::EHPadStateMap, and isTopLevelPadForMSVC().

Referenced by getSuccState(), and llvm::FunctionLoweringInfo::set().

◆ call_once()

template<typename Function , typename... Args>
void llvm::call_once ( once_flag flag,
Function &&  F,
Args &&...  ArgList 
)

Execute the function specified as a parameter once.

Typical usage:

void foo() {...};
...
static once_flag flag;
call_once(flag, foo);
Parameters
flagFlag used for tracking whether or not this has run.
FFunction to call once.

Definition at line 100 of file Threading.h.

References llvm::sys::CompareAndSwap(), F(), get_max_thread_name_length(), get_thread_name(), get_threadid(), hardware_concurrency(), heavyweight_hardware_concurrency(), llvm::sys::MemoryFence(), Name, set_thread_name(), TsanHappensAfter, TsanHappensBefore, TsanIgnoreWritesBegin, TsanIgnoreWritesEnd, and llvm::sys::Wait().

Referenced by llvm::TargetPassConfig::createRegAllocPass(), and getManagedStaticMutex().

◆ callDefaultCtor()

template<typename PassName >
Pass* llvm::callDefaultCtor ( )

Definition at line 77 of file PassSupport.h.

◆ callIsSmall()

bool llvm::callIsSmall ( ImmutableCallSite  CS)

Check whether a call will lower to something small.

This tests checks whether this callsite will lower to something significantly cheaper than a traditional call, often a single instruction. Note that if isInstructionFree(CS.getInstruction()) would return true, so will this function.

◆ callsGCLeafFunction()

bool llvm::callsGCLeafFunction ( ImmutableCallSite  CS,
const TargetLibraryInfo TLI 
)

Return true if the CallSite CS calls a gc leaf function.

A leaf function is a function that does not safepoint the thread during its execution. During a call or invoke to such a function, the callers stack does not have to be made parseable.

Most passes can and should ignore this information, and it is only used during lowering by the GC infrastructure.

Definition at line 2453 of file Local.cpp.

References llvm::Intrinsic::experimental_deoptimize, llvm::Intrinsic::experimental_gc_statepoint, F(), llvm::CallSiteBase< FunTy, BBTy, ValTy, UserTy, UseTy, InstrTy, CallTy, InvokeTy, IterTy >::getCalledFunction(), llvm::TargetLibraryInfo::getLibFunc(), llvm::TargetLibraryInfo::has(), and llvm::CallSiteBase< FunTy, BBTy, ValTy, UserTy, UseTy, InstrTy, CallTy, InvokeTy, IterTy >::hasFnAttr().

Referenced by getKnownAlignment(), needsStatepoint(), and llvm::RewriteStatepointsForGC::runOnFunction().

◆ canConstantFoldCallTo()

bool llvm::canConstantFoldCallTo ( ImmutableCallSite  CS,
const Function F 
)

canConstantFoldCallTo - Return true if its even possible to fold a call to the specified function.

Definition at line 1370 of file ConstantFolding.cpp.

References llvm::lltok::APFloat, assert(), llvm::APFloat::bitcastToAPInt(), llvm::Intrinsic::bitreverse, llvm::Intrinsic::bswap, llvm::Intrinsic::ceil, ConstantFoldLoadFromConstPtr(), llvm::APFloat::convert(), llvm::Intrinsic::convert_from_fp16, llvm::Intrinsic::convert_to_fp16, llvm::APFloat::convertToDouble(), llvm::APFloat::convertToFloat(), llvm::APFloat::convertToInteger(), llvm::Intrinsic::copysign, llvm::APFloat::copySign(), llvm::Intrinsic::cos, llvm::APInt::countLeadingZeros(), llvm::APInt::countTrailingZeros(), llvm::Intrinsic::ctlz, llvm::Intrinsic::ctpop, llvm::Intrinsic::cttz, E, llvm::Intrinsic::exp, llvm::Intrinsic::exp2, llvm::Intrinsic::fabs, llvm::Intrinsic::floor, llvm::Intrinsic::fma, llvm::Intrinsic::fmuladd, llvm::Intrinsic::fshl, llvm::Intrinsic::fshr, llvm::APFloat::fusedMultiplyAdd(), llvm::ConstantInt::get(), llvm::ConstantFP::get(), llvm::ConstantStruct::get(), llvm::ConstantVector::get(), llvm::UndefValue::get(), llvm::Constant::getAggregateElement(), llvm::Constant::getAllOnesValue(), llvm::APInt::getBitWidth(), llvm::CallSiteBase< FunTy, BBTy, ValTy, UserTy, UseTy, InstrTy, CallTy, InvokeTy, IterTy >::getCaller(), llvm::Type::getContext(), llvm::SequentialType::getElementType(), llvm::Type::getFltSemantics(), llvm::Type::getInt1Ty(), llvm::Type::getIntegerBitWidth(), llvm::Function::getIntrinsicID(), llvm::Value::getName(), llvm::Constant::getNullValue(), llvm::SequentialType::getNumElements(), llvm::CallSiteBase< FunTy, BBTy, ValTy, UserTy, UseTy, InstrTy, CallTy, InvokeTy, IterTy >::getParent(), llvm::ConstantInt::getTrue(), getType(), llvm::Value::getType(), llvm::ConstantFP::getValueAPF(), llvm::TargetLibraryInfo::has(), llvm::Value::hasName(), I, llvm::APFloatBase::IEEEdouble(), llvm::APFloatBase::IEEEhalf(), llvm::Intrinsic::is_constant, llvm::Type::isDoubleTy(), llvm::Type::isFloatTy(), llvm::Type::isHalfTy(), llvm::CallSiteBase< FunTy, BBTy, ValTy, UserTy, UseTy, InstrTy, CallTy, InvokeTy, IterTy >::isNoBuiltin(), llvm::APInt::isNullValue(), llvm::APInt::isOneValue(), llvm::CallSiteBase< FunTy, BBTy, ValTy, UserTy, UseTy, InstrTy, CallTy, InvokeTy, IterTy >::isStrictFP(), llvm::Intrinsic::launder_invariant_group, LLVM_FALLTHROUGH, llvm_unreachable, llvm::Intrinsic::log, llvm::Intrinsic::log10, llvm::Intrinsic::log2, Log2(), llvm::APInt::lshr(), makeMutableArrayRef(), llvm::BitmaskEnumDetail::Mask(), llvm::Intrinsic::masked_load, llvm::Intrinsic::maximum, maximum(), llvm::Intrinsic::maxnum, maxnum(), llvm::Intrinsic::minimum, minimum(), llvm::Intrinsic::minnum, minnum(), mode, Name, llvm::Intrinsic::nearbyint, llvm::Intrinsic::not_intrinsic, NullPointerIsDefined(), llvm::User::operand_values(), llvm::APFloatBase::opInexact, llvm::APFloatBase::opInvalidOp, llvm::APFloatBase::opOK, llvm::Intrinsic::pow, llvm::Intrinsic::powi, llvm::SmallVectorTemplateBase< T >::push_back(), llvm::Intrinsic::rint, llvm::APFloatBase::rmNearestTiesToAway, llvm::APFloatBase::rmNearestTiesToEven, llvm::APFloatBase::rmTowardNegative, llvm::APFloatBase::rmTowardPositive, llvm::APFloatBase::rmTowardZero, round(), llvm::Intrinsic::round, llvm::APFloat::roundToIntegral(), llvm::APInt::sadd_ov(), llvm::Intrinsic::sadd_sat, llvm::APInt::sadd_sat(), llvm::Intrinsic::sadd_with_overflow, llvm::APInt::shl(), llvm::Intrinsic::sin, llvm::SmallVectorBase::size(), llvm::StringRef::size(), llvm::ArrayRef< T >::size(), llvm::APInt::smul_ov(), llvm::Intrinsic::smul_with_overflow, llvm::Intrinsic::sqrt, llvm::APInt::ssub_ov(), llvm::Intrinsic::ssub_sat, llvm::APInt::ssub_sat(), llvm::Intrinsic::ssub_with_overflow, llvm::sys::fs::status(), llvm::Intrinsic::strip_invariant_group, llvm::Intrinsic::trunc, llvm::APInt::uadd_ov(), llvm::Intrinsic::uadd_sat, llvm::APInt::uadd_sat(), llvm::Intrinsic::uadd_with_overflow, llvm::APInt::umul_ov(), llvm::Intrinsic::umul_with_overflow, llvm::APInt::urem(), llvm::APInt::usub_ov(), llvm::Intrinsic::usub_sat, llvm::APInt::usub_sat(), llvm::Intrinsic::usub_with_overflow, llvm::NVPTX::PTXLdStInstCode::V2, llvm::RISCVFenceField::W, llvm::Intrinsic::x86_avx512_cvttsd2si, llvm::Intrinsic::x86_avx512_cvttsd2si64, llvm::Intrinsic::x86_avx512_cvttsd2usi, llvm::Intrinsic::x86_avx512_cvttsd2usi64, llvm::Intrinsic::x86_avx512_cvttss2si, llvm::Intrinsic::x86_avx512_cvttss2si64, llvm::Intrinsic::x86_avx512_cvttss2usi, llvm::Intrinsic::x86_avx512_cvttss2usi64, llvm::Intrinsic::x86_avx512_vcvtsd2si32, llvm::Intrinsic::x86_avx512_vcvtsd2si64, llvm::Intrinsic::x86_avx512_vcvtsd2usi32, llvm::Intrinsic::x86_avx512_vcvtsd2usi64, llvm::Intrinsic::x86_avx512_vcvtss2si32, llvm::Intrinsic::x86_avx512_vcvtss2si64, llvm::Intrinsic::x86_avx512_vcvtss2usi32, llvm::Intrinsic::x86_avx512_vcvtss2usi64, llvm::Intrinsic::x86_sse2_cvtsd2si, llvm::Intrinsic::x86_sse2_cvtsd2si64, llvm::Intrinsic::x86_sse2_cvttsd2si, llvm::Intrinsic::x86_sse2_cvttsd2si64, llvm::Intrinsic::x86_sse_cvtss2si, llvm::Intrinsic::x86_sse_cvtss2si64, llvm::Intrinsic::x86_sse_cvttss2si, and llvm::Intrinsic::x86_sse_cvttss2si64.

Referenced by CanConstantFold(), ConstantFoldLoadFromConstPtr(), and SimplifyCall().

◆ canFoldARMInstrIntoMOVCC()

unsigned llvm::canFoldARMInstrIntoMOVCC ( unsigned  Reg,
MachineInstr *&  MI,
const MachineRegisterInfo MRI 
)

Determine if MI can be folded into an ARM MOVCC instruction, and return the opcode of the SSA instruction representing the conditional MI.

Referenced by isPushOpcode().

◆ canIfConvertPHINodes()

static bool llvm::canIfConvertPHINodes ( BasicBlock BB)
static

Check whether it is safe to if-convert this phi node.

Phi nodes with constant expressions that can trap are not safe to if convert.

Definition at line 404 of file LoopVectorizationLegality.cpp.

References C, and llvm::BasicBlock::phis().

Referenced by llvm::LoopVectorizationLegality::blockNeedsPredication().

◆ canImportGlobalVar()

static bool llvm::canImportGlobalVar ( GlobalValueSummary S)
inlinestatic

◆ cannotBeMaxInLoop()

bool llvm::cannotBeMaxInLoop ( const SCEV S,
const Loop L,
ScalarEvolution SE,
bool  Signed 
)

◆ cannotBeMinInLoop()

bool llvm::cannotBeMinInLoop ( const SCEV S,
const Loop L,
ScalarEvolution SE,
bool  Signed 
)

◆ CannotBeNegativeZero()

bool llvm::CannotBeNegativeZero ( const Value V,
const TargetLibraryInfo TLI,
unsigned  Depth = 0 
)

Return true if we can prove that the specified FP value is never equal to -0.0.

NOTE: this function will need to be revisited when we support non-default rounding modes!

Definition at line 2824 of file ValueTracking.cpp.

References llvm::Intrinsic::canonicalize, dyn_cast(), llvm::Intrinsic::fabs, getIntrinsicForCallSite(), llvm::PatternMatch::m_FAdd(), llvm::PatternMatch::m_PosZeroFP(), llvm::PatternMatch::m_Value(), llvm::PatternMatch::match(), and llvm::Intrinsic::sqrt.

Referenced by cannotBeOrderedLessThanZeroImpl(), foldSelectBinOpIdentity(), SimplifyFAddInst(), SimplifyFSubInst(), and llvm::InstCombiner::visitFSub().

◆ CannotBeOrderedLessThanZero()

bool llvm::CannotBeOrderedLessThanZero ( const Value V,
const TargetLibraryInfo TLI 
)

Return true if we can prove that the specified FP value is either NaN or never less than -0.0.

NaN –> true +0 –> true -0 –> true x > +0 –> true x < -0 –> false

Definition at line 3018 of file ValueTracking.cpp.

References cannotBeOrderedLessThanZeroImpl().

Referenced by isKnownNeverNaN(), and SimplifyFCmpInst().

◆ canPeel()

bool llvm::canPeel ( Loop L)

◆ canRenameComdatFunc()

bool llvm::canRenameComdatFunc ( const Function F,
bool  CheckAddressTaken = false 
)

Check if we can safely rename this Comdat function.

Instances of the same comdat function may have different control flows thus can not share the same counter variable.

Definition at line 972 of file InstrProf.cpp.

References assert(), llvm::GlobalValue::AvailableExternallyLinkage, llvm::StringRef::empty(), llvm::GlobalValue::getLinkage(), llvm::Value::getName(), llvm::GlobalValue::getParent(), llvm::Function::hasAddressTaken(), llvm::GlobalObject::hasComdat(), llvm::GlobalValue::isDiscardableIfUnused(), and needsComdatForCounter().

Referenced by canRenameComdat(), getInstrProfNameSeparator(), and getVarName().

◆ canReplaceOperandWithVariable()

bool llvm::canReplaceOperandWithVariable ( const Instruction I,
unsigned  OpIdx 
)

◆ canSimplifyInvokeNoUnwind()

bool llvm::canSimplifyInvokeNoUnwind ( const Function F)

◆ canSinkOrHoistInst()

bool llvm::canSinkOrHoistInst ( Instruction I,
AAResults AA,
DominatorTree DT,
Loop CurLoop,
AliasSetTracker CurAST,
MemorySSAUpdater MSSAU,
bool  TargetExecutesOncePerLoop,
OptimizationRemarkEmitter ORE = nullptr 
)

Returns true if is legal to hoist or sink this instruction disregarding the possible introduction of faults.

Reasoning about potential faulting instructions is the responsibility of the caller since it is challenging to do efficiently from within this routine. TargetExecutesOncePerLoop is true only when it is guaranteed that the target executes at most once per execution of the loop body. This is used to assess the legality of duplicating atomic loads. Generally, this is true when moving out of loop and not true when moving into loops. If ORE is set use it to emit optimization remarks.

Definition at line 996 of file LICM.cpp.

References assert(), llvm::AliasSetTracker::begin(), llvm::LoopBase< BlockT, LoopT >::contains(), DEBUG_TYPE, llvm::OptimizationRemarkEmitter::emit(), EnableLicmCap, llvm::AliasSetTracker::end(), FMRB_DoesNotAccessMemory, llvm::MemoryLocation::get(), llvm::AliasSetTracker::getAliasSetFor(), llvm::MemorySSAWalker::getClobberingMemoryAccess(), llvm::MemorySSA::getMemoryAccess(), llvm::MemorySSAUpdater::getMemorySSA(), llvm::AAResults::getModRefBehavior(), llvm::MemorySSA::getSkipSelfWalker(), llvm::AliasSet::getUniqueInstruction(), llvm::MemorySSA::isLiveOnEntryDef(), isLoadInvariantInLoop(), llvm::Loop::isLoopInvariant(), llvm::PatternMatch::match(), llvm::Instruction::mayReadOrWriteMemory(), llvm::LLVMContext::MD_invariant_load, llvm::AAResults::onlyAccessesArgPointees(), llvm::AAResults::onlyReadsMemory(), pointerInvalidatedByLoop(), pointerInvalidatedByLoopWithMSSA(), llvm::AAResults::pointsToConstantMemory(), SI, llvm::Sched::Source, and llvm::LocationSize::unknown().

Referenced by hoistRegion(), sinkLoopInvariantInstructions(), and sinkRegion().

◆ cantFail() [1/3]

void llvm::cantFail ( Error  Err,
const char Msg = nullptr 
)
inline

Report a fatal error if Err is a failure value.

This function can be used to wrap calls to fallible functions ONLY when it is known that the Error will always be a success value. E.g.

// foo only attempts the fallible operation if DoFallibleOperation is
// true. If DoFallibleOperation is false then foo always returns
// Error::success().
Error foo(bool DoFallibleOperation);
cantFail(foo(false));

Definition at line 704 of file Error.h.

Referenced by llvm::orc::OrcMCJITReplacement::addModule(), llvm::orc::OrcMCJITReplacement::addObjectFile(), addPadding(), llvm::orc::rpc::detail::RPCEndpointBase< SingleThreadedRPCEndpoint< ChannelT, FunctionIdT, SequenceNumberT >, ChannelT, FunctionIdT, SequenceNumberT >::appendCallAsync(), llvm::codeview::ContinuationRecordBuilder::begin(), llvm::orc::cloneToNewContext(), commitFpm(), computeAddrMap(), llvm::msf::WritableMappedBlockStream::createFpmStream(), createRecord(), llvm::MCStreamer::EmitDwarfFileDirective(), llvm::MCJIT::emitObject(), llvm::codeview::ContinuationRecordBuilder::end(), llvm::CodeViewYAML::fromDebugH(), llvm::orc::JITCompileCallbackManager::getCompileCallback(), llvm::MCDwarfDwoLineTable::getFile(), llvm::MCDwarfLineTable::getFile(), llvm::pdb::PDBFileBuilder::getNamedStreamIndex(), llvm::pdb::SymbolCache::getOrCreateGlobalSymbolByOffset(), llvm::orc::OrcMCJITReplacement::getSymbolAddress(), llvm::codeview::getSymbolName(), handleAllErrors(), llvm::pdb::PDBFile::hasPDBIpiStream(), llvm::xray::mergeProfilesByStack(), llvm::xray::mergeProfilesByThread(), llvm::pdb::NativeEnumGlobals::NativeEnumGlobals(), llvm::orc::ConcurrentIRCompiler::operator()(), llvm::orc::DynamicLibrarySearchGenerator::operator()(), llvm::orc::ReexportsGenerator::operator()(), llvm::xray::Profile::Profile(), resolveTypeIndexReferences(), llvm::orc::OrcMCJITReplacement::runStaticConstructorsDestructors(), llvm::codeview::SimpleTypeSerializer::serialize(), llvm::orc::OrcMCJITReplacement::setProcessAllSections(), llvm::codeview::ContinuationRecordBuilder::writeMemberType(), writeRecordPrefix(), and llvm::pdb::NativeTypeFunctionSig::~NativeTypeFunctionSig().

◆ cantFail() [2/3]

template<typename T >
T llvm::cantFail ( Expected< T ValOrErr,
const char Msg = nullptr 
)

Report a fatal error if ValOrErr is a failure value, otherwise unwraps and returns the contained value.

This function can be used to wrap calls to fallible functions ONLY when it is known that the Error will always be a success value. E.g.

// foo only attempts the fallible operation if DoFallibleOperation is
// true. If DoFallibleOperation is false then foo always returns an int.
Expected<int> foo(bool DoFallibleOperation);
int X = cantFail(foo(false));

Definition at line 726 of file Error.h.

References llvm_unreachable.

◆ cantFail() [3/3]

template<typename T >
T& llvm::cantFail ( Expected< T &>  ValOrErr,
const char Msg = nullptr 
)

Report a fatal error if ValOrErr is a failure value, otherwise unwraps and returns the contained reference.

This function can be used to wrap calls to fallible functions ONLY when it is known that the Error will always be a success value. E.g.

// foo only attempts the fallible operation if DoFallibleOperation is
// true. If DoFallibleOperation is false then foo always returns a Bar&.
Expected<Bar&> foo(bool DoFallibleOperation);
Bar &X = cantFail(foo(false));

Definition at line 750 of file Error.h.

References llvm_unreachable.

◆ canTrackArgumentsInterprocedurally()

bool llvm::canTrackArgumentsInterprocedurally ( Function F)

Determine if the values of the given function's arguments can be tracked interprocedurally.

The value of an argument can be tracked if the function has local linkage and its address is not taken.

Definition at line 20 of file ValueLatticeUtils.cpp.

References llvm::Function::hasAddressTaken(), and llvm::GlobalValue::hasLocalLinkage().

Referenced by runCVP(), and runIPSCCP().

◆ canTrackGlobalVariableInterprocedurally()

bool llvm::canTrackGlobalVariableInterprocedurally ( GlobalVariable GV)

Determine if the value maintained in the given global variable can be tracked interprocedurally.

A value can be tracked if the global variable has local linkage and is only used by non-volatile loads and stores.

Definition at line 28 of file ValueLatticeUtils.cpp.

References any_of(), llvm::GlobalVariable::hasDefinitiveInitializer(), llvm::GlobalValue::hasLocalLinkage(), llvm::GlobalVariable::isConstant(), llvm::SPII::Load, llvm::SPII::Store, and llvm::Value::users().

Referenced by runIPSCCP().

◆ canTrackReturnsInterprocedurally()

bool llvm::canTrackReturnsInterprocedurally ( Function F)

Determine if the values of the given function's returns can be tracked interprocedurally.

Return values can be tracked if the function has an exact definition and it doesn't have the "naked" attribute. Naked functions may contain assembly code that returns untrackable values.

Definition at line 24 of file ValueLatticeUtils.cpp.

References llvm::GlobalValue::hasExactDefinition(), llvm::Function::hasFnAttribute(), and llvm::Attribute::Naked.

Referenced by runIPSCCP().

◆ capacity_in_bytes() [1/4]

template<typename T >
static size_t llvm::capacity_in_bytes ( const T x)
inlinestatic

Definition at line 23 of file Capacity.h.

◆ capacity_in_bytes() [2/4]

template<typename T , unsigned N>
size_t llvm::capacity_in_bytes ( const SmallVector< T, N > &  X)
inline

◆ capacity_in_bytes() [3/4]

size_t llvm::capacity_in_bytes ( const BitVector X)
inline

Definition at line 932 of file BitVector.h.

References llvm::BitVector::getMemorySize().

◆ capacity_in_bytes() [4/4]

template<typename KeyT , typename ValueT , typename KeyInfoT >
size_t llvm::capacity_in_bytes ( const DenseMap< KeyT, ValueT, KeyInfoT > &  X)
inline

◆ caseFoldingDjbHash()

uint32_t llvm::caseFoldingDjbHash ( StringRef  Buffer,
uint32_t  H = 5381 
)

Computes the Bernstein hash after folding the input according to the Dwarf 5 standard case folding rules.

Definition at line 71 of file DJB.cpp.

References C, caseFoldingDjbHashCharSlow(), llvm::StringRef::drop_front(), llvm::StringRef::empty(), llvm::StringRef::front(), H, and LLVM_LIKELY.

Referenced by djbHash(), llvm::DWARFDebugNames::dump(), llvm::DWARF5AccelTableData::hash(), and llvm::DWARF5AccelTableStaticData::hash().

◆ cast() [1/4]

template<class X , class Y >
std::enable_if<!is_simple_type<Y>::value, typename cast_retty<X, const Y>::ret_type>::type llvm::cast ( const Y Val)
inline

Definition at line 240 of file Casting.h.

References assert(), X, and Y.

◆ cast() [2/4]

template<class X , class Y >
cast_retty<X, Y>::ret_type llvm::cast ( Y Val)
inline

Definition at line 247 of file Casting.h.

References assert(), X, and Y.

◆ cast() [3/4]

template<class X , class Y >
cast_retty<X, Y *>::ret_type llvm::cast ( Y Val)
inline

Definition at line 254 of file Casting.h.

References assert(), X, and Y.

◆ cast() [4/4]

template<class X , class Y >
cast_retty<X, std::unique_ptr<Y> >::ret_type llvm::cast ( std::unique_ptr< Y > &&  Val)
inline

Definition at line 262 of file Casting.h.

References assert(), LLVM_NODISCARD, X, and Y.

◆ cast_or_null() [1/4]

template<class X , class Y >
LLVM_NODISCARD std::enable_if<!is_simple_type<Y>::value, typename cast_retty<X, const Y>::ret_type>::type llvm::cast_or_null ( const Y Val)
inline

Definition at line 277 of file Casting.h.

References assert(), and LLVM_NODISCARD.

◆ cast_or_null() [2/4]

template<class X , class Y >
LLVM_NODISCARD std::enable_if<!is_simple_type<Y>::value, typename cast_retty<X, Y>::ret_type>::type llvm::cast_or_null ( Y Val)
inline

Definition at line 288 of file Casting.h.

References assert(), and LLVM_NODISCARD.

◆ cast_or_null() [3/4]

template<class X , class Y >
LLVM_NODISCARD cast_retty<X, Y *>::ret_type llvm::cast_or_null ( Y Val)
inline

Definition at line 297 of file Casting.h.

References assert().

◆ cast_or_null() [4/4]

template<class X , class Y >
cast_retty<X, std::unique_ptr<Y> >::ret_type llvm::cast_or_null ( std::unique_ptr< Y > &&  Val)
inline

Definition at line 305 of file Casting.h.

References LLVM_NODISCARD.

◆ castToCStr()

Value * llvm::castToCStr ( Value V,
IRBuilder<> &  B 
)

◆ CC_ARM_AAPCS_Custom_Aggregate()

static bool llvm::CC_ARM_AAPCS_Custom_Aggregate ( unsigned ValNo,
MVT ValVT,
MVT LocVT,
CCValAssign::LocInfo LocInfo,
ISD::ArgFlagsTy ArgFlags,
CCState State 
)
static

◆ CC_ARM_AAPCS_Custom_f64()

static bool llvm::CC_ARM_AAPCS_Custom_f64 ( unsigned ValNo,
MVT ValVT,
MVT LocVT,
CCValAssign::LocInfo LocInfo,
ISD::ArgFlagsTy ArgFlags,
CCState State 
)
static

Definition at line 112 of file ARMCallingConv.h.

References f64AssignAAPCS(), and llvm::MVT::v2f64.

◆ CC_ARM_APCS_Custom_f64()

static bool llvm::CC_ARM_APCS_Custom_f64 ( unsigned ValNo,
MVT ValVT,
MVT LocVT,
CCValAssign::LocInfo LocInfo,
ISD::ArgFlagsTy ArgFlags,
CCState State 
)
static

Definition at line 58 of file ARMCallingConv.h.

References f64AssignAPCS(), and llvm::MVT::v2f64.

◆ CC_PPC32_SVR4_Custom_AlignArgRegs()

bool llvm::CC_PPC32_SVR4_Custom_AlignArgRegs ( unsigned ValNo,
MVT ValVT,
MVT LocVT,
CCValAssign::LocInfo LocInfo,
ISD::ArgFlagsTy ArgFlags,
CCState State 
)

◆ CC_PPC32_SVR4_Custom_AlignFPArgRegs()

bool llvm::CC_PPC32_SVR4_Custom_AlignFPArgRegs ( unsigned ValNo,
MVT ValVT,
MVT LocVT,
CCValAssign::LocInfo LocInfo,
ISD::ArgFlagsTy ArgFlags,
CCState State 
)

◆ CC_PPC32_SVR4_Custom_Dummy()

bool llvm::CC_PPC32_SVR4_Custom_Dummy ( unsigned ValNo,
MVT ValVT,
MVT LocVT,
CCValAssign::LocInfo LocInfo,
ISD::ArgFlagsTy ArgFlags,
CCState State 
)

◆ CC_PPC32_SVR4_Custom_SkipLastArgRegsPPCF128()

bool llvm::CC_PPC32_SVR4_Custom_SkipLastArgRegsPPCF128 ( unsigned ValNo,
MVT ValVT,
MVT LocVT,
CCValAssign::LocInfo LocInfo,
ISD::ArgFlagsTy ArgFlags,
CCState State 
)

◆ CC_PPC_AnyReg_Error()

bool llvm::CC_PPC_AnyReg_Error ( unsigned ,
MVT ,
MVT ,
CCValAssign::LocInfo ,
ISD::ArgFlagsTy ,
CCState  
)
inline

Definition at line 23 of file PPCCallingConv.h.

References llvm_unreachable.

◆ CC_SystemZ_I128Indirect()

bool llvm::CC_SystemZ_I128Indirect ( unsigned ValNo,
MVT ValVT,
MVT LocVT,
CCValAssign::LocInfo LocInfo,
ISD::ArgFlagsTy ArgFlags,
CCState State 
)
inline

◆ CC_X86_32_MCUInReg()

bool llvm::CC_X86_32_MCUInReg ( unsigned ValNo,
MVT ValVT,
MVT LocVT,
CCValAssign::LocInfo LocInfo,
ISD::ArgFlagsTy ArgFlags,
CCState State 
)
inline

◆ CC_X86_32_RegCall_Assign2Regs()

bool llvm::CC_X86_32_RegCall_Assign2Regs ( unsigned ValNo,
MVT ValVT,
MVT LocVT,
CCValAssign::LocInfo LocInfo,
ISD::ArgFlagsTy ArgFlags,
CCState State 
)

When regcall calling convention compiled to 32 bit arch, special treatment is required for 64 bit masks.

The value should be assigned to two GPRs.

Returns
true if registers were allocated and false otherwise.

Definition at line 22 of file X86CallingConv.cpp.

References llvm::CCState::addLoc(), llvm::CCState::AllocateReg(), assert(), llvm::N86::EAX, llvm::N86::ECX, llvm::N86::EDI, llvm::N86::EDX, llvm::N86::ESI, llvm::CCValAssign::getCustomReg(), I, llvm::CCState::isAllocated(), llvm::SmallVectorTemplateBase< T >::push_back(), Reg, and llvm::SmallVectorBase::size().

◆ CC_X86_32_VectorCall()

bool llvm::CC_X86_32_VectorCall ( unsigned ValNo,
MVT ValVT,
MVT LocVT,
CCValAssign::LocInfo LocInfo,
ISD::ArgFlagsTy ArgFlags,
CCState State 
)

Vectorcall calling convention has special handling for vector types or HVA for 32 bit arch.

For HVAs actual XMM registers are allocated on the second pass. For vector types, actual XMM registers are allocated on the first pass.

Returns
true if registers were allocated and false otherwise.

Definition at line 168 of file X86CallingConv.cpp.

References llvm::CCState::addLoc(), llvm::CCState::AllocateReg(), CC_X86_VectorCallAssignRegister(), CC_X86_VectorCallGetSSEs(), llvm::CCValAssign::getReg(), llvm::MVT::getSizeInBits(), llvm::MVT::i32, llvm::CCValAssign::Indirect, llvm::MVT::isFloatingPoint(), llvm::ISD::ArgFlagsTy::isHva(), llvm::ISD::ArgFlagsTy::isSecArgPass(), llvm::MVT::isVector(), Reg, and llvm::ISD::ArgFlagsTy::setInReg().

◆ CC_X86_64_VectorCall()

bool llvm::CC_X86_64_VectorCall ( unsigned ValNo,
MVT ValVT,
MVT LocVT,
CCValAssign::LocInfo LocInfo,
ISD::ArgFlagsTy ArgFlags,
CCState State 
)

Vectorcall calling convention has special handling for vector types or HVA for 64 bit arch.

For HVAs shadow registers might be allocated on the first pass and actual XMM registers are allocated on the second pass. For vector types, actual XMM registers are allocated on the first pass.

Returns
true if registers were allocated and false otherwise.

Definition at line 116 of file X86CallingConv.cpp.

References llvm::CCState::addLoc(), llvm::CCState::AllocateReg(), llvm::CCState::AllocateStack(), CC_X86_64_VectorCallGetGPRs(), CC_X86_VectorCallAssignRegister(), CC_X86_VectorCallGetSSEs(), llvm::CCValAssign::getReg(), llvm::MVT::getSizeInBits(), llvm::CCState::isAllocated(), llvm::MVT::isFloatingPoint(), llvm::ISD::ArgFlagsTy::isHva(), llvm::ISD::ArgFlagsTy::isHvaStart(), llvm::ISD::ArgFlagsTy::isSecArgPass(), llvm::MVT::isVector(), and Reg.

◆ CC_X86_64_VectorCallGetGPRs()

static ArrayRef<MCPhysReg> llvm::CC_X86_64_VectorCallGetGPRs ( )
static

Definition at line 79 of file X86CallingConv.cpp.

References llvm::sys::path::begin(), llvm::sys::path::end(), and makeArrayRef().

Referenced by CC_X86_64_VectorCall().

◆ CC_X86_AnyReg_Error()

bool llvm::CC_X86_AnyReg_Error ( unsigned ,
MVT ,
MVT ,
CCValAssign::LocInfo ,
ISD::ArgFlagsTy ,
CCState  
)
inline

Definition at line 51 of file X86CallingConv.h.

References llvm_unreachable.

◆ CC_X86_VectorCallAssignRegister()

static bool llvm::CC_X86_VectorCallAssignRegister ( unsigned ValNo,
MVT ValVT,
MVT LocVT,
CCValAssign::LocInfo LocInfo,
ISD::ArgFlagsTy ArgFlags,
CCState State 
)
static

◆ CC_X86_VectorCallGetSSEs()

static ArrayRef<MCPhysReg> llvm::CC_X86_VectorCallGetSSEs ( const MVT ValVT)
static

◆ center_justify()

FormattedString llvm::center_justify ( StringRef  Str,
unsigned  Width 
)
inline

center_justify - add spaces before and after string so total output is Width characters.

If Str is larger that Width, full string is written with no padding.

Definition at line 159 of file Format.h.

References llvm::FormattedString::JustifyCenter.

◆ changeToInvokeAndSplitBasicBlock()

BasicBlock * llvm::changeToInvokeAndSplitBasicBlock ( CallInst CI,
BasicBlock UnwindEdge 
)

◆ changeToUnreachable()

unsigned llvm::changeToUnreachable ( Instruction I,
bool  UseLLVMTrap,
bool  PreserveLCSSA = false,
DomTreeUpdater DTU = nullptr 
)

◆ CheckBitcodeOutputToConsole()

bool llvm::CheckBitcodeOutputToConsole ( raw_ostream stream_to_check,
bool  print_warning = true 
)

Determine if the raw_ostream provided is connected to a terminal.

If so, generate a warning message to errs() advising against display of bitcode and return true. Otherwise just return false. Check for output written to a console

Parameters
stream_to_checkThe stream to be checked
print_warningControl whether warnings are printed

Definition at line 19 of file SystemUtils.cpp.

References errs(), and llvm::raw_ostream::is_displayed().

◆ checkedAdd()

template<typename T >
std::enable_if<std::is_signed<T>::value, llvm::Optional<T> >::type llvm::checkedAdd ( T  LHS,
T  RHS 
)

Add two signed integers LHS and RHS.

Returns
Optional of sum if no signed overflow occurred, None otherwise.

Definition at line 49 of file CheckedArithmetic.h.

References llvm::APInt::sadd_ov().

Referenced by checkedMulAdd().

◆ checkedAddUnsigned()

template<typename T >
std::enable_if<std::is_unsigned<T>::value, llvm::Optional<T> >::type llvm::checkedAddUnsigned ( T  LHS,
T  RHS 
)

Add two unsigned integers LHS and RHS.

Returns
Optional of sum if no unsigned overflow occurred, None otherwise.

Definition at line 78 of file CheckedArithmetic.h.

References llvm::APInt::uadd_ov().

Referenced by checkedMulAddUnsigned().

◆ checkedMul()

template<typename T >
std::enable_if<std::is_signed<T>::value, llvm::Optional<T> >::type llvm::checkedMul ( T  LHS,
T  RHS 
)

Multiply two signed integers LHS and RHS.

Returns
Optional of product if no signed overflow occurred, None otherwise.

Definition at line 58 of file CheckedArithmetic.h.

References llvm::APInt::smul_ov().

Referenced by checkedMulAdd().

◆ checkedMulAdd()

template<typename T >
std::enable_if<std::is_signed<T>::value, llvm::Optional<T> >::type llvm::checkedMulAdd ( T  A,
T  B,
T  C 
)

Multiply A and B, and add C to the resulting product.

Returns
Optional of result if no signed overflow occurred, None otherwise.

Definition at line 67 of file CheckedArithmetic.h.

References checkedAdd(), checkedMul(), and None.

◆ checkedMulAddUnsigned()

template<typename T >
std::enable_if<std::is_unsigned<T>::value, llvm::Optional<T> >::type llvm::checkedMulAddUnsigned ( T  A,
T  B,
T  C 
)

Multiply unsigned integers A and B, and add C to the resulting product.

Returns
Optional of result if no unsigned overflow occurred, None otherwise.

Definition at line 96 of file CheckedArithmetic.h.

References checkedAddUnsigned(), checkedMulUnsigned(), and None.

◆ checkedMulUnsigned()

template<typename T >
std::enable_if<std::is_unsigned<T>::value, llvm::Optional<T> >::type llvm::checkedMulUnsigned ( T  LHS,
T  RHS 
)

Multiply two unsigned integers LHS and RHS.

Returns
Optional of product if no unsigned overflow occurred, None otherwise.

Definition at line 87 of file CheckedArithmetic.h.

References llvm::APInt::umul_ov().

Referenced by checkedMulAddUnsigned().

◆ checkForCycles() [1/2]

void llvm::checkForCycles ( const SDNode N,
const SelectionDAG DAG = nullptr,
bool  force = false 
)

Definition at line 9316 of file SelectionDAG.cpp.

References assert(), and checkForCyclesHelper().

◆ checkForCycles() [2/2]

void llvm::checkForCycles ( const SelectionDAG DAG,
bool  force = false 
)

◆ checkGEPType()

Type* llvm::checkGEPType ( Type Ty)
inline

◆ checkSanitizerInterfaceFunction()

Function * llvm::checkSanitizerInterfaceFunction ( Constant FuncOrBitcast)

◆ children()

template<class GraphType >
iterator_range<typename GraphTraits<GraphType>::ChildIteratorType> llvm::children ( const typename GraphTraits< GraphType >::NodeRef &  G)

◆ children_edges()

template<class GraphType >
iterator_range<typename GraphTraits<GraphType>::ChildEdgeIteratorType> llvm::children_edges ( const typename GraphTraits< GraphType >::NodeRef &  G)

Definition at line 136 of file GraphTraits.h.

References make_range().

◆ classifyEHPersonality()

EHPersonality llvm::classifyEHPersonality ( const Value Pers)

See if the given exception handling personality function is one that we understand.

If so, return a description of it; otherwise return Unknown.

Definition at line 22 of file EHPersonalities.cpp.

References llvm::StringSwitch< T, R >::Case(), CoreCLR, llvm::StringSwitch< T, R >::Default(), dyn_cast(), F(), llvm::Value::getName(), GNU_Ada, GNU_C, GNU_C_SjLj, GNU_CXX, GNU_CXX_SjLj, GNU_ObjC, MSVC_CXX, MSVC_Win64SEH, MSVC_X86SEH, Rust, llvm::Value::stripPointerCasts(), Unknown, and Wasm_CXX.

Referenced by llvm::DwarfCFIException::beginFunction(), llvm::WinException::beginFunction(), llvm::CodeViewDebug::beginFunctionImpl(), canSimplifyInvokeNoUnwind(), llvm::LoopSafetyInfo::computeBlockColors(), createCallInst(), createDwarfEHPass(), createObjCARCOptPass(), createPHIsForCMOVsInSinkBB(), llvm::AArch64TargetLowering::EmitLoweredCatchRet(), llvm::X86FrameLowering::emitPrologue(), llvm::WinException::endFunclet(), llvm::ARMException::endFunction(), llvm::WinException::endFunction(), findUnwindDestinations(), getEHScopeMembership(), llvm::X86TargetLowering::getExceptionPointerRegister(), llvm::X86TargetLowering::getExceptionSelectorRegister(), getMOVL(), getSEHRegistrationNodeSize(), llvm::SelectionDAGBuilder::getValueImpl(), INITIALIZE_PASS(), InlineFunction(), isFuncletReturnInstr(), isSortedByValueNo(), isUsingScopeBasedEH(), llvm::SelectionDAGBuilder::lowerInvokable(), llvm::MachineFunction::MachineFunction(), mapWasmLandingPadIndex(), matchPair(), mergeCleanupPad(), needFuncLabelsForEHOrDebugInfo(), llvm::EscapeEnumerator::Next(), llvm::X86FrameLowering::processFunctionBeforeFrameFinalized(), llvm::X86FrameLowering::restoreCalleeSavedRegisters(), llvm::StackProtector::runOnFunction(), llvm::FunctionLoweringInfo::set(), shouldInstrumentBlock(), llvm::X86FrameLowering::spillCalleeSavedRegisters(), and llvm::InstCombiner::visitLandingPadInst().

◆ clearAnnotationCache()

void llvm::clearAnnotationCache ( const Module Mod)

Definition at line 40 of file NVPTXUtilities.cpp.

Referenced by llvm::NVPTXAsmPrinter::doFinalization().

◆ clearMod()

LLVM_NODISCARD ModRefInfo llvm::clearMod ( const ModRefInfo  MRI)
inline

Definition at line 176 of file AliasAnalysis.h.

References Ref.

Referenced by llvm::AliasSetTracker::add(), and llvm::AAResults::getModRefInfo().

◆ clearMust()

LLVM_NODISCARD ModRefInfo llvm::clearMust ( const ModRefInfo  MRI)
inline

◆ clearRef()

LLVM_NODISCARD ModRefInfo llvm::clearRef ( const ModRefInfo  MRI)
inline

Definition at line 179 of file AliasAnalysis.h.

References Mod.

Referenced by llvm::AAResults::getModRefInfo().

◆ CloneAndPruneFunctionInto()

void llvm::CloneAndPruneFunctionInto ( Function NewFunc,
const Function OldFunc,
ValueToValueMapTy VMap,
bool  ModuleLevelChanges,
SmallVectorImpl< ReturnInst *> &  Returns,
const char NameSuffix = "",
ClonedCodeInfo CodeInfo = nullptr,
Instruction TheCall = nullptr 
)

This works exactly like CloneFunctionInto, except that it does some simple constant prop and DCE on the fly.

The effect of this is to copy significantly less code in cases where (for example) a function call with constant arguments is inlined, and those constant arguments cause a significant amount of code in the callee to be dead. Since this doesn't produce an exactly copy of the input, it can't be used for things like CloneFunction or CloneModule.

If ModuleLevelChanges is false, VMap contains no non-identity GlobalValue mappings.

The effect of this is to copy significantly less code in cases where (for example) a function call with constant arguments is inlined, and those constant arguments cause a significant amount of code in the callee to be dead. Since this doesn't produce an exact copy of the input, it can't be used for things like CloneFunction or CloneModule.

Definition at line 712 of file CloneFunction.cpp.

References CloneAndPruneIntoFromInst(), llvm::BasicBlock::front(), and llvm::Function::front().

Referenced by InlineFunction().

◆ CloneAndPruneIntoFromInst()

void llvm::CloneAndPruneIntoFromInst ( Function NewFunc,
const Function OldFunc,
const Instruction StartingInst,
ValueToValueMapTy VMap,
bool  ModuleLevelChanges,
SmallVectorImpl< ReturnInst *> &  Returns,
const char NameSuffix = "",
ClonedCodeInfo CodeInfo = nullptr 
)

This works like CloneAndPruneFunctionInto, except that it does not clone the entire function.

Instead it starts at an instruction provided by the caller and copies (and prunes) only the code reachable from that instruction.

Definition at line 434 of file CloneFunction.cpp.

References llvm::Function::args(), assert(), llvm::BasicBlock::back(), llvm::BasicBlock::begin(), ConstantFoldTerminator(), llvm::ValueMap< KeyT, ValueT, Config >::count(), DeleteDeadBlock(), dyn_cast(), E, llvm::Function::end(), llvm::Instruction::eraseFromParent(), llvm::BasicBlock::eraseFromParent(), llvm::BasicBlock::front(), llvm::UndefValue::get(), llvm::Function::getBasicBlockList(), llvm::CallSiteBase< FunTy, BBTy, ValTy, UserTy, UseTy, InstrTy, CallTy, InvokeTy, IterTy >::getCalledFunction(), llvm::Module::getDataLayout(), llvm::Function::getEntryBlock(), llvm::PHINode::getIncomingBlock(), llvm::PHINode::getIncomingValue(), llvm::BasicBlock::getInstList(), llvm::ilist_node_impl< OptionsT >::getIterator(), llvm::PHINode::getNumIncomingValues(), llvm::Instruction::getParent(), llvm::GlobalValue::getParent(), llvm::BasicBlock::getSinglePredecessor(), llvm::BranchInst::getSuccessor(), llvm::BasicBlock::getTerminator(), llvm::Value::getType(), I, llvm::SetVector< T, SmallVector< T, N >, SmallDenseSet< T, N > >::insert(), llvm::BranchInst::isConditional(), isInstructionTriviallyDead(), llvm::Function::isIntrinsic(), llvm::ValueMap< KeyT, ValueT, Config >::lookup(), MapValue(), pred, pred_begin(), pred_end(), pred_size(), llvm::SmallVectorTemplateBase< T >::push_back(), llvm::iplist_impl< IntrusiveListT, TraitsT >::push_back(), RemapInstruction(), llvm::PHINode::removeIncomingValue(), llvm::Value::replaceAllUsesWith(), RF_NoModuleLevelChanges, RF_None, llvm::PHINode::setIncomingBlock(), llvm::PHINode::setIncomingValue(), SimplifyInstruction(), Size, llvm::SmallVectorBase::size(), llvm::SetVector< T, SmallVector< T, N >, SmallDenseSet< T, N > >::size(), and llvm::Value::users().

Referenced by CloneAndPruneFunctionInto().

◆ CloneBasicBlock()

BasicBlock * llvm::CloneBasicBlock ( const BasicBlock BB,
ValueToValueMapTy VMap,
const Twine NameSuffix = "",
Function F = nullptr,
ClonedCodeInfo CodeInfo = nullptr,
DebugInfoFinder DIFinder = nullptr 
)

Return a copy of the specified basic block, but without embedding the block into a particular function.

See comments in Cloning.h.

The block returned is an exact copy of the specified basic block, without any remapping having been performed. Because of this, this is only suitable for applications where the basic block will be inserted into the same function that it was cloned from (loop unrolling would use this, for example).

Also, note that this function makes a direct copy of the basic block, and can thus produce illegal LLVM code. In particular, it will copy any PHI nodes from the original block, even though there are no predecessors for the newly cloned block (thus, phi nodes will have to be updated). Also, this block will branch to the old successors of the original block: these successors will have to have any PHI nodes updated to account for the new incoming edges.

The correlation between instructions in the source and result basic blocks is recorded in the VMap map.

If you have a particular suffix you'd like to use to add to any cloned names, specify it as the optional third parameter.

If you would like the basic block to be auto-inserted into the end of a function, you can specify it as the optional fourth parameter.

If you would like to collect additional information about the cloned function, you can specify a ClonedCodeInfo object with the optional fifth parameter.

Definition at line 41 of file CloneFunction.cpp.

References llvm::ClonedCodeInfo::ContainsCalls, llvm::ClonedCodeInfo::ContainsDynamicAllocas, llvm::BasicBlock::Create(), F(), llvm::BasicBlock::getContext(), llvm::BasicBlock::getInstList(), llvm::Value::getName(), llvm::GlobalValue::getParent(), llvm::Value::hasName(), I, llvm::DebugInfoFinder::processInstruction(), llvm::iplist_impl< IntrusiveListT, TraitsT >::push_back(), and llvm::Value::setName().

Referenced by assertBranchOrSelectConditionHoisted(), buildClonedLoopBlocks(), CloneFunctionInto(), CloneLoop(), CloneLoopBlocks(), cloneLoopBlocks(), cloneLoopWithPreheader(), SplitIndirectBrCriticalEdges(), UnrollAndJamLoop(), and UnrollLoop().

◆ CloneFunction()

Function * llvm::CloneFunction ( Function F,
ValueToValueMapTy VMap,
ClonedCodeInfo CodeInfo = nullptr 
)

Return a copy of the specified function and add it to that function's module.

Also, any references specified in the VMap are changed to refer to their mapped value instead of the original one. If any of the arguments to the function are in the VMap, the arguments are deleted from the resultant function. The VMap is updated to include mappings from all of the instructions and basicblocks in the function from their old to new values. The final argument captures information about the cloned code if non-null.

VMap contains no non-identity GlobalValue mappings and debug info metadata will not be cloned.

Also, any references specified in the VMap are changed to refer to their mapped value instead of the original one. If any of the arguments to the function are in the VMap, the arguments are deleted from the resultant function. The VMap is updated to include mappings from all of the instructions and basicblocks in the function from their old to new values.

Definition at line 223 of file CloneFunction.cpp.

References llvm::Function::args(), llvm::Instruction::clone(), CloneFunctionInto(), llvm::ValueMap< KeyT, ValueT, Config >::count(), llvm::BasicBlock::Create(), llvm::Function::Create(), llvm::BranchInst::Create(), llvm::Value::deleteValue(), dyn_cast(), llvm::BasicBlock::end(), llvm::Function::front(), llvm::FunctionType::get(), llvm::BlockAddress::get(), llvm::GlobalValue::getAddressSpace(), llvm::SwitchInst::CaseHandleImpl< SwitchInstT, ConstantIntT, BasicBlockT >::getCaseSuccessor(), llvm::BasicBlock::getContext(), llvm::Module::getDataLayout(), llvm::Function::getFunctionType(), llvm::BasicBlock::getInstList(), llvm::GlobalValue::getLinkage(), llvm::BasicBlock::getModule(), llvm::Value::getName(), llvm::BasicBlock::getParent(), llvm::GlobalValue::getParent(), llvm::FunctionType::getReturnType(), llvm::Function::getSubprogram(), llvm::BasicBlock::getTerminator(), llvm::ConstantInt::getZExtValue(), llvm::BasicBlock::hasAddressTaken(), llvm::Value::hasName(), I, llvm::ARM_PROC::IE, llvm::FunctionType::isVarArg(), llvm::Instruction::mayHaveSideEffects(), llvm::iplist_impl< IntrusiveListT, TraitsT >::push_back(), RemapInstruction(), RF_NoModuleLevelChanges, RF_None, llvm::Value::setName(), SI, SimplifyInstruction(), and successors().

Referenced by hasProfileData(), and replaceAliasWithAliasee().

◆ CloneFunctionInto()

void llvm::CloneFunctionInto ( Function NewFunc,
const Function OldFunc,
ValueToValueMapTy VMap,
bool  ModuleLevelChanges,
SmallVectorImpl< ReturnInst *> &  Returns,
const char NameSuffix = "",
ClonedCodeInfo CodeInfo = nullptr,
ValueMapTypeRemapper TypeMapper = nullptr,
ValueMaterializer Materializer = nullptr 
)

Clone OldFunc into NewFunc, transforming the old arguments into references to VMap values.

Note that if NewFunc already has basic blocks, the ones cloned into it will be added to the end of the function. This function fills in a list of return instructions, and can optionally remap types and/or append the specified suffix to all values cloned.

If ModuleLevelChanges is false, VMap contains no non-identity GlobalValue mappings.

Definition at line 85 of file CloneFunction.cpp.

References llvm::GlobalObject::addMetadata(), llvm::Function::arg_size(), llvm::Function::args(), assert(), llvm::Function::begin(), CloneBasicBlock(), llvm::DebugInfoFinder::compile_units(), llvm::Function::copyAttributesFrom(), llvm::ValueMap< KeyT, ValueT, Config >::count(), llvm::Function::end(), llvm::Function::front(), llvm::AttributeList::get(), llvm::BlockAddress::get(), llvm::GlobalObject::getAllMetadata(), llvm::Function::getAttributes(), llvm::Function::getContext(), llvm::DIScope::getFile(), llvm::GlobalValue::getParent(), llvm::Function::getPersonalityFn(), llvm::Function::getSubprogram(), llvm::BasicBlock::getTerminator(), llvm::BasicBlock::hasAddressTaken(), llvm::Function::hasPersonalityFn(), I, MapMetadata(), MapValue(), llvm::ValueMap< KeyT, ValueT, Config >::MD(), llvm::SmallVectorTemplateBase< T >::push_back(), RemapInstruction(), RF_NoModuleLevelChanges, RF_None, llvm::Function::setAttributes(), llvm::Function::setPersonalityFn(), llvm::DebugInfoFinder::subprograms(), and llvm::DebugInfoFinder::types().

Referenced by CloneFunction(), CloneModule(), createClone(), llvm::orc::moveFunctionBody(), and PushArgMD().

◆ cloneLoopWithPreheader()

Loop * llvm::cloneLoopWithPreheader ( BasicBlock Before,
BasicBlock LoopDomBB,
Loop OrigLoop,
ValueToValueMapTy VMap,
const Twine NameSuffix,
LoopInfo LI,
DominatorTree DT,
SmallVectorImpl< BasicBlock *> &  Blocks 
)

◆ CloneModule() [1/3]

std::unique_ptr< Module > llvm::CloneModule ( const Module M)

Return an exact copy of the specified module.

This is not as easy as it might seem because we have to worry about making copies of global variables and functions, and making their (initializers and references, respectively) refer to the right globals.

Definition at line 35 of file CloneModule.cpp.

Referenced by CloneModule(), llvm::orc::cloneToNewContext(), LLVMCloneModule(), and SplitModule().

◆ CloneModule() [2/3]

std::unique_ptr< Module > llvm::CloneModule ( const Module M,
ValueToValueMapTy VMap 
)

Definition at line 42 of file CloneModule.cpp.

References CloneModule().

◆ CloneModule() [3/3]

std::unique_ptr< Module > llvm::CloneModule ( const Module M,
ValueToValueMapTy VMap,
function_ref< bool(const GlobalValue *)>  ShouldCloneDefinition 
)

◆ collectChildrenInLoop()

SmallVector< DomTreeNode *, 16 > llvm::collectChildrenInLoop ( DomTreeNode N,
const Loop CurLoop 
)

Does a BFS from a given node to all of its children inside a given loop.

The returned vector of nodes includes the starting point.

Definition at line 428 of file LoopUtils.cpp.

References llvm::LoopBase< BlockT, LoopT >::contains(), I, llvm::SmallVectorTemplateBase< T >::push_back(), and llvm::SmallVectorBase::size().

Referenced by sinkRegion().

◆ collectCmpOps()

void llvm::collectCmpOps ( CmpInst Comparison,
SmallVectorImpl< Value *> &  CmpOperands 
)

◆ collectPGOFuncNameStrings() [1/2]

Error llvm::collectPGOFuncNameStrings ( ArrayRef< std::string >  NameStrs,
bool  doCompression,
std::string &  Result 
)

Given a vector of strings (function PGO names) NameStrs, the method generates a combined string Result thatis ready to be serialized.

The Result string is comprised of three fields: The first field is the legnth of the uncompressed strings, and the the second field is the length of the zlib-compressed string. Both fields are encoded in ULEB128. If doCompress is false, the third field is the uncompressed strings; otherwise it is the compressed string. When the string compression is off, the second field will have value zero.

Definition at line 379 of file InstrProf.cpp.

References assert(), llvm::ArrayRef< T >::begin(), llvm::zlib::BestSizeCompression, llvm::zlib::compress(), compress_failed, consumeError(), count(), E, llvm::ArrayRef< T >::empty(), encodeULEB128(), llvm::ArrayRef< T >::end(), getInstrProfNameSeparator(), join(), P, llvm::SmallVectorBase::size(), llvm::ArrayRef< T >::size(), and llvm::Error::success().

Referenced by collectPGOFuncNameStrings(), getInstrProfNameSeparator(), and needsRuntimeRegistrationOfSectionRange().

◆ collectPGOFuncNameStrings() [2/2]

Error llvm::collectPGOFuncNameStrings ( ArrayRef< GlobalVariable *>  NameVars,
std::string &  Result,
bool  doCompression = true 
)

Produce Result string with the same format described above.

The input is vector of PGO function name variables that are referenced.

Definition at line 427 of file InstrProf.cpp.

References collectPGOFuncNameStrings(), getPGOFuncNameVarInitializer(), and llvm::zlib::isAvailable().

◆ collectUsedGlobalVariables()

GlobalVariable * llvm::collectUsedGlobalVariables ( const Module M,
SmallPtrSetImpl< GlobalValue *> &  Set,
bool  CompilerUsed 
)

◆ colorEHFunclets()

DenseMap< BasicBlock *, ColorVector > llvm::colorEHFunclets ( Function F)

◆ combineKnownMetadata()

static void llvm::combineKnownMetadata ( Instruction ReplInst,
Instruction I 
)
static

◆ combineLostFractions()

static lostFraction llvm::combineLostFractions ( lostFraction  moreSignificant,
lostFraction  lessSignificant 
)
static

◆ combineMetadata()

void llvm::combineMetadata ( Instruction K,
const Instruction J,
ArrayRef< unsigned KnownIDs,
bool  DoesKMove 
)

◆ combineMetadataForCSE()

void llvm::combineMetadataForCSE ( Instruction K,
const Instruction J,
bool  DoesKMove 
)

◆ compareLoops()

template<class BlockT , class LoopT >
static void llvm::compareLoops ( const LoopT *  L,
const LoopT *  OtherL,
DenseMap< BlockT *, const LoopT *> &  OtherLoopHeaders 
)
static

◆ CompareVars()

static bool llvm::CompareVars ( const ASanStackVariableDescription a,
const ASanStackVariableDescription b 
)
inlinestatic

◆ compareVectors()

template<typename T >
bool llvm::compareVectors ( std::vector< T > &  BB1,
std::vector< T > &  BB2 
)

Definition at line 645 of file LoopInfoImpl.h.

References sort().

Referenced by compareLoops().

◆ computeAllBlockSizes()

std::vector< BasicBlockInfo > llvm::computeAllBlockSizes ( MachineFunction MF)

◆ computeAllocationSizeForSections()

static uint64_t llvm::computeAllocationSizeForSections ( std::vector< uint64_t > &  SectionSizes,
uint64_t  Alignment 
)
static

Definition at line 399 of file RuntimeDyld.cpp.

Referenced by llvm::RuntimeDyldImpl::computeTotalAllocSize().

◆ computeAndAddLiveIns()

void llvm::computeAndAddLiveIns ( LivePhysRegs LiveRegs,
MachineBasicBlock MBB 
)

◆ ComputeASanStackFrameDescription()

SmallString< 64 > llvm::ComputeASanStackFrameDescription ( const SmallVectorImpl< ASanStackVariableDescription > &  Vars)

◆ ComputeASanStackFrameLayout()

ASanStackFrameLayout llvm::ComputeASanStackFrameLayout ( SmallVectorImpl< ASanStackVariableDescription > &  Vars,
size_t  Granularity,
size_t  MinHeaderSize 
)

◆ computeBlockSize()

void llvm::computeBlockSize ( MachineFunction MF,
MachineBasicBlock MBB,
BasicBlockInfo BBI 
)

◆ computeBundlePadding()

uint64_t llvm::computeBundlePadding ( const MCAssembler Assembler,
const MCEncodedFragment F,
uint64_t  FOffset,
uint64_t  FSize 
)

Compute the amount of padding required before the fragment F to obey bundling restrictions, where FOffset is the fragment's offset in its section and FSize is the fragment's size.

Definition at line 191 of file MCFragment.cpp.

References llvm::MCEncodedFragment::alignToBundleEnd(), assert(), llvm::ilist_alloc_traits< NodeTy >::deleteNode(), llvm::MCFragment::destroy(), llvm::MCAssembler::getBundleAlignSize(), and llvm::MCFragment::~MCFragment().

Referenced by llvm::MCAssembler::addFileName(), llvm::MCAsmLayout::layoutFragment(), and llvm::MCELFStreamer::MCELFStreamer().

◆ ComputeCrossModuleImport()

void llvm::ComputeCrossModuleImport ( const ModuleSummaryIndex Index,
const StringMap< GVSummaryMapTy > &  ModuleToDefinedGVSummaries,
StringMap< FunctionImporter::ImportMapTy > &  ImportLists,
StringMap< FunctionImporter::ExportSetTy > &  ExportLists 
)

Compute all the imports and exports for every module in the Index.

Compute all the import and export for every module using the Index.

ModuleToDefinedGVSummaries contains for each Module a map (GUID -> Summary) for every global defined in the module.

ImportLists will be populated with an entry for every Module we are importing into. This entry is itself a map that can be passed to FunctionImporter::importFunctions() above (see description there).

ExportLists contains for each Module the set of globals (GUID) that will be imported by another module, or referenced by such a function. I.e. this is the set of globals that need to be promoted/renamed appropriately.

Definition at line 619 of file FunctionImport.cpp.

References ComputeImportForModule(), dbgs(), LLVM_DEBUG, numGlobalVarSummaries(), and llvm::StringMapImpl::size().

Referenced by llvm::lto::createWriteIndexesThinBackend(), llvm::ThinLTOCodeGenerator::crossModuleImport(), llvm::ThinLTOCodeGenerator::emitImports(), llvm::ThinLTOCodeGenerator::gatherImportedSummariesForModule(), llvm::ThinLTOCodeGenerator::internalize(), llvm::ThinLTOCodeGenerator::promote(), and llvm::ThinLTOCodeGenerator::run().

◆ ComputeCrossModuleImportForModule()

void llvm::ComputeCrossModuleImportForModule ( StringRef  ModulePath,
const ModuleSummaryIndex Index,
FunctionImporter::ImportMapTy ImportList 
)

Compute all the imports for the given module using the Index.

Compute all the imports for the given module in the Index.

ImportList will be populated with a map that can be passed to FunctionImporter::importFunctions() above (see description there).

Definition at line 691 of file FunctionImport.cpp.

References llvm::ModuleSummaryIndex::collectDefinedFunctionsForModule(), ComputeImportForModule(), dbgs(), dumpImportListForModule(), and LLVM_DEBUG.

Referenced by doImportingForModule().

◆ ComputeCrossModuleImportForModuleFromIndex()

void llvm::ComputeCrossModuleImportForModuleFromIndex ( StringRef  ModulePath,
const ModuleSummaryIndex Index,
FunctionImporter::ImportMapTy ImportList 
)

Mark all external summaries in Index for import into the given module.

Used for distributed builds using a distributed index.

ImportList will be populated with a map that can be passed to FunctionImporter::importFunctions() above (see description there).

Definition at line 710 of file FunctionImport.cpp.

References assert(), dumpImportListForModule(), and llvm::StringMap< ValueTy, AllocatorTy >::insert().

Referenced by doImportingForModule().

◆ computeDeadSymbols()

void llvm::computeDeadSymbols ( ModuleSummaryIndex Index,
const DenseSet< GlobalValue::GUID > &  GUIDPreservedSymbols,
function_ref< PrevailingType(GlobalValue::GUID)>  isPrevailing 
)

◆ computeDeadSymbolsWithConstProp()

void llvm::computeDeadSymbolsWithConstProp ( ModuleSummaryIndex Index,
const DenseSet< GlobalValue::GUID > &  GUIDPreservedSymbols,
function_ref< PrevailingType(GlobalValue::GUID)>  isPrevailing,
bool  ImportEnabled 
)

Compute dead symbols and run constant propagation in combined index after that.

Definition at line 843 of file FunctionImport.cpp.

References computeDeadSymbols(), P, and llvm::ModuleSummaryIndex::propagateConstants().

Referenced by computeDeadSymbolsInIndex(), and llvm::lto::LTO::run().

◆ computeDelta()

static int64_t llvm::computeDelta ( SectionEntry A,
SectionEntry B 
)
static

◆ ComputeEditDistance()

template<typename T >
unsigned llvm::ComputeEditDistance ( ArrayRef< T FromArray,
ArrayRef< T ToArray,
bool  AllowReplacements = true,
unsigned  MaxEditDistance = 0 
)

Determine the edit distance between two sequences.

Parameters
FromArraythe first sequence to compare.
ToArraythe second sequence to compare.
AllowReplacementswhether to allow element replacements (change one element into another) as a single operation, rather than as two operations (an insertion and a removal).
MaxEditDistanceIf non-zero, the maximum edit distance that this routine is allowed to compute. If the edit distance will exceed that maximum, returns MaxEditDistance+1.
Returns
the minimum number of element insertions, removals, or (if AllowReplacements is true) replacements needed to transform one of the given sequences into the other. If zero, the sequences are identical.

Definition at line 43 of file edit_distance.h.

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

Referenced by llvm::StringRef::edit_distance().

◆ computeFunctionBodyMemoryAccess()

MemoryAccessKind llvm::computeFunctionBodyMemoryAccess ( Function F,
AAResults AAR 
)

Returns the memory access properties of this copy of the function.

Definition at line 224 of file FunctionAttrs.cpp.

References checkFunctionMemoryAccess().

Referenced by llvm::WholeProgramDevirtPass::run().

◆ computeKnownBits() [1/2]

void llvm::computeKnownBits ( const Value V,
KnownBits Known,
const DataLayout DL,
unsigned  Depth = 0,
AssumptionCache AC = nullptr,
const Instruction CxtI = nullptr,
const DominatorTree DT = nullptr,
OptimizationRemarkEmitter ORE = nullptr,
bool  UseInstrInfo = true 
)

Determine which bits of V are known to be either zero or one and return them in the KnownZero/KnownOne bit sets.

This function is defined on values with integer type, values with pointer type, and vectors of integers. In the case where V is a vector, the known zero and known one values are the same width as the vector element, and the bit is set only if it is true for all of the elements in the vector.

Definition at line 169 of file ValueTracking.cpp.

References Query(), and safeCxtI().

Referenced by aliasSameBasePointerGEPs(), BrPHIToSelect(), canonicalizeSaturatedSubtract(), canTransformToMemCmp(), computeKnownBits(), llvm::InstCombiner::computeKnownBits(), computeKnownBitsAddSub(), computeKnownBitsFromAssume(), computeKnownBitsFromOperator(), computeKnownBitsFromShiftOperator(), computeKnownBitsMul(), llvm::slpvectorizer::BoUpSLP::computeMinimumValueSizes(), ComputeNumSignBitsImpl(), computeOverflowForSignedAdd(), computeOverflowForSignedMul(), computeOverflowForSignedSub(), computeOverflowForUnsignedAdd(), computeOverflowForUnsignedMul(), computeOverflowForUnsignedSub(), computeRecurrenceType(), ConstantFoldLoadFromConstPtr(), llvm::SelectionDAG::DbgLabelEnd(), eliminateDeadSwitchCases(), EvaluateConstantChrecAtConstant(), getOrEnforceKnownAlignment(), getRangeForAffineARHelper(), GetRangeFromMetadata(), haveNoCommonBitsSet(), llvm::SelectionDAG::InferPtrAlignment(), isAlwaysLive(), isKnownNegative(), isKnownNonEqual(), isKnownNonNegative(), isKnownNonZero(), isKnownToBeAPowerOfTwo(), isTruePredicate(), isZero(), MaskedValueIsZero(), processUGT_ADDCST_ADD(), propagateMetadata(), llvm::InstCombiner::run(), safeCxtI(), ShrinkDemandedConstant(), SimplifyAndInst(), simplifyICmpWithBinOp(), simplifyICmpWithZero(), SimplifyInstruction(), SimplifyLShrInst(), llvm::InstCombiner::simplifyRangeCheck(), SimplifyRightShift(), SimplifyShift(), SimplifySubInst(), llvm::InstCombiner::visitAdd(), llvm::InstCombiner::visitCallInst(), llvm::InstCombiner::visitReturnInst(), llvm::InstCombiner::visitSExt(), llvm::InstCombiner::visitSub(), llvm::InstCombiner::visitSwitchInst(), llvm::InstCombiner::visitTrunc(), and llvm::InstCombiner::visitZExt().

◆ computeKnownBits() [2/2]

KnownBits llvm::computeKnownBits ( const Value V,
const DataLayout DL,
unsigned  Depth = 0,
AssumptionCache AC = nullptr,
const Instruction CxtI = nullptr,
const DominatorTree DT = nullptr,
OptimizationRemarkEmitter ORE = nullptr,
bool  UseInstrInfo = true 
)

Returns the known bits rather than passing by reference.

Definition at line 181 of file ValueTracking.cpp.

References computeKnownBits(), Query(), and safeCxtI().

◆ computeKnownBitsFromRangeMetadata()

void llvm::computeKnownBitsFromRangeMetadata ( const MDNode Ranges,
KnownBits Known 
)

◆ ComputeLegalValueVTs()

void llvm::ComputeLegalValueVTs ( const Function F,
const TargetMachine TM,
Type Ty,
SmallVectorImpl< MVT > &  ValueVTs 
)

◆ ComputeLinearIndex() [1/2]

unsigned llvm::ComputeLinearIndex ( Type Ty,
const unsigned Indices,
const unsigned IndicesEnd,
unsigned  CurIndex = 0 
)

Compute the linearized index of a member in a nested aggregate/struct/array.

Compute the linearized index of a member in a nested aggregate/struct/array by recursing and accumulating CurIndex as long as there are indices in the index list.

Given an LLVM IR aggregate type and a sequence of insertvalue or extractvalue indices that identify a member, return the linearized index of the start of the member, i.e the number of element in memory before the sought one. This is disconnected from the number of bytes.

Parameters
Tyis the type indexed by Indices.
Indicesis an optional pointer in the indices list to the current index.
IndicesEndis the end of the indices list.
CurIndexis the current index in the recursion.
Returns
CurIndex plus the linear index in Ty the indices list.

Definition at line 36 of file Analysis.cpp.

References assert().

Referenced by ComputeLinearIndex(), hasOnlySelectUsers(), and llvm::FastISel::selectExtractValue().

◆ ComputeLinearIndex() [2/2]

unsigned llvm::ComputeLinearIndex ( Type Ty,
ArrayRef< unsigned Indices,
unsigned  CurIndex = 0 
)
inline

◆ computeLiveIns()

void llvm::computeLiveIns ( LivePhysRegs LiveRegs,
const MachineBasicBlock MBB 
)

◆ computeLTOCacheKey()

void llvm::computeLTOCacheKey ( SmallString< 40 > &  Key,
const lto::Config Conf,
const ModuleSummaryIndex Index,
StringRef  ModuleID,
const FunctionImporter::ImportMapTy ImportList,
const FunctionImporter::ExportSetTy ExportList,
const std::map< GlobalValue::GUID, GlobalValue::LinkageTypes > &  ResolvedODR,
const GVSummaryMapTy DefinedGlobals,
const std::set< GlobalValue::GUID > &  CfiFunctionDefs = {},
const std::set< GlobalValue::GUID > &  CfiFunctionDecls = {} 
)

◆ computeMinimumValueSizes()

MapVector< Instruction *, uint64_t > llvm::computeMinimumValueSizes ( ArrayRef< BasicBlock *>  Blocks,
DemandedBits DB,
const TargetTransformInfo TTI = nullptr 
)

Compute a map of integer instructions to their minimum legal type size.

C semantics force sub-int-sized values (e.g. i8, i16) to be promoted to int type (e.g. i32) whenever arithmetic is performed on them.

For targets with native i8 or i16 operations, usually InstCombine can shrink the arithmetic type down again. However InstCombine refuses to create illegal types, so for targets without i8 or i16 registers, the lengthening and shrinking remains.

Most SIMD ISAs (e.g. NEON) however support vectors of i8 or i16 even when their scalar equivalents do not, so during vectorization it is important to remove these lengthens and truncates when deciding the profitability of vectorization.

This function analyzes the given range of instructions and determines the minimum type size each can be converted to. It attempts to remove or minimize type size changes across each def-use chain, so for example in the following code:

%1 = load i8, i8* %2 = add i8 %1, 2 %3 = load i16, i16* %4 = zext i8 %2 to i32 %5 = zext i16 %3 to i32 %6 = add i32 %4, %5 %7 = trunc i32 %6 to i16

Instruction %6 must be done at least in i16, so computeMinimumValueSizes will return: {%1: 16, %2: 16, %3: 16, %4: 16, %5: 16, %6: 16, %7: 16}.

If the optional TargetTransformInfo is provided, this function tries harder to do less work by only looking at illegal types.

Definition at line 330 of file VectorUtils.cpp.

References llvm::EquivalenceClasses< ElemTy >::begin(), llvm::SmallPtrSetImpl< PtrType >::count(), countLeadingZeros(), E, llvm::SmallVectorBase::empty(), llvm::EquivalenceClasses< ElemTy >::end(), llvm::APInt::getBitWidth(), llvm::DemandedBits::getDemandedBits(), llvm::EquivalenceClasses< ElemTy >::getOrInsertLeaderValue(), getScalarSizeInBits(), llvm::Value::getType(), llvm::APInt::getZExtValue(), I, llvm::SmallPtrSetImpl< PtrType >::insert(), llvm::Type::isIntegerTy(), isPowerOf2_64(), llvm::TargetTransformInfo::isTypeLegal(), llvm::EquivalenceClasses< ElemTy >::member_begin(), llvm::EquivalenceClasses< ElemTy >::member_end(), MI, NextPowerOf2(), llvm::RISCVFenceField::O, llvm::SmallVectorImpl< T >::pop_back_val(), llvm::SmallVectorTemplateBase< T >::push_back(), and llvm::EquivalenceClasses< ElemTy >::unionSets().

Referenced by llvm::slpvectorizer::BoUpSLP::bestOrder(), and llvm::LoopVectorizationCostModel::computeMaxVF().

◆ ComputeMultiple()

bool llvm::ComputeMultiple ( Value V,
unsigned  Base,
Value *&  Multiple,
bool  LookThroughSExt = false,
unsigned  Depth = 0 
)

This function computes the integer multiple of Base that equals V.

If successful, it returns true and returns the multiple in Multiple. If unsuccessful, it returns false. Also, if V can be simplified to an integer, then the simplified V is returned in Val. Look through sext only if LookThroughSExt=true.

If successful, it returns true and returns the multiple in Multiple. If unsuccessful, it returns false. It looks through SExt instructions only if LookThroughSExt is true.

Definition at line 2594 of file ValueTracking.cpp.

References assert(), dyn_cast(), llvm::ConstantInt::get(), llvm::APInt::getBitWidth(), llvm::Value::getContext(), llvm::APInt::getLimitedValue(), llvm::ConstantExpr::getMul(), llvm::Operator::getOpcode(), llvm::User::getOperand(), llvm::Value::getType(), llvm::ConstantInt::getValue(), llvm::ConstantExpr::getZExt(), llvm::ConstantInt::getZExtValue(), llvm::Type::isIntegerTy(), LLVM_FALLTHROUGH, and llvm::APInt::setBit().

Referenced by computeArraySize().

◆ ComputeNumSignBits()

unsigned llvm::ComputeNumSignBits ( const Value Op,
const DataLayout DL,
unsigned  Depth = 0,
AssumptionCache AC = nullptr,
const Instruction CxtI = nullptr,
const DominatorTree DT = nullptr,
bool  UseInstrInfo = true 
)

Return the number of times the sign bit of the register is replicated into the other bits.

We know that at least 1 bit is always equal to the sign bit (itself), but other cases can give us information. For example, immediately after an "ashr X, 2", we know that the top 3 bits are all equal to each other, so we return 3. For vectors, return the number of sign bits for the vector element with the mininum number of known sign bits.

Definition at line 301 of file ValueTracking.cpp.

References ComputeNumSignBits(), Query(), and safeCxtI().

Referenced by areInverseVectorBitmasks(), llvm::slpvectorizer::BoUpSLP::computeMinimumValueSizes(), llvm::InstCombiner::ComputeNumSignBits(), ComputeNumSignBitsImpl(), computeOverflowForSignedAdd(), computeOverflowForSignedMul(), computeOverflowForSignedSub(), computeRecurrenceType(), eliminateDeadSwitchCases(), getMulHu(), GetRangeFromMetadata(), MaskedValueIsZero(), ShrinkDemandedConstant(), SimplifyAShrInst(), llvm::InstCombiner::visitSExt(), and llvm::InstCombiner::visitShl().

◆ computeOverflowForSignedAdd() [1/2]

OverflowResult llvm::computeOverflowForSignedAdd ( const Value LHS,
const Value RHS,
const DataLayout DL,
AssumptionCache AC = nullptr,
const Instruction CxtI = nullptr,
const DominatorTree DT = nullptr 
)

◆ computeOverflowForSignedAdd() [2/2]

OverflowResult llvm::computeOverflowForSignedAdd ( const AddOperator Add,
const DataLayout DL,
AssumptionCache AC = nullptr,
const Instruction CxtI = nullptr,
const DominatorTree DT = nullptr 
)

This version also leverages the sign bit of Add if known.

Definition at line 4256 of file ValueTracking.cpp.

References llvm::MCID::Add, computeOverflowForSignedAdd(), and llvm::User::getOperand().

◆ computeOverflowForSignedMul()

OverflowResult llvm::computeOverflowForSignedMul ( const Value LHS,
const Value RHS,
const DataLayout DL,
AssumptionCache AC,
const Instruction CxtI,
const DominatorTree DT,
bool  UseInstrInfo = true 
)

◆ computeOverflowForSignedSub()

OverflowResult llvm::computeOverflowForSignedSub ( const Value LHS,
const Value RHS,
const DataLayout DL,
AssumptionCache AC,
const Instruction CxtI,
const DominatorTree DT 
)

◆ computeOverflowForUnsignedAdd()

OverflowResult llvm::computeOverflowForUnsignedAdd ( const Value LHS,
const Value RHS,
const DataLayout DL,
AssumptionCache AC,
const Instruction CxtI,
const DominatorTree DT,
bool  UseInstrInfo = true 
)

◆ computeOverflowForUnsignedMul()

OverflowResult llvm::computeOverflowForUnsignedMul ( const Value LHS,
const Value RHS,
const DataLayout DL,
AssumptionCache AC,
const Instruction CxtI,
const DominatorTree DT,
bool  UseInstrInfo = true 
)

◆ computeOverflowForUnsignedSub()

OverflowResult llvm::computeOverflowForUnsignedSub ( const Value LHS,
const Value RHS,
const DataLayout DL,
AssumptionCache AC,
const Instruction CxtI,
const DominatorTree DT 
)

◆ computePeelCount()

void llvm::computePeelCount ( Loop L,
unsigned  LoopSize,
TargetTransformInfo::UnrollingPreferences UP,
unsigned TripCount,
ScalarEvolution SE 
)

◆ ComputeSignatureVTs()

void llvm::ComputeSignatureVTs ( const FunctionType Ty,
const Function F,
const TargetMachine TM,
SmallVectorImpl< MVT > &  Params,
SmallVectorImpl< MVT > &  Results 
)

◆ ComputeSpeculationCost()

static unsigned llvm::ComputeSpeculationCost ( const Instruction I,
const TargetTransformInfo TTI 
)
static

◆ computeSyntheticCounts()

void llvm::computeSyntheticCounts ( ModuleSummaryIndex Index)

◆ computeUnrollCount()

bool llvm::computeUnrollCount ( Loop L,
const TargetTransformInfo TTI,
DominatorTree DT,
LoopInfo LI,
ScalarEvolution SE,
const SmallPtrSetImpl< const Value *> &  EphValues,
OptimizationRemarkEmitter ORE,
unsigned TripCount,
unsigned  MaxTripCount,
unsigned TripMultiple,
unsigned  LoopSize,
TargetTransformInfo::UnrollingPreferences UP,
bool UseUpperBound 
)

Definition at line 717 of file LoopUnrollPass.cpp.

References llvm::TargetTransformInfo::UnrollingPreferences::AllowExpensiveTripCount, llvm::TargetTransformInfo::UnrollingPreferences::AllowRemainder, analyzeLoopUnrollCost(), assert(), llvm::TargetTransformInfo::UnrollingPreferences::BEInsns, computePeelCount(), llvm::TargetTransformInfo::UnrollingPreferences::Count, dbgs(), DEBUG_TYPE, llvm::TargetTransformInfo::UnrollingPreferences::DefaultUnrollRuntimeCount, llvm::OptimizationRemarkEmitter::emit(), FlatLoopTripCountThreshold, llvm::TargetTransformInfo::UnrollingPreferences::Force, llvm::TargetTransformInfo::UnrollingPreferences::FullUnrollMaxCount, getFullUnrollBoostingFactor(), llvm::LoopBase< BlockT, LoopT >::getHeader(), getLoopEstimatedTripCount(), llvm::BasicBlock::getParent(), llvm::Loop::getStartLoc(), getUnrolledLoopSize(), llvm::Function::hasProfileData(), HasRuntimeUnrollDisablePragma(), HasUnrollEnablePragma(), HasUnrollFullPragma(), LLVM_DEBUG, max(), llvm::TargetTransformInfo::UnrollingPreferences::MaxCount, llvm::TargetTransformInfo::UnrollingPreferences::MaxPercentThresholdBoost, llvm::TargetTransformInfo::UnrollingPreferences::Partial, llvm::TargetTransformInfo::UnrollingPreferences::PartialThreshold, llvm::TargetTransformInfo::UnrollingPreferences::PeelCount, PragmaUnrollThreshold, llvm::TargetTransformInfo::UnrollingPreferences::Runtime, llvm::TargetTransformInfo::UnrollingPreferences::Threshold, UnrollCount, UnrollCountPragmaValue(), and llvm::TargetTransformInfo::UnrollingPreferences::UpperBound.

Referenced by computeUnrollAndJamCount(), and tryToUnrollLoop().

◆ computeUsesVAFloatArgument()

void llvm::computeUsesVAFloatArgument ( const CallInst I,
MachineModuleInfo MMI 
)

Determine if any floating-point values are being passed to this variadic function, and set the MachineModuleInfo's usesVAFloatArgument flag if so.

This flag is used to emit an undefined reference to _fltused on Windows, which will link in MSVCRT's floating-point support.

Definition at line 334 of file MachineModuleInfo.cpp.

References llvm::CallBase::getArgOperand(), llvm::CallBase::getCalledValue(), llvm::Type::getContainedType(), llvm::CallBase::getNumArgOperands(), llvm::Value::getType(), llvm::FunctionType::isVarArg(), post_order(), llvm::MachineModuleInfo::setUsesVAFloatArgument(), and llvm::MachineModuleInfo::usesVAFloatArgument().

Referenced by getMemCmpLoad(), llvm::MachineModuleInfo::getPersonalities(), and llvm::FastISel::selectCall().

◆ ComputeValueVTs()

void llvm::ComputeValueVTs ( const TargetLowering TLI,
const DataLayout DL,
Type Ty,
SmallVectorImpl< EVT > &  ValueVTs,
SmallVectorImpl< uint64_t > *  Offsets = nullptr,
uint64_t  StartingOffset = 0 
)

ComputeValueVTs - Given an LLVM IR type, compute a sequence of EVTs that represent all the individual underlying non-aggregate types that comprise it.

If Offsets is non-null, it points to a vector to be filled in with the in-memory offsets of each of the individual values.

Definition at line 84 of file Analysis.cpp.

References llvm::StructLayout::getElementOffset(), llvm::DataLayout::getStructLayout(), llvm::DataLayout::getTypeAllocSize(), llvm::TargetLoweringBase::getValueType(), llvm::Type::isVoidTy(), llvm::SmallVectorTemplateBase< T >::push_back(), and llvm::SmallVectorTemplateBase< T, bool >::push_back().

Referenced by llvm::AArch64CallLowering::AArch64CallLowering(), addStackMapLiveVars(), llvm::AMDGPUTargetLowering::analyzeFormalArgumentsCompute(), ComputeLegalValueVTs(), ComputeLinearIndex(), llvm::FunctionLoweringInfo::ComputePHILiveOutRegInfo(), ComputePTXValueVTs(), llvm::FunctionLoweringInfo::CreateRegs(), findMatchingInlineAsmOperand(), findUnwindDestinations(), getOpenCLAlignment(), llvm::NVPTXTargetLowering::getPrototype(), GetReturnInfo(), getUnderlyingArgReg(), getUniformBase(), llvm::FunctionLoweringInfo::getValueFromVirtualReg(), llvm::SelectionDAGBuilder::getValueImpl(), hasOnlySelectUsers(), isSupportedType(), llvm::NVPTXTargetLowering::LowerCall(), llvm::FastISel::lowerCallTo(), llvm::TargetLowering::LowerCallTo(), llvm::X86CallLowering::lowerReturn(), llvm::AArch64CallLowering::lowerReturn(), llvm::MipsCallLowering::lowerReturn(), llvm::RegsForValue::RegsForValue(), llvm::FastISel::selectExtractValue(), llvm::FunctionLoweringInfo::set(), tryToElideArgumentCopy(), llvm::SelectionDAGBuilder::visitBitTestCase(), VisitGlobalVariableForEmission(), and llvm::X86CallLowering::X86CallLowering().

◆ concat()

template<typename ValueT , typename... RangeTs>
detail::concat_range<ValueT, RangeTs...> llvm::concat ( RangeTs &&...  Ranges)

Concatenated range across two or more ranges.

The desired value type must be explicitly specified.

Definition at line 947 of file STLExtras.h.

Referenced by llvm::ImmutableListFactory< T >::add(), llvm::ImmutableListFactory< T >::create(), llvm::ImmutableListFactory< T >::emplace(), getOnlyLiveSuccessor(), and llvm::HvxSelector::getPairVT().

◆ concatenateVectors()

Value * llvm::concatenateVectors ( IRBuilder<> &  Builder,
ArrayRef< Value *>  Vecs 
)

◆ condCodeOp()

static MachineOperand llvm::condCodeOp ( unsigned  CCReg = 0)
inlinestatic

◆ ConstantFoldBinaryInstruction()

Constant * llvm::ConstantFoldBinaryInstruction ( unsigned  Opcode,
Constant V1,
Constant V2 
)

Definition at line 919 of file ConstantFold.cpp.

References llvm::MCID::Add, llvm::APFloat::add(), llvm::APInt::ashr(), assert(), llvm::APFloat::divide(), llvm::IntegerType::get(), llvm::ConstantInt::get(), llvm::ConstantFP::get(), llvm::ConstantVector::get(), llvm::ConstantExpr::get(), llvm::UndefValue::get(), llvm::GlobalValue::getAlignment(), llvm::Constant::getAllOnesValue(), llvm::ConstantExpr::getAnd(), llvm::APInt::getBitWidth(), llvm::ConstantExpr::getCompare(), llvm::Value::getContext(), llvm::ConstantExpr::getExtractElement(), llvm::ConstantInt::getFalse(), llvm::CmpInst::getInversePredicate(), llvm::APInt::getLowBitsSet(), llvm::ConstantExpr::getLShr(), llvm::ConstantFP::getNaN(), llvm::Constant::getNullValue(), getOpcode(), llvm::Type::getPrimitiveSizeInBits(), llvm::Value::getType(), llvm::ConstantExpr::getXor(), llvm::APInt::isAllOnesValue(), llvm::Instruction::isAssociative(), llvm::Instruction::isBinaryOp(), llvm::Instruction::isCommutative(), llvm::Instruction::isIntDivRem(), llvm::Type::isIntegerTy(), llvm::APInt::isMinSignedValue(), llvm::Constant::isNullValue(), llvm::Type::isVectorTy(), LLVM_FALLTHROUGH, llvm_unreachable, Log2_32(), llvm::APInt::lshr(), llvm::PatternMatch::m_APInt(), llvm::PatternMatch::m_One(), llvm::PatternMatch::m_Undef(), llvm::PatternMatch::m_Zero(), llvm::PatternMatch::match(), max(), llvm::APFloat::mod(), llvm::APFloat::multiply(), pred, llvm::SmallVectorTemplateBase< T >::push_back(), llvm::APFloatBase::rmNearestTiesToEven, llvm::APInt::sdiv(), llvm::APInt::shl(), llvm::APInt::srem(), llvm::APFloat::subtract(), T, llvm::APInt::udiv(), llvm::APInt::ult(), and llvm::APInt::urem().

Referenced by llvm::ConstantExpr::get().

◆ ConstantFoldBinaryOpOperands()

Constant * llvm::ConstantFoldBinaryOpOperands ( unsigned  Opcode,
Constant LHS,
Constant RHS,
const DataLayout DL 
)

Attempt to constant fold a binary operation with the specified operands.

If it fails, it returns a constant expression of the specified operands.

Definition at line 1266 of file ConstantFolding.cpp.

References assert(), C, llvm::ConstantExpr::get(), and llvm::Instruction::isBinaryOp().

Referenced by ConstantFoldCompareInstOperands(), ConstantFoldLoadFromConstPtr(), and foldOrCommuteConstant().

◆ ConstantFoldBinOp()

Optional< APInt > llvm::ConstantFoldBinOp ( unsigned  Opcode,
const unsigned  Op1,
const unsigned  Op2,
const MachineRegisterInfo MRI 
)

◆ ConstantFoldCall()

Constant * llvm::ConstantFoldCall ( ImmutableCallSite  CS,
Function F,
ArrayRef< Constant *>  Operands,
const TargetLibraryInfo TLI = nullptr 
)

◆ ConstantFoldCastInstruction()

Constant * llvm::ConstantFoldCastInstruction ( unsigned  opcode,
Constant V,
Type DestTy 
)
Parameters
opcodeThe opcode of the cast
VThe source constant
DestTyThe destination type

Definition at line 519 of file ConstantFold.cpp.

References llvm::APFloatBase::Bogus(), C, llvm::APFloat::convert(), llvm::APFloat::convertFromAPInt(), llvm::APFloat::convertToInteger(), ExtractConstantBytes(), FoldBitCast(), foldConstantCastPair(), llvm::IntegerType::get(), llvm::ConstantInt::get(), llvm::ConstantFP::get(), llvm::ConstantVector::get(), llvm::ConstantPointerNull::get(), llvm::UndefValue::get(), getBitWidth(), llvm::ConstantExpr::getCast(), llvm::CastInst::getCastOpcode(), llvm::Value::getContext(), llvm::SequentialType::getElementType(), llvm::ConstantExpr::getExtractElement(), llvm::Type::getFltSemantics(), getFoldedAlignOf(), getFoldedOffsetOf(), getFoldedSizeOf(), llvm::ConstantExpr::getMul(), llvm::Constant::getNullValue(), llvm::APInt::getNullValue(), llvm::ConstantExpr::getPointerCast(), llvm::Type::getPrimitiveSizeInBits(), llvm::GEPOperator::getSourceElementType(), llvm::Value::getType(), llvm::Type::getVectorNumElements(), llvm::APFloatBase::IEEEdouble(), llvm::APFloatBase::IEEEhalf(), llvm::APFloatBase::IEEEquad(), llvm::APFloatBase::IEEEsingle(), llvm::tgtok::IntVal, llvm::Type::isDoubleTy(), llvm::Type::isFloatTy(), llvm::Type::isFP128Ty(), llvm::Type::isHalfTy(), llvm::Constant::isNullValue(), llvm::ConstantInt::isOne(), llvm::Type::isPPC_FP128Ty(), llvm::Type::isVectorTy(), llvm::Type::isX86_FP80Ty(), llvm::Type::isX86_MMXTy(), llvm_unreachable, llvm::APFloatBase::opInvalidOp, llvm::APFloatBase::PPCDoubleDouble(), llvm::SmallVectorTemplateBase< T >::push_back(), llvm::APFloatBase::rmNearestTiesToEven, llvm::APFloatBase::rmTowardZero, and llvm::APFloatBase::x87DoubleExtended().

Referenced by getFoldedCast().

◆ ConstantFoldCastOperand()

Constant * llvm::ConstantFoldCastOperand ( unsigned  Opcode,
Constant C,
Type DestTy,
const DataLayout DL 
)

◆ ConstantFoldCompareInstOperands()

Constant * llvm::ConstantFoldCompareInstOperands ( unsigned  Predicate,
Constant LHS,
Constant RHS,
const DataLayout DL,
const TargetLibraryInfo TLI = nullptr 
)

◆ ConstantFoldCompareInstruction()

Constant * llvm::ConstantFoldCompareInstruction ( unsigned short  predicate,
Constant C1,
Constant C2 
)

Definition at line 1697 of file ConstantFold.cpp.

References llvm::CmpInst::BAD_FCMP_PREDICATE, llvm::CmpInst::BAD_ICMP_PREDICATE, llvm::APFloatBase::cmpEqual, llvm::APFloatBase::cmpGreaterThan, llvm::APFloatBase::cmpLessThan, llvm::APFloatBase::cmpUnordered, llvm::APFloat::compare(), evaluateFCmpRelation(), evaluateICmpRelation(), llvm::CmpInst::FCMP_FALSE, llvm::CmpInst::FCMP_OEQ, llvm::CmpInst::FCMP_OGE, llvm::CmpInst::FCMP_OGT, llvm::CmpInst::FCMP_OLE, llvm::CmpInst::FCMP_OLT, llvm::CmpInst::FCMP_ONE, llvm::CmpInst::FCMP_ORD, llvm::CmpInst::FCMP_TRUE, llvm::CmpInst::FCMP_UEQ, llvm::CmpInst::FCMP_UGE, llvm::CmpInst::FCMP_UGT, llvm::CmpInst::FCMP_ULE, llvm::CmpInst::FCMP_ULT, llvm::CmpInst::FCMP_UNE, llvm::CmpInst::FCMP_UNO, llvm::IntegerType::get(), llvm::ConstantInt::get(), llvm::VectorType::get(), llvm::ConstantVector::get(), llvm::UndefValue::get(), llvm::Constant::getAllOnesValue(), llvm::ConstantExpr::getBitCast(), llvm::ConstantExpr::getCast(), llvm::ConstantExpr::getCompare(), llvm::Value::getContext(), llvm::ConstantExpr::getExtractElement(), llvm::ConstantInt::getFalse(), llvm::ConstantExpr::getICmp(), llvm::Type::getInt1Ty(), llvm::ConstantExpr::getNot(), llvm::Constant::getNullValue(), llvm::User::getOperand(), llvm::CmpInst::getSwappedPredicate(), llvm::ConstantInt::getTrue(), llvm::ConstantExpr::getTrunc(), llvm::Value::getType(), llvm::Type::getVectorNumElements(), llvm::ConstantExpr::getXor(), llvm::CmpInst::ICMP_EQ, llvm::CmpInst::ICMP_NE, llvm::CmpInst::ICMP_SGE, llvm::CmpInst::ICMP_SGT, llvm::CmpInst::ICMP_SLE, llvm::CmpInst::ICMP_SLT, llvm::CmpInst::ICMP_UGE, llvm::CmpInst::ICMP_UGT, llvm::CmpInst::ICMP_ULE, llvm::CmpInst::ICMP_ULT, llvm::ICmpInst::isEquality(), llvm::Type::isFloatingPointTy(), llvm::Type::isIntegerTy(), llvm::CmpInst::isIntPredicate(), llvm::Constant::isNullValue(), llvm::CmpInst::isSigned(), llvm::CmpInst::isTrueWhenEqual(), llvm::CmpInst::isUnordered(), llvm::Type::isVectorTy(), llvm_unreachable, NullPointerIsDefined(), llvm::SmallVectorTemplateBase< T >::push_back(), llvm::RISCVFenceField::R, llvm::APInt::sge(), llvm::APInt::sgt(), llvm::APInt::sle(), llvm::APInt::slt(), llvm::APInt::uge(), llvm::APInt::ugt(), llvm::APInt::ule(), llvm::APInt::ult(), and llvm::NVPTX::PTXLdStInstCode::V2.

Referenced by llvm::ConstantExpr::getFCmp(), and llvm::ConstantExpr::getICmp().

◆ ConstantFoldConstant()

Constant * llvm::ConstantFoldConstant ( const Constant C,
const DataLayout DL,
const TargetLibraryInfo TLI = nullptr 
)

◆ ConstantFoldExtractElementInstruction()

Constant * llvm::ConstantFoldExtractElementInstruction ( Constant Val,
Constant Idx 
)

Attempt to constant fold an extractelement instruction with the specified operands and indices.

The constant result is returned if successful; if not, null is returned.

Definition at line 786 of file ConstantFold.cpp.

References llvm::UndefValue::get(), llvm::Constant::getAggregateElement(), llvm::Constant::getNullValue(), llvm::Value::getType(), llvm::Type::getVectorElementType(), llvm::Type::getVectorNumElements(), and llvm::Constant::isNullValue().

Referenced by llvm::ConstantExpr::getExtractElement(), and SimplifyExtractElementInst().

◆ ConstantFoldExtractValueInstruction()

Constant * llvm::ConstantFoldExtractValueInstruction ( Constant Agg,
ArrayRef< unsigned Idxs 
)

Attempt to constant fold an extractvalue instruction with the specified operands and indices.

The constant result is returned if successful; if not, null is returned.

Definition at line 876 of file ConstantFold.cpp.

References C, llvm::ArrayRef< T >::empty(), llvm::Constant::getAggregateElement(), and llvm::ArrayRef< T >::slice().

Referenced by llvm::ConstantExpr::getExtractValue(), and SimplifyExtractValueInst().

◆ ConstantFoldGetElementPtr()

Constant * llvm::ConstantFoldGetElementPtr ( Type Ty,
Constant C,
bool  InBounds,
Optional< unsigned InRangeIndex,
ArrayRef< Value *>  Idxs 
)

Definition at line 2068 of file ConstantFold.cpp.

References llvm::MCID::Add, llvm::SmallVectorImpl< T >::append(), assert(), llvm::ArrayRef< T >::begin(), C, llvm::ArrayRef< T >::data(), dyn_cast(), E, llvm::SmallVectorBase::empty(), llvm::ArrayRef< T >::empty(), llvm::ArrayRef< T >::end(), gep_type_begin(), gep_type_end(), llvm::ConstantInt::get(), llvm::VectorType::get(), llvm::PointerType::get(), llvm::ConstantExpr::get(), llvm::UndefValue::get(), llvm::ConstantExpr::getAdd(), llvm::PointerType::getAddressSpace(), llvm::Type::getContext(), llvm::Value::getContext(), llvm::SequentialType::getElementType(), llvm::PointerType::getElementType(), llvm::GetElementPtrInst::getGEPReturnType(), llvm::ConstantExpr::getGetElementPtr(), llvm::GetElementPtrInst::getIndexedType(), llvm::Type::getIntegerBitWidth(), llvm::Type::getIntNTy(), llvm::Constant::getNullValue(), llvm::Type::getScalarSizeInBits(), llvm::Type::getScalarType(), llvm::ConstantExpr::getSDiv(), llvm::generic_gep_type_iterator< ItTy >::getSequentialNumElements(), llvm::ConstantExpr::getSExt(), llvm::ConstantExpr::getSExtOrBitCast(), llvm::ConstantVector::getSplat(), llvm::ConstantDataVector::getSplat(), llvm::ConstantExpr::getSRem(), getType(), llvm::Value::getType(), llvm::Type::getVectorNumElements(), I, InRange(), llvm::generic_gep_type_iterator< ItTy >::isBoundedSequential(), isInBoundsIndices(), isIndexInRangeOfArrayType(), llvm::Type::isIntOrIntVectorTy(), llvm::Constant::isNullValue(), llvm::generic_gep_type_iterator< ItTy >::isSequential(), llvm::Type::isVectorTy(), makeArrayRef(), max(), None, llvm::SmallVectorTemplateBase< T >::push_back(), llvm::SmallVectorImpl< T >::reserve(), llvm::SmallVectorImpl< T >::resize(), llvm::ArrayRef< T >::size(), and Unknown.

Referenced by llvm::ConstantExpr::getGetElementPtr().

◆ ConstantFoldInsertElementInstruction()

Constant * llvm::ConstantFoldInsertElementInstruction ( Constant Val,
Constant Elt,
Constant Idx 
)

◆ ConstantFoldInsertValueInstruction()

Constant * llvm::ConstantFoldInsertValueInstruction ( Constant Agg,
Constant Val,
ArrayRef< unsigned Idxs 
)

ConstantFoldInsertValueInstruction - Attempt to constant fold an insertvalue instruction with the specified operands and indices.

The constant result is returned if successful; if not, null is returned.

Definition at line 888 of file ConstantFold.cpp.

References C, llvm::ArrayRef< T >::empty(), llvm::ConstantArray::get(), llvm::ConstantStruct::get(), llvm::ConstantVector::get(), llvm::Constant::getAggregateElement(), llvm::Value::getType(), llvm::SmallVectorTemplateBase< T >::push_back(), llvm::ArrayRef< T >::slice(), and llvm::ARM_MB::ST.

Referenced by llvm::ConstantExpr::getInsertValue(), and SimplifyInsertValueInst().

◆ ConstantFoldInstOperands()

Constant * llvm::ConstantFoldInstOperands ( Instruction I,
ArrayRef< Constant *>  Ops,
const DataLayout DL,
const TargetLibraryInfo TLI = nullptr 
)

ConstantFoldInstOperands - Attempt to constant fold an instruction with the specified operands.

If successful, the constant result is returned, if not, null is returned. Note that this function can fail when attempting to fold instructions like loads and stores, which have no constant expression form.

Definition at line 1172 of file ConstantFolding.cpp.

References llvm::Instruction::getOpcode().

Referenced by alwaysAvailable(), BuildConstantFromSCEV(), ConstantFold(), ConstantFoldInstruction(), EvaluateExpression(), and SimplifyWithOpReplaced().

◆ ConstantFoldInstruction()

Constant * llvm::ConstantFoldInstruction ( Instruction I,
const DataLayout DL,
const TargetLibraryInfo TLI = nullptr 
)

ConstantFoldInstruction - Try to constant fold the specified instruction.

If successful, the constant result is returned, if not, null is returned. Note that this fails if not all of the operands are constant. Otherwise, this function can only fail when attempting to fold instructions like loads and stores, which have no constant expression form.

Definition at line 1095 of file ConstantFolding.cpp.

References all_of(), C, ConstantFoldCompareInstOperands(), ConstantFoldInstOperands(), dyn_cast(), llvm::UndefValue::get(), llvm::ConstantExpr::getExtractValue(), llvm::ConstantExpr::getInsertValue(), llvm::User::operands(), and llvm::SmallVectorTemplateBase< T >::push_back().

Referenced by AddReachableCodeToWorklist(), CleanupConstantGlobalUsers(), ConstantPropUsersOf(), createConstantPropagationPass(), hoistRegion(), llvm::JumpThreadingPass::ProcessBlock(), llvm::InstCombiner::run(), and SimplifyInstruction().

◆ ConstantFoldLoadFromConstPtr()

Constant * llvm::ConstantFoldLoadFromConstPtr ( Constant C,
Type Ty,
const DataLayout DL 
)

ConstantFoldLoadFromConstPtr - Return the value that a load from C would produce if it is constant and determinable.

If this is not determinable, return null.

Definition at line 603 of file ConstantFolding.cpp.

References assert(), llvm::ArrayRef< T >::back(), llvm::StringRef::bytes(), C, llvm::MCID::Call, canConstantFoldCallTo(), computeKnownBits(), ConstantFoldBinaryOpOperands(), ConstantFoldCall(), ConstantFoldCastOperand(), ConstantFoldCompareInstOperands(), ConstantFoldConstant(), ConstantFoldLoadThroughGEPConstantExpr(), llvm::ArrayRef< T >::data(), dyn_cast(), llvm::SmallVectorBase::empty(), llvm::StringRef::empty(), llvm::DenseMapBase< SmallDenseMap< KeyT, ValueT, InlineBuckets, KeyInfoT, BucketT >, KeyT, ValueT, KeyInfoT, BucketT >::end(), F(), llvm::DenseMapBase< SmallDenseMap< KeyT, ValueT, InlineBuckets, KeyInfoT, BucketT >, KeyT, ValueT, KeyInfoT, BucketT >::find(), FoldBitCast(), GEP, llvm::ConstantInt::get(), llvm::ConstantVector::get(), llvm::UndefValue::get(), llvm::ConstantExpr::getBitCast(), llvm::ConstantExpr::getCast(), llvm::CastInst::getCastOpcode(), llvm::KnownBits::getConstant(), getConstantStringInfo(), llvm::Type::getContext(), llvm::StructLayout::getElementContainingOffset(), llvm::ConstantExpr::getExtractElement(), llvm::ConstantExpr::getGetElementPtr(), llvm::DataLayout::getIndexedOffsetInType(), llvm::GetElementPtrInst::getIndexedType(), llvm::GEPOperator::getInRangeIndex(), llvm::ConstantExpr::getInsertElement(), llvm::Type::getInt32Ty(), llvm::DataLayout::getIntPtrType(), llvm::ConstantExpr::getIntToPtr(), llvm::Constant::getNullValue(), llvm::User::getOperand(), llvm::ConstantExpr::getPointerCast(), llvm::Type::getPointerElementType(), llvm::Type::getPointerTo(), llvm::Type::getPrimitiveSizeInBits(), llvm::ConstantExpr::getPtrToInt(), llvm::GEPOperator::getResultElementType(), llvm::Type::getScalarType(), llvm::ConstantExpr::getSelect(), llvm::ConstantExpr::getShuffleVector(), llvm::GEPOperator::getSourceElementType(), llvm::DataLayout::getStructLayout(), llvm::ConstantExpr::getSub(), getType(), llvm::Value::getType(), llvm::DataLayout::getTypeAllocSize(), llvm::DataLayout::getTypeSizeInBits(), GetUnderlyingObject(), llvm::APInt::getZExtValue(), I, llvm::DenseMapBase< SmallDenseMap< KeyT, ValueT, InlineBuckets, KeyInfoT, BucketT >, KeyT, ValueT, KeyInfoT, BucketT >::insert(), llvm::Instruction::isBinaryOp(), llvm::Instruction::isCast(), llvm::KnownBits::isConstant(), IsConstantOffsetFromGlobal(), llvm::Type::isFloatingPointTy(), llvm::GEPOperator::isInBounds(), llvm::Type::isIntegerTy(), llvm::DataLayout::isLittleEndian(), llvm::APInt::isNegative(), llvm::DataLayout::isNonIntegralPointerType(), llvm::APInt::isNullValue(), llvm::Type::isPointerTy(), llvm::Type::isSized(), llvm::Type::isStructTy(), llvm::LoadInst::isVolatile(), llvm_unreachable, makeArrayRef(), llvm::KnownBits::One, llvm::User::op_begin(), llvm::User::op_end(), llvm::User::operands(), llvm::SmallVectorTemplateBase< T >::push_back(), reverse(), llvm::APInt::sdiv_ov(), llvm::MCID::Select, llvm::SmallVectorBase::size(), llvm::StringRef::size(), llvm::ArrayRef< T >::size(), llvm::ArrayRef< T >::slice(), llvm::Constant::stripPointerCasts(), llvm::tgtok::StrVal, llvm::APInt::uge(), llvm::KnownBits::Zero, and llvm::APInt::zextOrTrunc().

Referenced by llvm::VNCoercion::analyzeLoadFromClobberingMemInst(), BuildConstantFromSCEV(), canConstantFoldCallTo(), canTransformToMemCmp(), ConstantFoldLoadThroughBitcast(), EvaluateExpression(), getMemCmpLoad(), llvm::VNCoercion::getMemInstValueForLoadHelper(), SimplifyRelativeLoad(), and SimplifyWithOpReplaced().

◆ ConstantFoldLoadThroughBitcast()

Constant * llvm::ConstantFoldLoadThroughBitcast ( Constant C,
Type DestTy,
const DataLayout DL 
)

ConstantFoldLoadThroughBitcast - try to cast constant to destination type returning null if unsuccessful.

Can cast pointer to pointer or pointer to integer and vice versa if their sizes are equal.

Definition at line 323 of file ConstantFolding.cpp.

References assert(), llvm::CastInst::castIsValid(), ConstantFoldLoadFromConstPtr(), dyn_cast(), FoldBitCast(), llvm::ConstantInt::get(), llvm::UndefValue::get(), llvm::Constant::getAggregateElement(), llvm::ConstantExpr::getCast(), llvm::Value::getContext(), llvm::StructLayout::getElementContainingOffset(), llvm::StructLayout::getElementOffset(), llvm::Type::getInt16Ty(), llvm::Type::getInt32Ty(), llvm::Type::getInt64Ty(), llvm::Type::getIntNTy(), llvm::DataLayout::getIntPtrType(), llvm::User::getOperand(), llvm::Type::getPointerElementType(), llvm::Type::getPointerTo(), llvm::Type::getSequentialElementType(), llvm::APInt::getSExtValue(), llvm::DataLayout::getStructLayout(), llvm::Value::getType(), llvm::DataLayout::getTypeAllocSize(), llvm::DataLayout::getTypeAllocSizeInBits(), llvm::DataLayout::getTypeSizeInBits(), llvm::Type::getVectorNumElements(), llvm::Type::isAggregateType(), IsConstantOffsetFromGlobal(), llvm::Type::isDoubleTy(), llvm::Type::isFloatTy(), llvm::Type::isHalfTy(), llvm::Type::isIntegerTy(), llvm::DataLayout::isLittleEndian(), llvm::Type::isPointerTy(), llvm::Type::isStructTy(), and llvm::Type::isVectorTy().

Referenced by llvm::Evaluator::castCallResultIfNeeded(), llvm::Evaluator::EvaluateBlock(), llvm::Evaluator::getCalleeWithFormalArgs(), llvm::Evaluator::getFormalParams(), and getInitializer().

◆ ConstantFoldLoadThroughGEPConstantExpr()

Constant * llvm::ConstantFoldLoadThroughGEPConstantExpr ( Constant C,
ConstantExpr CE 
)

ConstantFoldLoadThroughGEPConstantExpr - Given a constant and a getelementptr constantexpr, return the constant value being addressed by the constant expression, or null if something is funny and we can't decide.

Definition at line 1338 of file ConstantFolding.cpp.

References C, llvm::Constant::getAggregateElement(), llvm::User::getNumOperands(), and llvm::User::getOperand().

Referenced by CleanupConstantGlobalUsers(), ConstantFoldLoadFromConstPtr(), getInitializer(), and isSimpleEnoughPointerToCommit().

◆ ConstantFoldLoadThroughGEPIndices()

Constant * llvm::ConstantFoldLoadThroughGEPIndices ( Constant C,
ArrayRef< Constant *>  Indices 
)

ConstantFoldLoadThroughGEPIndices - Given a constant and getelementptr indices (with an implied zero pointer index that is not in the list), return the constant value being addressed by a virtual load, or null if something is funny and we can't decide.

Definition at line 1354 of file ConstantFolding.cpp.

References C, and llvm::Constant::getAggregateElement().

Referenced by EvaluateConstantChrecAtConstant().

◆ ConstantFoldSelectInstruction()

Constant * llvm::ConstantFoldSelectInstruction ( Constant Cond,
Constant V1,
Constant V2 
)

◆ ConstantFoldShuffleVectorInstruction()

Constant * llvm::ConstantFoldShuffleVectorInstruction ( Constant V1,
Constant V2,
Constant Mask 
)

◆ ConstantFoldTerminator()

bool llvm::ConstantFoldTerminator ( BasicBlock BB,
bool  DeleteDeadConditions = false,
const TargetLibraryInfo TLI = nullptr,
DomTreeUpdater DTU = nullptr 
)

If a terminator instruction is predicated on a constant value, convert it into an unconditional branch to the constant destination.

ConstantFoldTerminator - If a terminator instruction is predicated on a constant value, convert it into an unconditional branch to the constant destination.

This is a nontrivial operation because the successors of this basic block must have their PHI nodes updated. Also calls RecursivelyDeleteTriviallyDeadInstructions() on any branch/switch conditions and indirectbr addresses this might make dead if DeleteDeadConditions is true.

Definition at line 106 of file Local.cpp.

References Address, llvm::DomTreeUpdater::applyUpdates(), assert(), llvm::SmallVectorTemplateCommon< T >::back(), llvm::IRBuilder< T, Inserter >::CreateBr(), llvm::IRBuilder< T, Inserter >::CreateCondBr(), llvm::IRBuilder< T, Inserter >::CreateICmpEQ(), llvm::DominatorTreeBase< BasicBlock, false >::Delete, llvm::DomTreeUpdater::deleteEdgeRelaxed(), dyn_cast(), llvm::Instruction::eraseFromParent(), llvm::BasicBlock::getContext(), llvm::MDNode::getNumOperands(), llvm::MDNode::getOperand(), llvm::BasicBlock::getParent(), llvm::BasicBlock::getTerminator(), llvm::ConstantInt::getValue(), llvm::APInt::getZExtValue(), llvm::LLVMContext::MD_make_implicit, llvm::LLVMContext::MD_prof, llvm::SmallVectorTemplateBase< T >::pop_back(), llvm::SmallVectorTemplateBase< T >::push_back(), RecursivelyDeleteTriviallyDeadInstructions(), llvm::BasicBlock::removePredecessor(), llvm::Instruction::setMetadata(), SI, successors(), and std::swap().

Referenced by CloneAndPruneIntoFromInst(), createCodeGenPreparePass(), markAliveBlocks(), llvm::JumpThreadingPass::ProcessBlock(), processSwitch(), removeUndefIntroducingPredecessor(), runIPSCCP(), and llvm::SimplifyCFGOptions::setAssumptionCache().

◆ constrainOperandRegClass()

unsigned llvm::constrainOperandRegClass ( const MachineFunction MF,
const TargetRegisterInfo TRI,
MachineRegisterInfo MRI,
const TargetInstrInfo TII,
const RegisterBankInfo RBI,
MachineInstr InsertPt,
const MCInstrDesc II,
const MachineOperand RegMO,
unsigned  OpIdx 
)

Try to constrain Reg so that it is usable by argument OpIdx of the provided MCInstrDesc II.

If this fails, create a new virtual register in the correct class and insert a COPY before InsertPt. This is equivalent to constrainRegToClass() with RegClass obtained from the MCInstrDesc. The debug location of InsertPt is used for the new copy.

Returns
The virtual register constrained to the right register class.

Definition at line 47 of file Utils.cpp.

References assert(), constrainRegToClass(), llvm::TargetRegisterInfo::getConstrainedRegClassForOperand(), llvm::MCInstrDesc::getOpcode(), llvm::MachineOperand::getReg(), llvm::TargetInstrInfo::getRegClass(), llvm::TargetRegisterClass::isAllocatable(), isTargetSpecificOpcode(), llvm::MachineOperand::isUse(), llvm::TargetRegisterInfo::isVirtualRegister(), and Reg.

Referenced by CC_MipsO32_FP64(), computeBytesPoppedByCalleeForSRet(), constrainSelectedInstRegOperands(), getCompareCC(), getComparePred(), getX86SSEConditionCode(), isMulPowOf2(), isSExtLoad(), llvm::X86CallLowering::lowerCall(), llvm::ARMCallLowering::lowerCall(), and llvm::AArch64CallLowering::lowerCall().

◆ constrainRegToClass()

unsigned llvm::constrainRegToClass ( MachineRegisterInfo MRI,
const TargetInstrInfo TII,
const RegisterBankInfo RBI,
MachineInstr InsertPt,
unsigned  Reg,
const TargetRegisterClass RegClass 
)

Try to constrain Reg to the specified register class.

If this fails, create a new virtual register in the correct class and insert a COPY before InsertPt. The debug location of InsertPt is used for the new copy.

Returns
The virtual register constrained to the right register class.

Definition at line 31 of file Utils.cpp.

References BuildMI(), llvm::RegisterBankInfo::constrainGenericRegister(), llvm::MachineRegisterInfo::createVirtualRegister(), llvm::MCInstrInfo::get(), llvm::MachineInstr::getDebugLoc(), llvm::MachineInstr::getParent(), and Reg.

Referenced by constrainOperandRegClass(), and llvm::InstructionSelector::constrainOperandRegToRegClass().

◆ constrainSelectedInstRegOperands()

bool llvm::constrainSelectedInstRegOperands ( MachineInstr I,
const TargetInstrInfo TII,
const TargetRegisterInfo TRI,
const RegisterBankInfo RBI 
)

◆ consumeError()

void llvm::consumeError ( Error  Err)
inline

Consume a Error without doing anything.

This method should be used only where an error can be considered a reasonable and expected return value.

Uses of this method are potentially indicative of design problems: If it's legitimate to do nothing while processing an "error", the error-producer might be more clearly refactored to return an Optional<T>.

Definition at line 982 of file Error.h.

Referenced by llvm::DWARFDie::addressRangeContainsAddress(), llvm::DWARFDie::collectChildrenAddressRanges(), collectPGOFuncNameStrings(), llvm::codeview::computeTypeName(), llvm::orc::rpc::detail::ResultTraits< RetT >::consumeAbandoned(), llvm::object::SectionRef::containsSymbol(), llvm::coverage::BinaryCoverageReader::create(), llvm::sys::fs::TempFile::create(), llvm::pdb::SymbolCache::createGlobalsEnumerator(), createOnDiskBuffer(), llvm::pdb::SymbolCache::createTypeEnumerator(), llvm::coverage::CounterMappingContext::dump(), llvm::DWARFDebugNames::dump(), error(), llvm::coverage::CounterMappingContext::evaluate(), llvm::codeview::FieldListDeserializer::FieldListDeserializer(), llvm::MCJIT::findSymbol(), llvm::pdb::SymbolCache::findSymbolByTypeIndex(), llvm::symbolize::LLVMSymbolizer::flush(), getAccelTable(), llvm::pdb::NativeExeSymbol::getAge(), getDbiStreamPtr(), llvm::DWARFContext::getDWOContext(), llvm::codeview::LazyRandomTypeCollection::getFirst(), llvm::pdb::NativeExeSymbol::getGuid(), llvm::msf::MappedBlockStream::getLength(), llvm::codeview::LazyRandomTypeCollection::getNext(), llvm::object::Archive::Child::getNext(), llvm::object::ELFObjectFile< ELFT >::getSymbolFlags(), getSymbolKindName(), getSymbols(), llvm::IndexedInstrProfReader::getSymtab(), llvm::codeview::LazyRandomTypeCollection::getTypeName(), getUdtOptions(), llvm::DWARFVerifier::handleDebugInfo(), llvm::pdb::NativeExeSymbol::hasCTypes(), llvm::pdb::PDBFile::hasPDBGlobalsStream(), llvm::pdb::PDBFile::hasPDBPublicsStream(), llvm::pdb::PDBFile::hasPDBStringTable(), llvm::pdb::NativeExeSymbol::hasPrivateSymbols(), isWeak(), LLVMCreateObjectFile(), llvm::xray::loadInstrumentationMap(), llvm::lto::localCache(), llvm::MSVCPExpected< T >::MSVCPExpected(), llvm::orc::SimpleCompiler::operator()(), llvm::VarStreamArrayIterator< ValueType, Extractor >::operator+=(), llvm::pdb::DbiModuleSourceFilesIterator::operator-=(), llvm::FixedStreamArray< PSHashRecord >::operator[](), llvm::object::WindowsResourceParser::parse(), llvm::pdb::PDBFile::parseFileHeaders(), llvm::BinaryStreamReader::peek(), llvm::RuntimeDyldELF::processRelocationRef(), readPGOFuncNameStrings(), llvm::codeview::StringsAndChecksumsRef::setChecksums(), llvm::orc::OrcMCJITReplacement::setProcessAllSections(), llvm::codeview::StringsAndChecksumsRef::StringsAndChecksumsRef(), llvm::object::SymbolicFile::SymbolicFile(), llvm::codeview::LazyRandomTypeCollection::tryGetType(), llvm::DWARFUnit::updateAddressDieMap(), llvm::VarStreamArrayIterator< ValueType, Extractor >::VarStreamArrayIterator(), llvm::codeview::SymbolSerializer::writeOneSymbol(), llvm::detail::ErrorAdapter::~ErrorAdapter(), llvm::codeview::FieldListDeserializer::~FieldListDeserializer(), and llvm::orc::LegacyCompileOnDemandLayer< BaseLayerT, CompileCallbackMgrT, IndirectStubsMgrT >::~LegacyCompileOnDemandLayer().

◆ consumeSignedInteger()

bool llvm::consumeSignedInteger ( StringRef Str,
unsigned  Radix,
long long &  Result 
)

◆ consumeUnsignedInteger()

bool llvm::consumeUnsignedInteger ( StringRef Str,
unsigned  Radix,
unsigned long long &  Result 
)

◆ containsIrreducibleCFG()

template<class NodeT , class RPOTraversalT , class LoopInfoT , class GT = GraphTraits<NodeT>>
bool llvm::containsIrreducibleCFG ( RPOTraversalT &  RPOTraversal,
const LoopInfoT &  LI 
)

Return true if the control flow in RPOTraversal is irreducible.

This is a generic implementation to detect CFG irreducibility based on loop info analysis. It can be used for any kind of CFG (Loop, MachineLoop, Function, MachineFunction, etc.) by providing an RPO traversal (RPOTraversal) and the loop info analysis (LI) of the CFG. This utility function is only recommended when loop info analysis is available. If loop info analysis isn't available, please, don't compute it explicitly for this purpose. There are more efficient ways to detect CFG irreducibility that don't require recomputing loop info analysis (e.g., T1/T2 or Tarjan's algorithm).

Requirements: 1) GraphTraits must be implemented for NodeT type. It is used to access NodeT successors. target CFG with begin()/end() iterator interfaces. 3) LI must be a valid LoopInfoBase that contains up-to-date loop analysis information of the CFG.

This algorithm uses the information about reducible loop back-edges already computed in LI. When a back-edge is found during the RPO traversal, the algorithm checks whether the back-edge is one of the reducible back-edges in loop info. If it isn't, the CFG is irreducible. For example, for the CFG below (canonical irreducible graph) loop info won't contain any loop, so the algorithm will return that the CFG is irreducible when checking the B <- -> C back-edge.

(A->B, A->C, B->C, C->B, C->D) A / \ B<- ->C | D

Check whether the edge (Src, Dst) is a reducible loop backedge according to LI. I.e., check if there exists a loop that contains Src and where Dst is the loop header.

Definition at line 129 of file CFG.h.

Referenced by llvm::LegacyDivergenceAnalysis::getAnalysisUsage().

◆ convertAddSubFlagsOpcode()

unsigned llvm::convertAddSubFlagsOpcode ( unsigned  OldOpc)

Map pseudo instructions that imply an 'S' bit onto real opcodes.

Whether the instruction is encoded with an 'S' bit is determined by the optional CPSR def operand.

Definition at line 2216 of file ARMBaseInstrInfo.cpp.

References array_lengthof(), and AddSubFlagsOpcodePair::MachineOpc.

Referenced by llvm::ARMAsmPrinter::EmitInstruction(), and isPushOpcode().

◆ ConvertCodePointToUTF8()

bool llvm::ConvertCodePointToUTF8 ( unsigned  Source,
char *&  ResultPtr 
)

Convert an Unicode code point to UTF8 sequence.

Parameters
Sourcea Unicode code point.
[in,out]ResultPtrpointer to the output buffer, needs to be at least UNI_MAX_UTF8_BYTES_PER_CODE_POINT bytes. On success ResultPtr is updated one past end of the converted sequence.
Returns
true on success.

Definition at line 66 of file ConvertUTFWrapper.cpp.

References conversionOK, ConvertUTF32toUTF8(), llvm::Sched::Source, and strictConversion.

◆ ConvertCostTableLookup()

const TypeConversionCostTblEntry* llvm::ConvertCostTableLookup ( ArrayRef< TypeConversionCostTblEntry Tbl,
int  ISD,
MVT  Dst,
MVT  Src 
)
inline

◆ ConvertDebugDeclareToDebugValue() [1/3]

void llvm::ConvertDebugDeclareToDebugValue ( DbgVariableIntrinsic DII,
StoreInst SI,
DIBuilder Builder 
)

◆ ConvertDebugDeclareToDebugValue() [2/3]

void llvm::ConvertDebugDeclareToDebugValue ( DbgVariableIntrinsic DII,
LoadInst LI,
DIBuilder Builder 
)

Inserts a llvm.dbg.value intrinsic before a load of an alloca'd value that has an associated llvm.dbg.declare or llvm.dbg.addr intrinsic.

Definition at line 1307 of file Local.cpp.

References assert(), dbgs(), llvm::Instruction::getDebugLoc(), llvm::DbgVariableIntrinsic::getExpression(), llvm::Value::getType(), llvm::DbgVariableIntrinsic::getVariable(), llvm::Instruction::insertAfter(), LdStHasDebugValue(), LLVM_DEBUG, and valueCoversEntireFragment().

◆ ConvertDebugDeclareToDebugValue() [3/3]

void llvm::ConvertDebugDeclareToDebugValue ( DbgVariableIntrinsic DII,
PHINode APN,
DIBuilder Builder 
)

◆ convertPointerToIntegerType()

static Type* llvm::convertPointerToIntegerType ( const DataLayout DL,
Type Ty 
)
static

◆ convertToDeclaration()

bool llvm::convertToDeclaration ( GlobalValue GV)

◆ ConvertUTF16toUTF32()

ConversionResult llvm::ConvertUTF16toUTF32 ( const UTF16 **  sourceStart,
const UTF16 sourceEnd,
UTF32 **  targetStart,
UTF32 targetEnd,
ConversionFlags  flags 
)

◆ ConvertUTF16toUTF8()

ConversionResult llvm::ConvertUTF16toUTF8 ( const UTF16 **  sourceStart,
const UTF16 sourceEnd,
UTF8 **  targetStart,
UTF8 targetEnd,
ConversionFlags  flags 
)

◆ convertUTF16ToUTF8String() [1/2]

bool llvm::convertUTF16ToUTF8String ( ArrayRef< char SrcBytes,
std::string &  Out 
)

Converts a stream of raw bytes assumed to be UTF16 into a UTF8 std::string.

Parameters
[in]SrcBytesA buffer of what is assumed to be UTF-16 encoded text.
[out]OutConverted UTF-8 is stored here on success.
Returns
true on success

Definition at line 87 of file ConvertUTFWrapper.cpp.

References assert(), llvm::ArrayRef< T >::begin(), conversionOK, ConvertUTF16toUTF8(), E, llvm::ArrayRef< T >::empty(), llvm::ArrayRef< T >::end(), I, llvm::ArrayRef< T >::size(), strictConversion, llvm::sys::SwapByteOrder_16(), targetExhausted, UNI_MAX_UTF8_BYTES_PER_CODE_POINT, UNI_UTF16_BYTE_ORDER_MARK_NATIVE, and UNI_UTF16_BYTE_ORDER_MARK_SWAPPED.

Referenced by convertUTF16ToUTF8String(), convertUTF8Sequence(), ExpandResponseFile(), llvm::pdb::DIARawSymbol::getUndecoratedNameEx(), and invokeBstrMethod().

◆ convertUTF16ToUTF8String() [2/2]

bool llvm::convertUTF16ToUTF8String ( ArrayRef< UTF16 Src,
std::string &  Out 
)

Converts a UTF16 string into a UTF8 std::string.

Parameters
[in]SrcA buffer of UTF-16 encoded text.
[out]OutConverted UTF-8 is stored here on success.
Returns
true on success

Definition at line 136 of file ConvertUTFWrapper.cpp.

References convertUTF16ToUTF8String(), llvm::ArrayRef< T >::data(), and llvm::ArrayRef< T >::size().

◆ ConvertUTF32toUTF16()

ConversionResult llvm::ConvertUTF32toUTF16 ( const UTF32 **  sourceStart,
const UTF32 sourceEnd,
UTF16 **  targetStart,
UTF16 targetEnd,
ConversionFlags  flags 
)

◆ ConvertUTF32toUTF8()

ConversionResult llvm::ConvertUTF32toUTF8 ( const UTF32 **  sourceStart,
const UTF32 sourceEnd,
UTF8 **  targetStart,
UTF8 targetEnd,
ConversionFlags  flags 
)

◆ convertUTF8Sequence()

ConversionResult llvm::convertUTF8Sequence ( const UTF8 **  source,
const UTF8 sourceEnd,
UTF32 target,
ConversionFlags  flags 
)
inline

Convert the first UTF8 sequence in the given source buffer to a UTF32 code point.

Parameters
[in,out]sourceA pointer to the source buffer. If the conversion succeeds, this pointer will be updated to point to the byte just past the end of the converted sequence.
sourceEndA pointer just past the end of the source buffer.
[out]targetThe converted code
flagsWhether the conversion is strict or lenient.
Returns
conversionOK on success
See also
ConvertUTF8toUTF32

Definition at line 246 of file ConvertUTF.h.

References convertUTF16ToUTF8String(), convertUTF8ToUTF16String(), ConvertUTF8toUTF32(), getNumBytesForUTF8(), hasUTF16ByteOrderMark(), size(), and sourceExhausted.

◆ ConvertUTF8toUTF16()

ConversionResult llvm::ConvertUTF8toUTF16 ( const UTF8 **  sourceStart,
const UTF8 sourceEnd,
UTF16 **  targetStart,
UTF16 targetEnd,
ConversionFlags  flags 
)

◆ convertUTF8ToUTF16String()

bool llvm::convertUTF8ToUTF16String ( StringRef  SrcUTF8,
SmallVectorImpl< UTF16 > &  DstUTF16 
)

◆ ConvertUTF8toUTF32()

ConversionResult llvm::ConvertUTF8toUTF32 ( const UTF8 **  sourceStart,
const UTF8 sourceEnd,
UTF32 **  targetStart,
UTF32 targetEnd,
ConversionFlags  flags 
)

Convert a partial UTF8 sequence to UTF32.

If the sequence ends in an incomplete code unit sequence, returns sourceIllegal.

Definition at line 711 of file ConvertUTF.cpp.

References ConvertUTF8toUTF32Impl(), and ConvertUTF_RESTORE_WARNINGS.

Referenced by chopOneUTF32(), convertUTF8Sequence(), ConvertUTF8toWide(), and llvm::json::fixUTF8().

◆ ConvertUTF8toUTF32Impl()

static ConversionResult llvm::ConvertUTF8toUTF32Impl ( const UTF8 **  sourceStart,
const UTF8 sourceEnd,
UTF32 **  targetStart,
UTF32 targetEnd,
ConversionFlags  flags,
Boolean  InputIsPartial 
)
static

◆ ConvertUTF8toUTF32Partial()

ConversionResult llvm::ConvertUTF8toUTF32Partial ( const UTF8 **  sourceStart,
const UTF8 sourceEnd,
UTF32 **  targetStart,
UTF32 targetEnd,
ConversionFlags  flags 
)

Convert a partial UTF8 sequence to UTF32.

If the sequence ends in an incomplete code unit sequence, returns sourceExhausted.

Definition at line 702 of file ConvertUTF.cpp.

References ConvertUTF8toUTF32Impl().

◆ ConvertUTF8toWide() [1/3]

bool llvm::ConvertUTF8toWide ( unsigned  WideCharWidth,
llvm::StringRef  Source,
char *&  ResultPtr,
const UTF8 *&  ErrorPtr 
)

Convert an UTF8 StringRef to UTF8, UTF16, or UTF32 depending on WideCharWidth.

The converted data is written to ResultPtr, which needs to point to at least WideCharWidth * (Source.Size() + 1) bytes. On success, ResultPtr will point one after the end of the copied string. On failure, ResultPtr will not be changed, and ErrorPtr will be set to the location of the first character which could not be converted.

Returns
true on success.

Definition at line 20 of file ConvertUTFWrapper.cpp.

References assert(), llvm::StringRef::begin(), conversionOK, ConvertUTF8toUTF16(), ConvertUTF8toUTF32(), llvm::StringRef::data(), llvm::StringRef::end(), isLegalUTF8String(), llvm::Intrinsic::memcpy, llvm::StringRef::size(), sourceIllegal, strictConversion, and targetExhausted.

Referenced by ConvertUTF8toWide(), and ConvertUTF8toWideInternal().

◆ ConvertUTF8toWide() [2/3]

bool llvm::ConvertUTF8toWide ( llvm::StringRef  Source,
std::wstring &  Result 
)

Converts a UTF-8 StringRef to a std::wstring.

Returns
true on success.

Definition at line 202 of file ConvertUTFWrapper.cpp.

References ConvertUTF8toWideInternal().

◆ ConvertUTF8toWide() [3/3]

bool llvm::ConvertUTF8toWide ( const char Source,
std::wstring &  Result 
)

Converts a UTF-8 C-string to a std::wstring.

Returns
true on success.

Definition at line 206 of file ConvertUTFWrapper.cpp.

References ConvertUTF8toWide().

◆ ConvertUTF8toWideInternal()

template<typename TResult >
static bool llvm::ConvertUTF8toWideInternal ( llvm::StringRef  Source,
TResult &  Result 
)
inlinestatic

◆ convertWideToUTF8()

bool llvm::convertWideToUTF8 ( const std::wstring &  Source,
std::string &  Result 
)

Converts a std::wstring to a UTF-8 encoded std::string.

Returns
true on success.

Definition at line 214 of file ConvertUTFWrapper.cpp.

◆ copy()

template<typename R , typename OutputIt >
OutputIt llvm::copy ( R &&  Range,
OutputIt  Out 
)

Definition at line 1238 of file STLExtras.h.

References adl_begin(), and adl_end().

Referenced by llvm::PBQP::RegAlloc::AllowedRegVector::AllowedRegVector(), alwaysAvailable(), llvm::SelectInst::areInvalidOperands(), llvm::AttributeListImpl::AttributeListImpl(), buildFixItLine(), CHRScopeSorter(), computeValueLLTs(), llvm::ConstantAggregate::ConstantAggregate(), llvm::detail::IEEEFloat::convertFromSignExtendedInteger(), llvm::StringRef::copy(), llvm::SmallPtrSetImplBase::CopyFrom(), llvm::GlobalObject::copyMetadata(), llvm::MachineFunction::createExternalSymbolName(), llvm::CallInst::CreateFree(), llvm::DiagnosticInfoIROptimization::DiagnosticInfoIROptimization(), llvm::GVNExpression::Expression::dump(), llvm::AttributeSet::dump(), llvm::FenceInst::FenceInst(), llvm::ExecutionEngine::getGlobalValueAtAddress(), llvm::MachineTraceMetrics::Ensemble::getLoopFor(), llvm::SelectionDAG::getVectorShuffle(), llvm::SelectionDAG::getVTList(), llvm::User::growHungoffUses(), llvm::SmallVectorImpl< std::pair< llvm::RelocationValueRef, llvm::RelocationEntry > >::insert(), llvm::SparseBitVector< ElementSize >::intersectWithComplement(), isHorizontalBinOp(), LLVMGetRelocationTypeName(), llvm::itanium_demangle::AbstractManglingParser< ManglingParser< Alloc >, Alloc >::makeNodeArray(), llvm::PBQP::Matrix::Matrix(), llvm::xray::mergeProfilesByStack(), llvm::xray::mergeProfilesByThread(), llvm::SmallPtrSetImplBase::MoveFrom(), llvm::IntervalMapImpl::NodeBase< std::pair< KeyT, KeyT >, ValT, N >::moveLeft(), llvm::PBQP::RegAlloc::NodeMetadata::NodeMetadata(), llvm::SmallVectorImpl< std::pair< llvm::RelocationValueRef, llvm::RelocationEntry > >::operator=(), llvm::itanium_demangle::PODSmallVector< llvm::itanium_demangle::ForwardTemplateReference *, 4 >::operator=(), llvm::OwningArrayRef< T >::OwningArrayRef(), llvm::DWARFDebugLoc::parseOneLocationList(), llvm::DWARFDebugLoclists::parseOneLocationList(), llvm::itanium_demangle::PODSmallVector< llvm::itanium_demangle::ForwardTemplateReference *, 4 >::PODSmallVector(), llvm::CallBase::populateBundleOperandInfos(), promoteToConstantPool(), llvm::CatchSwitchInst::removeHandler(), llvm::PHINode::removeIncomingValue(), reorderSubVector(), repeat(), llvm::sys::path::replace_path_prefix(), runOnBasicBlock(), llvm::BlockFrequencyInfoImpl< llvm::BitTracker >::setBlockFreq(), llvm::SelectionDAG::setNodeMemRefs(), llvm::SmallPtrSetImplBase::swap(), llvm::LiveIntervals::HMEditor::updateAllRanges(), llvm::PBQP::Vector::Vector(), llvm::object::WindowsResourceCOFFWriter::write(), and writeIdentificationBlock().

◆ copy_if()

template<typename R , typename OutputIt , typename UnaryPredicate >
OutputIt llvm::copy_if ( R &&  Range,
OutputIt  Out,
UnaryPredicate  P 
)

Provide wrappers to std::copy_if which take ranges instead of having to pass begin/end explicitly.

Definition at line 1233 of file STLExtras.h.

References adl_begin(), and adl_end().

Referenced by addNonNullAttrs(), isLoadConditional(), lowerV16I8VectorShuffle(), and lowerV8I16GeneralSingleInputVectorShuffle().

◆ copyNonnullMetadata()

void llvm::copyNonnullMetadata ( const LoadInst OldLI,
MDNode N,
LoadInst NewLI 
)

◆ copyRangeMetadata()

void llvm::copyRangeMetadata ( const DataLayout DL,
const LoadInst OldLI,
MDNode N,
LoadInst NewLI 
)

Copy a range metadata node to a new load instruction.

This handles mapping it to nonnull metadata if the new load is a pointer load instead of an integer load and the range doesn't cover null.

Definition at line 2504 of file Local.cpp.

References llvm::ConstantRange::contains(), llvm::MDNode::get(), getConstantRangeFromMetadata(), llvm::Value::getContext(), llvm::DataLayout::getIndexTypeSizeInBits(), llvm::Value::getType(), llvm::LLVMContext::MD_nonnull, None, and llvm::Instruction::setMetadata().

Referenced by combineLoadToNewType(), and getKnownAlignment().

◆ CostTableLookup()

const CostTblEntry* llvm::CostTableLookup ( ArrayRef< CostTblEntry Tbl,
int  ISD,
MVT  Ty 
)
inline

◆ count()

template<typename R , typename E >
auto llvm::count ( R &&  Range,
const E Element 
) -> typename std::iterator_traits<decltype(adl_begin(Range))>::difference_type

◆ count_if()

template<typename R , typename UnaryPredicate >
auto llvm::count_if ( R &&  Range,
UnaryPredicate  P 
) -> typename std::iterator_traits<decltype(adl_begin(Range))>::difference_type

◆ countLeadingOnes()

template<typename T >
std::size_t llvm::countLeadingOnes ( T  Value,
ZeroBehavior  ZB = ZB_Width 
)

Count the number of ones from the most significant bit to the first zero bit.

Ex. countLeadingOnes(0xFF0FFF00) == 8. Only unsigned integral types are allowed.

Parameters
ZBthe behavior on an input of all ones. Only ZB_Width and ZB_Undefined are valid arguments.

Definition at line 462 of file MathExtras.h.

Referenced by llvm::APInt::countLeadingOnes(), llvm::UnwindOpcodeAssembler::EmitVFPRegSave(), llvm::SmallBitVector::find_last_unset(), llvm::APInt::getMinSignedBits(), llvm::APInt::getNumSignBits(), llvm::APInt::getSplat(), isSeveralBitsExtractOpFromShr(), and llvm::AArch64_AM::processLogicalImmediate().

◆ countLeadingZeros()

template<typename T >
std::size_t llvm::countLeadingZeros ( T  Val,
ZeroBehavior  ZB = ZB_Width 
)

Count number of 0's from the most significant bit to the least stopping at the first 1.

Only unsigned integral types are allowed.

Parameters
ZBthe behavior on an input of 0. Only ZB_Width and ZB_Undefined are valid arguments.

Definition at line 189 of file MathExtras.h.

Referenced by CheckForMaskedLoad(), CombineANDShift(), combineBitcast(), llvm::SelectionDAG::computeKnownBits(), computeKnownBitsFromRangeMetadata(), computeMinimumValueSizes(), llvm::APInt::countLeadingZeros(), llvm::ScaledNumberBase::countLeadingZeros32(), llvm::ScaledNumberBase::countLeadingZeros64(), createXCoreISelDag(), llvm::AArch64_AM::decodeLogicalImmediate(), llvm::ScaledNumbers::divide32(), llvm::ScaledNumbers::divide64(), emitT2RegPlusImmediate(), llvm::UnwindOpcodeAssembler::EmitVFPRegSave(), llvm::SparseBitVectorElement< ElementSize >::find_last(), llvm::SmallBitVector::find_last(), llvm::SmallBitVector::find_prev(), findLastSet(), FitWeights(), foldMaskAndShiftToScale(), llvm::APInt::getActiveBits(), llvm::ScaledNumbers::getAdjusted(), llvm::AArch64TTIImpl::getIntImmCost(), llvm::ScaledNumbers::getLgImpl(), llvm::APInt::getNumSignBits(), llvm::mca::getResourceStateIndex(), llvm::APInt::getSplat(), llvm::ARM_AM::getT2SOImmValRotateVal(), getTestUnderMaskCond(), HasConditionalBranch(), isMemOPCandidate(), isPerfectIncrement(), isRunOfOnes(), llvm::AArch64_AM::isValidDecodeLogicalImmediate(), Log2_32(), Log2_32_Ceil(), Log2_64(), Log2_64_Ceil(), llvm::ScaledNumbers::matchScales(), llvm::ScaledNumbers::multiply64(), llvm::BlockFrequencyInfoImplBase::Distribution::normalize(), PerformBFICombine(), PowerOf2Floor(), llvm::ARMInstPrinter::printBitfieldInvMaskImmOperand(), llvm::AArch64TargetLowering::shouldConvertConstantLoadToIntImm(), trySequenceOfOnes(), and write_hex().

◆ countPopulation()

template<typename T >
unsigned llvm::countPopulation ( T  Value)
inline

◆ countTrailingOnes()

template<typename T >
std::size_t llvm::countTrailingOnes ( T  Value,
ZeroBehavior  ZB = ZB_Width 
)

◆ countTrailingZeros()

template<typename T >
std::size_t llvm::countTrailingZeros ( T  Val,
ZeroBehavior  ZB = ZB_Width 
)

Count number of 0's from the least significant bit to the most stopping at the first 1.

Only unsigned integral types are allowed.

Parameters
ZBthe behavior on an input of 0. Only ZB_Width and ZB_Undefined are valid arguments.

Definition at line 120 of file MathExtras.h.

Referenced by llvm::lowertypetests::BitSetBuilder::build(), llvm::PPCTargetLowering::BuildSDIVPow2(), CheckForMaskedLoad(), CombineANDShift(), combineMulSpecial(), combineX86ShufflesRecursively(), computeKnownBits(), computeKnownBitsFromOperator(), llvm::APInt::countTrailingZeros(), createEfficiencySanitizerPass(), llvm::object::ObjectFile::createELFObjectFile(), createOrdering(), decodeCRBitMOperand(), llvm::ScaledNumbers::divide64(), dumpApplePropertyAttribute(), emitAligningInstructions(), llvm::Thumb1FrameLowering::emitPrologue(), llvm::WebAssemblyFrameLowering::emitPrologue(), llvm::HexagonEvaluator::evaluate(), llvm::SparseBitVectorElement< ElementSize >::find_first(), llvm::SmallBitVector::find_first(), llvm::SparseBitVectorElement< ElementSize >::find_next(), llvm::SmallBitVector::find_next(), findFirstSet(), llvm::wholeprogramdevirt::findLowestOffset(), firstCommonClass(), foldMaskAndShiftToScale(), foldMaskedShiftToBEXTR(), getElementByteSizeValue(), llvm::DomainValue::getFirstDomain(), llvm::ARM_AM::getSOImmValRotate(), llvm::APInt::getSplat(), getSubRegForIndex(), llvm::ARM_AM::getT2SOImmValRotate(), llvm::HexagonTargetLowering::getTargetNodeName(), getTestUnderMaskCond(), llvm::ARM_AM::getThumbImm16ValShift(), llvm::ARM_AM::getThumbImmValShift(), HasConditionalBranch(), llvm::MipsAnalyzeImmediate::Inst::Inst(), llvm::BasicBlockInfo::internalKnownBits(), isBitfieldPositioningOp(), isMemOPCandidate(), isPerfectIncrement(), isShiftedMask(), llvm::APInt::isShiftedMask(), llvm::AArch64TargetLowering::isZExtFree(), LowerBUILD_VECTORAsVariablePermute(), LowerCONCAT_VECTORSvXi1(), llvm::SITargetLowering::LowerFormalArguments(), llvm::LTOModule::makeBuffer(), mayUsePostIncMode(), PerformBFICombine(), PerformORCombineToBFI(), llvm::ARMInstPrinter::printBitfieldInvMaskImmOperand(), llvm::ARMInstPrinter::printThumbITMask(), llvm::AArch64_AM::processLogicalImmediate(), llvm::HexagonResource::setWeight(), shrinkScalarLogicOp(), tryBitfieldInsertOpFromOr(), trySequenceOfOnes(), TypeSizeToSizeIndex(), and llvm::SelectionDAGBuilder::visitBitTestCase().

◆ createA15SDOptimizerPass()

FunctionPass * llvm::createA15SDOptimizerPass ( )

Definition at line 689 of file A15SDOptimizer.cpp.

Referenced by llvm::ARMBaseTargetMachine::createPassConfig().

◆ createAAEvalPass()

aa Exhaustive Alias Analysis Precision true FunctionPass * llvm::createAAEvalPass ( )

Create a wrapper of the above for the legacy pass manager.

Definition at line 435 of file AliasAnalysisEvaluator.cpp.

References llvm::AAEvaluator::AAEvalLegacyPass.

◆ createAArch64A53Fix835769()

FunctionPass * llvm::createAArch64A53Fix835769 ( )

◆ createAArch64A57FPLoadBalancing()

FunctionPass * llvm::createAArch64A57FPLoadBalancing ( )

◆ createAArch64AdvSIMDScalar()

FunctionPass * llvm::createAArch64AdvSIMDScalar ( )

◆ createAArch64AsmTargetStreamer()

MCTargetStreamer * llvm::createAArch64AsmTargetStreamer ( MCStreamer S,
formatted_raw_ostream OS,
MCInstPrinter InstPrint,
bool  isVerboseAsm 
)

Definition at line 198 of file AArch64ELFStreamer.cpp.

Referenced by LLVMInitializeAArch64TargetMC().

◆ createAArch64beAsmBackend()

MCAsmBackend * llvm::createAArch64beAsmBackend ( const Target T,
const MCSubtargetInfo STI,
const MCRegisterInfo MRI,
const MCTargetOptions Options 
)

◆ createAArch64BranchTargetsPass()

FunctionPass* llvm::createAArch64BranchTargetsPass ( )

◆ createAArch64CleanupLocalDynamicTLSPass()

FunctionPass* llvm::createAArch64CleanupLocalDynamicTLSPass ( )

◆ createAArch64CollectLOHPass()

FunctionPass * llvm::createAArch64CollectLOHPass ( )

Definition at line 545 of file AArch64CollectLOH.cpp.

Referenced by llvm::AArch64TargetMachine::createPassConfig().

◆ createAArch64CompressJumpTablesPass()

FunctionPass * llvm::createAArch64CompressJumpTablesPass ( )

◆ createAArch64CondBrTuning()

FunctionPass * llvm::createAArch64CondBrTuning ( )

◆ createAArch64ConditionalCompares()

aarch64 AArch64 CCMP false FunctionPass * llvm::createAArch64ConditionalCompares ( )

◆ createAArch64ConditionOptimizerPass()

aarch64 AArch64 CondOpt false FunctionPass * llvm::createAArch64ConditionOptimizerPass ( )

◆ createAArch64DeadRegisterDefinitions()

FunctionPass * llvm::createAArch64DeadRegisterDefinitions ( )

◆ createAArch64ELFObjectWriter()

std::unique_ptr< MCObjectTargetWriter > llvm::createAArch64ELFObjectWriter ( uint8_t  OSABI,
bool  IsILP32 
)

Definition at line 435 of file AArch64ELFObjectWriter.cpp.

◆ createAArch64ELFStreamer()

MCELFStreamer * llvm::createAArch64ELFStreamer ( MCContext Context,
std::unique_ptr< MCAsmBackend TAB,
std::unique_ptr< MCObjectWriter OW,
std::unique_ptr< MCCodeEmitter Emitter,
bool  RelaxAll 
)

Definition at line 205 of file AArch64ELFStreamer.cpp.

Referenced by createELFStreamer().

◆ createAArch64ExpandPseudoPass()

FunctionPass * llvm::createAArch64ExpandPseudoPass ( )

Returns an instance of the pseudo instruction expansion pass.

Definition at line 1018 of file AArch64ExpandPseudoInsts.cpp.

Referenced by llvm::AArch64TargetMachine::createPassConfig().

◆ createAArch64InstructionSelector()

InstructionSelector * llvm::createAArch64InstructionSelector ( const AArch64TargetMachine TM,
AArch64Subtarget Subtarget,
AArch64RegisterBankInfo RBI 
)

◆ createAArch64ISelDag()

FunctionPass * llvm::createAArch64ISelDag ( AArch64TargetMachine TM,
CodeGenOpt::Level  OptLevel 
)

createAArch64ISelDag - This pass converts a legalized DAG into a AArch64-specific DAG, ready for instruction scheduling.

Definition at line 4121 of file AArch64ISelDAGToDAG.cpp.

Referenced by llvm::AArch64TargetMachine::createPassConfig().

◆ createAArch64leAsmBackend()

MCAsmBackend * llvm::createAArch64leAsmBackend ( const Target T,
const MCSubtargetInfo STI,
const MCRegisterInfo MRI,
const MCTargetOptions Options 
)

◆ createAArch64LoadStoreOptimizationPass()

FunctionPass * llvm::createAArch64LoadStoreOptimizationPass ( )

createAArch64LoadStoreOptimizationPass - returns an instance of the load / store optimization pass.

Definition at line 1786 of file AArch64LoadStoreOptimizer.cpp.

Referenced by llvm::AArch64TargetMachine::createPassConfig().

◆ createAArch64MachObjectWriter()

std::unique_ptr< MCObjectTargetWriter > llvm::createAArch64MachObjectWriter ( uint32_t  CPUType,
uint32_t  CPUSubtype 
)

Definition at line 408 of file AArch64MachObjectWriter.cpp.

◆ createAArch64MacroFusionDAGMutation()

std::unique_ptr< ScheduleDAGMutation > llvm::createAArch64MacroFusionDAGMutation ( )

Note that you have to add: DAG.addMutation(createAArch64MacroFusionDAGMutation()); to AArch64PassConfig::createMachineScheduler() to have an effect.

Definition at line 409 of file AArch64MacroFusion.cpp.

References createMacroFusionDAGMutation(), and shouldScheduleAdjacent().

Referenced by llvm::AArch64beTargetMachine::AArch64beTargetMachine().

◆ createAArch64MCCodeEmitter()

MCCodeEmitter * llvm::createAArch64MCCodeEmitter ( const MCInstrInfo MCII,
const MCRegisterInfo MRI,
MCContext Ctx 
)

Definition at line 645 of file AArch64MCCodeEmitter.cpp.

Referenced by LLVMInitializeAArch64TargetMC().

◆ createAArch64ObjectTargetStreamer()

MCTargetStreamer * llvm::createAArch64ObjectTargetStreamer ( MCStreamer S,
const MCSubtargetInfo STI 
)

◆ createAArch64PreLegalizeCombiner()

FunctionPass * llvm::createAArch64PreLegalizeCombiner ( )

◆ createAArch64PromoteConstantPass()

aarch64 promote AArch64 Promote Constant false ModulePass * llvm::createAArch64PromoteConstantPass ( )

◆ createAArch64RedundantCopyEliminationPass()

FunctionPass * llvm::createAArch64RedundantCopyEliminationPass ( )

◆ createAArch64SIMDInstrOptPass()

FunctionPass * llvm::createAArch64SIMDInstrOptPass ( )

Returns an instance of the high cost ASIMD instruction replacement optimization pass.

Definition at line 739 of file AArch64SIMDInstrOpt.cpp.

Referenced by llvm::AArch64TargetMachine::createPassConfig().

◆ createAArch64SpeculationHardeningPass()

FunctionPass * llvm::createAArch64SpeculationHardeningPass ( )

Returns an instance of the pseudo instruction expansion pass.

Definition at line 700 of file AArch64SpeculationHardening.cpp.

Referenced by llvm::AArch64TargetMachine::createPassConfig().

◆ createAArch64StorePairSuppressPass()

FunctionPass* llvm::createAArch64StorePairSuppressPass ( )

◆ createAArch64WinCOFFObjectWriter()

std::unique_ptr< MCObjectTargetWriter > llvm::createAArch64WinCOFFObjectWriter ( )

Definition at line 123 of file AArch64WinCOFFObjectWriter.cpp.

◆ createAArch64WinCOFFStreamer()

MCWinCOFFStreamer * llvm::createAArch64WinCOFFStreamer ( MCContext Context,
std::unique_ptr< MCAsmBackend MAB,
std::unique_ptr< MCObjectWriter OW,
std::unique_ptr< MCCodeEmitter Emitter,
bool  RelaxAll,
bool  IncrementalLinkerCompatible 
)

Definition at line 192 of file AArch64WinCOFFStreamer.cpp.

Referenced by createWinCOFFStreamer().

◆ createAAResultsWrapperPass()

Function Alias Analysis true FunctionPass * llvm::createAAResultsWrapperPass ( )

◆ createAddDiscriminatorsPass()

add Add DWARF path false FunctionPass * llvm::createAddDiscriminatorsPass ( )

Definition at line 109 of file AddDiscriminators.cpp.

◆ createAddressSanitizerFunctionPass()

AddressSanitizer false FunctionPass * llvm::createAddressSanitizerFunctionPass ( bool  CompileKernel = false,
bool  Recover = false,
bool  UseAfterScope = false 
)

Definition at line 1090 of file AddressSanitizer.cpp.

References assert().

◆ createAddressSanitizerModulePass()

ModulePass* llvm::createAddressSanitizerModulePass ( bool  CompileKernel = false,
bool  Recover = false,
bool  UseGlobalsGC = true,
bool  UseOdrIndicator = true 
)

◆ createAggressiveDCEPass()

Aggressive Dead Code false FunctionPass * llvm::createAggressiveDCEPass ( )

◆ createAggressiveInstCombinerPass()

FunctionPass * llvm::createAggressiveInstCombinerPass ( )

◆ createAlignmentFromAssumptionsPass()

false FunctionPass * llvm::createAlignmentFromAssumptionsPass ( )

◆ createAllocaHoisting()

FunctionPass* llvm::createAllocaHoisting ( )

◆ createAlwaysInlinerLegacyPass()

always Inliner for always_inline false Pass * llvm::createAlwaysInlinerLegacyPass ( bool  InsertLifetime = true)

◆ createAMDGPUAAWrapperPass()

amdgpu aa AMDGPU Address space based Alias Analysis true ImmutablePass * llvm::createAMDGPUAAWrapperPass ( )

◆ createAMDGPUAlwaysInlinePass()

ModulePass * llvm::createAMDGPUAlwaysInlinePass ( bool  GlobalOpt = true)

◆ createAMDGPUAnnotateKernelFeaturesPass()

Pass * llvm::createAMDGPUAnnotateKernelFeaturesPass ( )

◆ createAMDGPUAnnotateUniformValues()

FunctionPass * llvm::createAMDGPUAnnotateUniformValues ( )

◆ createAMDGPUAsmBackend()

MCAsmBackend * llvm::createAMDGPUAsmBackend ( const Target T,
const MCSubtargetInfo STI,
const MCRegisterInfo MRI,
const MCTargetOptions Options 
)

◆ createAMDGPUAtomicOptimizerPass()

AMDGPU atomic false FunctionPass * llvm::createAMDGPUAtomicOptimizerPass ( )

◆ createAMDGPUCFGStructurizerPass()

AMDGPU CFG false FunctionPass * llvm::createAMDGPUCFGStructurizerPass ( )

◆ createAMDGPUCodeGenPreparePass()

FunctionPass * llvm::createAMDGPUCodeGenPreparePass ( )

◆ createAMDGPUELFObjectWriter()

std::unique_ptr< MCObjectTargetWriter > llvm::createAMDGPUELFObjectWriter ( bool  Is64Bit,
uint8_t  OSABI,
bool  HasRelocationAddend 
)

Definition at line 86 of file AMDGPUELFObjectWriter.cpp.

Referenced by adjustFixupValue().

◆ createAMDGPUELFStreamer()

MCELFStreamer * llvm::createAMDGPUELFStreamer ( const Triple T,
MCContext Context,
std::unique_ptr< MCAsmBackend MAB,
std::unique_ptr< MCObjectWriter OW,
std::unique_ptr< MCCodeEmitter Emitter,
bool  RelaxAll 
)

Definition at line 33 of file AMDGPUELFStreamer.cpp.

Referenced by createMCStreamer().

◆ createAMDGPUExternalAAWrapperPass()

ImmutablePass * llvm::createAMDGPUExternalAAWrapperPass ( )

◆ createAMDGPUFixFunctionBitcastsPass()

ModulePass* llvm::createAMDGPUFixFunctionBitcastsPass ( )

◆ createAMDGPUFunctionInliningPass()

amdgpu AMDGPU Function Integration false Pass * llvm::createAMDGPUFunctionInliningPass ( )

◆ createAMDGPUISelDag()

amdgpu AMDGPU DAG DAG Pattern Instruction false FunctionPass * llvm::createAMDGPUISelDag ( TargetMachine TM = nullptr,
CodeGenOpt::Level  OptLevel = CodeGenOpt::Default 
)

This pass converts a legalized DAG into a AMDGPU-specific.

Definition at line 255 of file AMDGPUISelDAGToDAG.cpp.

Referenced by llvm::GCNTargetMachine::getTargetTransformInfo().

◆ createAMDGPULowerIntrinsicsPass()

ModulePass * llvm::createAMDGPULowerIntrinsicsPass ( )

◆ createAMDGPULowerKernelArgumentsPass()

FunctionPass * llvm::createAMDGPULowerKernelArgumentsPass ( )

◆ createAMDGPULowerKernelAttributesPass()

ModulePass * llvm::createAMDGPULowerKernelAttributesPass ( )

◆ createAMDGPUMachineCFGStructurizerPass()

amdgpu machine cfg AMDGPU Machine CFG false FunctionPass * llvm::createAMDGPUMachineCFGStructurizerPass ( )

◆ createAMDGPUMacroFusionDAGMutation()

std::unique_ptr< ScheduleDAGMutation > llvm::createAMDGPUMacroFusionDAGMutation ( )

Note that you have to add: DAG.addMutation(createAMDGPUMacroFusionDAGMutation()); to AMDGPUPassConfig::createMachineScheduler() to have an effect.

Definition at line 64 of file AMDGPUMacroFusion.cpp.

References createMacroFusionDAGMutation(), and shouldScheduleAdjacent().

Referenced by createGCNMaxOccupancyMachineScheduler(), and createIterativeILPMachineScheduler().

◆ createAMDGPUOpenCLEnqueuedBlockLoweringPass()

ModulePass* llvm::createAMDGPUOpenCLEnqueuedBlockLoweringPass ( )

◆ createAMDGPUPromoteAlloca()

FunctionPass * llvm::createAMDGPUPromoteAlloca ( )

◆ createAMDGPURewriteOutArgumentsPass()

FunctionPass * llvm::createAMDGPURewriteOutArgumentsPass ( )

Definition at line 482 of file AMDGPURewriteOutArguments.cpp.

◆ createAMDGPUSimplifyLibCallsPass()

FunctionPass * llvm::createAMDGPUSimplifyLibCallsPass ( const TargetOptions Opt)

Definition at line 1682 of file AMDGPULibCalls.cpp.

Referenced by llvm::AMDGPUTargetMachine::adjustPassManager().

◆ createAMDGPUStructurizeCFGPass()

Pass* llvm::createAMDGPUStructurizeCFGPass ( )

◆ createAMDGPUUnifyMetadataPass()

ModulePass* llvm::createAMDGPUUnifyMetadataPass ( )

◆ createAMDGPUUseNativeCallsPass()

FunctionPass * llvm::createAMDGPUUseNativeCallsPass ( )

Definition at line 1686 of file AMDGPULibCalls.cpp.

Referenced by llvm::AMDGPUTargetMachine::adjustPassManager().

◆ createARCBranchFinalizePass()

FunctionPass * llvm::createARCBranchFinalizePass ( )

Definition at line 181 of file ARCBranchFinalize.cpp.

Referenced by llvm::ARCTargetMachine::createPassConfig().

◆ createARCExpandPseudosPass()

FunctionPass * llvm::createARCExpandPseudosPass ( )

Definition at line 101 of file ARCExpandPseudos.cpp.

Referenced by llvm::ARCTargetMachine::createPassConfig().

◆ createARCISelDag()

FunctionPass * llvm::createARCISelDag ( ARCTargetMachine TM,
CodeGenOpt::Level  OptLevel 
)

◆ createArgumentPromotionPass()

Promote by reference arguments to false Pass * llvm::createArgumentPromotionPass ( unsigned  maxElements = 3)

◆ createARMBEAsmBackend()

MCAsmBackend * llvm::createARMBEAsmBackend ( const Target T,
const MCSubtargetInfo STI,
const MCRegisterInfo MRI,
const MCTargetOptions Options 
)

Definition at line 1207 of file ARMAsmBackend.cpp.

References llvm::support::big, and createARMAsmBackend().

Referenced by LLVMInitializeARMTargetMC().

◆ createARMBEMCCodeEmitter()

MCCodeEmitter * llvm::createARMBEMCCodeEmitter ( const MCInstrInfo MCII,
const MCRegisterInfo MRI,
MCContext Ctx 
)

Definition at line 1721 of file ARMMCCodeEmitter.cpp.

Referenced by LLVMInitializeARMTargetMC().

◆ createARMCodeGenPreparePass()

FunctionPass * llvm::createARMCodeGenPreparePass ( )

◆ createARMConstantIslandPass()

FunctionPass * llvm::createARMConstantIslandPass ( )

createARMConstantIslandPass - returns an instance of the constpool island pass.

Definition at line 2395 of file ARMConstantIslandPass.cpp.

References ARM_CP_ISLANDS_OPT_NAME, and INITIALIZE_PASS.

Referenced by llvm::ARMBaseTargetMachine::createPassConfig().

◆ createARMELFObjectWriter()

std::unique_ptr< MCObjectTargetWriter > llvm::createARMELFObjectWriter ( uint8_t  OSABI)

Construct an ELF Mach-O object writer.

Definition at line 258 of file ARMELFObjectWriter.cpp.

◆ createARMELFStreamer()

MCELFStreamer * llvm::createARMELFStreamer ( MCContext Context,
std::unique_ptr< MCAsmBackend TAB,
std::unique_ptr< MCObjectWriter OW,
std::unique_ptr< MCCodeEmitter Emitter,
bool  RelaxAll,
bool  IsThumb 
)

Definition at line 1504 of file ARMELFStreamer.cpp.

References llvm::ELF::EF_ARM_EABI_VER5.

Referenced by createELFStreamer(), and llvm::MCELFStreamer::reset().

◆ createARMExpandPseudoPass()

FunctionPass * llvm::createARMExpandPseudoPass ( )

createARMExpandPseudoPass - returns an instance of the pseudo instruction expansion pass.

Definition at line 1943 of file ARMExpandPseudoInsts.cpp.

Referenced by llvm::ARMBaseTargetMachine::createPassConfig().

◆ createARMInstructionSelector()

InstructionSelector * llvm::createARMInstructionSelector ( const ARMBaseTargetMachine TM,
const ARMSubtarget STI,
const ARMRegisterBankInfo RBI 
)

Definition at line 129 of file ARMInstructionSelector.cpp.

Referenced by llvm::ARMSubtarget::ARMSubtarget().

◆ createARMISelDag()

FunctionPass * llvm::createARMISelDag ( ARMBaseTargetMachine TM,
CodeGenOpt::Level  OptLevel 
)

createARMISelDag - This pass converts a legalized DAG into a ARM-specific DAG, ready for instruction scheduling.

Definition at line 4333 of file ARMISelDAGToDAG.cpp.

Referenced by llvm::ARMBaseTargetMachine::createPassConfig().

◆ createARMLEAsmBackend()

MCAsmBackend * llvm::createARMLEAsmBackend ( const Target T,
const MCSubtargetInfo STI,
const MCRegisterInfo MRI,
const MCTargetOptions Options 
)

Definition at line 1200 of file ARMAsmBackend.cpp.

References createARMAsmBackend(), and llvm::support::little.

Referenced by LLVMInitializeARMTargetMC().

◆ createARMLEMCCodeEmitter()

MCCodeEmitter * llvm::createARMLEMCCodeEmitter ( const MCInstrInfo MCII,
const MCRegisterInfo MRI,
MCContext Ctx 
)

Definition at line 1715 of file ARMMCCodeEmitter.cpp.

Referenced by LLVMInitializeARMTargetMC().

◆ createARMLoadStoreOptimizationPass()

FunctionPass * llvm::createARMLoadStoreOptimizationPass ( bool  PreAlloc = false)

Returns an instance of the load / store optimization pass.

Definition at line 2456 of file ARMLoadStoreOptimizer.cpp.

Referenced by llvm::ARMBaseTargetMachine::createPassConfig().

◆ createARMMachObjectWriter()

std::unique_ptr< MCObjectTargetWriter > llvm::createARMMachObjectWriter ( bool  Is64Bit,
uint32_t  CPUType,
uint32_t  CPUSubtype 
)

Construct an ARM Mach-O object writer.

Definition at line 508 of file ARMMachObjectWriter.cpp.

Referenced by llvm::ARMAsmBackendDarwin::createObjectTargetWriter().

◆ createARMMachORelocationInfo()

MCRelocationInfo * llvm::createARMMachORelocationInfo ( MCContext Ctx)

Construct ARM Mach-O relocation info.

createARMMachORelocationInfo - Construct an ARM Mach-O RelocationInfo.

Definition at line 41 of file ARMMachORelocationInfo.cpp.

Referenced by createARMMCRelocationInfo().

◆ createARMMacroFusionDAGMutation()

std::unique_ptr< ScheduleDAGMutation > llvm::createARMMacroFusionDAGMutation ( )

Note that you have to add: DAG.addMutation(createARMMacroFusionDAGMutation()); to ARMPassConfig::createMachineScheduler() to have an effect.

Definition at line 66 of file ARMMacroFusion.cpp.

References createMacroFusionDAGMutation(), and shouldScheduleAdjacent().

Referenced by llvm::ARMBETargetMachine::ARMBETargetMachine().

◆ createARMNullTargetStreamer()

MCTargetStreamer * llvm::createARMNullTargetStreamer ( MCStreamer S)

Definition at line 1492 of file ARMELFStreamer.cpp.

Referenced by LLVMInitializeARMTargetMC().

◆ createARMObjectTargetStreamer()

MCTargetStreamer * llvm::createARMObjectTargetStreamer ( MCStreamer S,
const MCSubtargetInfo STI 
)

◆ createARMOptimizeBarriersPass()

FunctionPass * llvm::createARMOptimizeBarriersPass ( )

createARMOptimizeBarriersPass - Returns an instance of the remove double barriers pass.

Definition at line 105 of file ARMOptimizeBarriersPass.cpp.

Referenced by llvm::ARMBaseTargetMachine::createPassConfig().

◆ createARMParallelDSPPass()

Pass * llvm::createARMParallelDSPPass ( )

Definition at line 777 of file ARMParallelDSP.cpp.

References INITIALIZE_PASS_BEGIN().

Referenced by llvm::ARMBaseTargetMachine::createPassConfig().

◆ createARMTargetAsmStreamer()

MCTargetStreamer * llvm::createARMTargetAsmStreamer ( MCStreamer S,
formatted_raw_ostream OS,
MCInstPrinter InstPrint,
bool  isVerboseAsm 
)

Definition at line 1485 of file ARMELFStreamer.cpp.

Referenced by LLVMInitializeARMTargetMC().

◆ createARMWinCOFFObjectWriter()

std::unique_ptr< MCObjectTargetWriter > llvm::createARMWinCOFFObjectWriter ( bool  Is64Bit)

Construct an ARM PE/COFF object writer.

Definition at line 95 of file ARMWinCOFFObjectWriter.cpp.

◆ createARMWinCOFFStreamer()

MCStreamer * llvm::createARMWinCOFFStreamer ( MCContext Context,
std::unique_ptr< MCAsmBackend > &&  MAB,
std::unique_ptr< MCObjectWriter > &&  OW,
std::unique_ptr< MCCodeEmitter > &&  Emitter,
bool  RelaxAll,
bool  IncrementalLinkerCompatible 
)

Definition at line 51 of file ARMWinCOFFStreamer.cpp.

Referenced by LLVMInitializeARMTargetMC().

◆ createAsmStreamer() [1/2]

MCStreamer * llvm::createAsmStreamer ( MCContext Ctx,
std::unique_ptr< formatted_raw_ostream OS,
bool  isVerboseAsm,
bool  useDwarfDirectory,
MCInstPrinter InstPrint,
std::unique_ptr< MCCodeEmitter > &&  CE,
std::unique_ptr< MCAsmBackend > &&  TAB,
bool  ShowInst 
)

Create a machine code streamer which will print out assembly for the native target, suitable for compiling with a native assembler.

Parameters
InstPrint- If given, the instruction printer to use. If not given the MCInst representation will be printed. This method takes ownership of InstPrint.
CE- If given, a code emitter to use to show the instruction encoding inline with the assembly. This method takes ownership of CE.
TAB- If given, a target asm backend to use to show the fixup information in conjunction with encoding information. This method takes ownership of TAB.
ShowInst- Whether to show the MCInst representation inline with the assembly.

Definition at line 1940 of file MCAsmStreamer.cpp.

◆ createAsmStreamer() [2/2]

MCStreamer* llvm::createAsmStreamer ( MCContext Ctx,
std::unique_ptr< formatted_raw_ostream OS,
bool  isVerboseAsm,
bool  useDwarfDirectory,
MCInstPrinter InstPrint,
MCCodeEmitter CE,
MCAsmBackend TAB,
bool  ShowInst 
)

Create a machine code streamer which will print out assembly for the native target, suitable for compiling with a native assembler.

Parameters
InstPrint- If given, the instruction printer to use. If not given the MCInst representation will be printed. This method takes ownership of InstPrint.
CE- If given, a code emitter to use to show the instruction encoding inline with the assembly. This method takes ownership of CE.
TAB- If given, a target asm backend to use to show the fixup information in conjunction with encoding information. This method takes ownership of TAB.
ShowInst- Whether to show the MCInst representation inline with the assembly.

Referenced by llvm::Target::createAsmStreamer(), and llvm::MCStreamer::mayHaveInstructions().

◆ createAtomicExpandPass()

FunctionPass* llvm::createAtomicExpandPass ( )

◆ createAVRAsmBackend()

MCAsmBackend * llvm::createAVRAsmBackend ( const Target T,
const MCSubtargetInfo STI,
const MCRegisterInfo MRI,
const llvm::MCTargetOptions TO 
)

Creates an assembly backend for AVR.

Definition at line 480 of file AVRAsmBackend.cpp.

References llvm::Triple::getOS(), and llvm::MCSubtargetInfo::getTargetTriple().

Referenced by LLVMInitializeAVRTargetMC().

◆ createAVRBranchSelectionPass()

FunctionPass* llvm::createAVRBranchSelectionPass ( )

◆ createAVRDynAllocaSRPass()

FunctionPass * llvm::createAVRDynAllocaSRPass ( )

createAVRDynAllocaSRPass - returns an instance of the dynalloca stack pointer save/restore pass.

Definition at line 544 of file AVRFrameLowering.cpp.

Referenced by llvm::AVRTargetMachine::getSubtargetImpl().

◆ createAVRELFObjectWriter()

std::unique_ptr< MCObjectTargetWriter > llvm::createAVRELFObjectWriter ( uint8_t  OSABI)

Creates an ELF object writer for AVR.

Definition at line 155 of file AVRELFObjectWriter.cpp.

Referenced by llvm::AVRAsmBackend::createObjectTargetWriter().

◆ createAVRELFStreamer()

MCStreamer * llvm::createAVRELFStreamer ( Triple const TT,
MCContext Context,
std::unique_ptr< MCAsmBackend MAB,
std::unique_ptr< MCObjectWriter OW,
std::unique_ptr< MCCodeEmitter CE 
)

◆ createAVRExpandPseudoPass()

FunctionPass* llvm::createAVRExpandPseudoPass ( )

◆ createAVRFrameAnalyzerPass()

FunctionPass * llvm::createAVRFrameAnalyzerPass ( )

Creates instance of the frame analyzer pass.

Definition at line 492 of file AVRFrameLowering.cpp.

Referenced by llvm::AVRTargetMachine::getSubtargetImpl().

◆ createAVRISelDag()

FunctionPass * llvm::createAVRISelDag ( AVRTargetMachine TM,
CodeGenOpt::Level  OptLevel 
)

◆ createAVRMCCodeEmitter()

MCCodeEmitter* llvm::createAVRMCCodeEmitter ( const MCInstrInfo MCII,
const MCRegisterInfo MRI,
MCContext Ctx 
)

Creates a machine code emitter for AVR.

Referenced by LLVMInitializeAVRTargetMC().

◆ createAVRMCInstrInfo()

MCInstrInfo * llvm::createAVRMCInstrInfo ( )

Definition at line 40 of file AVRMCTargetDesc.cpp.

References X.

Referenced by LLVMInitializeAVRTargetMC().

◆ createAVRRelaxMemPass()

FunctionPass* llvm::createAVRRelaxMemPass ( )

◆ createBarrierNoopPass()

ModulePass * llvm::createBarrierNoopPass ( )

createBarrierNoopPass - This pass is purely a module pass barrier in a pass manager.

Definition at line 43 of file BarrierNoopPass.cpp.

References INITIALIZE_PASS.

Referenced by addCoroutineOpt0Passes(), llvm::GCNTargetMachine::getTargetTransformInfo(), and llvm::PassManagerBuilder::populateModulePassManager().

◆ createBasicAAWrapperPass()

Basic Alias true FunctionPass * llvm::createBasicAAWrapperPass ( )

◆ createBasicRegisterAllocator()

FunctionPass * llvm::createBasicRegisterAllocator ( )

BasicRegisterAllocation Pass - This pass implements a degenerate global register allocator using the basic regalloc framework.

Definition at line 331 of file RegAllocBasic.cpp.

◆ createBitcodeWriterPass()

write Write true ModulePass * llvm::createBitcodeWriterPass ( raw_ostream Str,
bool  ShouldPreserveUseListOrder = false,
bool  EmitSummaryIndex = false,
bool  EmitModuleHash = false 
)

Create and return a pass that writes the module to the specified ostream.

Note that this pass is designed for use with the legacy pass manager.

If ShouldPreserveUseListOrder, encode use-list order so it can be reproduced when deserialized.

If EmitSummaryIndex, emit the summary index (currently for use in ThinLTO optimization).

If EmitModuleHash, compute and emit the module hash in the bitcode (currently for use in ThinLTO incremental build).

Definition at line 77 of file BitcodeWriterPass.cpp.

◆ createBitMaskForGaps()

Constant * llvm::createBitMaskForGaps ( IRBuilder<> &  Builder,
unsigned  VF,
const InterleaveGroup< Instruction > &  Group 
)

Create a mask that filters the members of an interleave group where there are gaps.

For example, the mask for Group with interleave-factor 3 and VF 4, that has only its first member present is:

<1,0,0,1,0,0,1,0,0,1,0,0>

Note: The result is a mask of 0's and 1's, as opposed to the other create[*]Mask() utilities which create a shuffle mask (mask that consists of indices).

Definition at line 600 of file VectorUtils.cpp.

References assert(), llvm::ConstantVector::get(), llvm::InterleaveGroup< InstTy >::getFactor(), llvm::IRBuilderBase::getInt1(), llvm::InterleaveGroup< InstTy >::getMember(), llvm::InterleaveGroup< InstTy >::getNumMembers(), llvm::InterleaveGroup< InstTy >::isReverse(), and llvm::BitmaskEnumDetail::Mask().

Referenced by llvm::InnerLoopVectorizer::vectorizeInterleaveGroup().

◆ createBitTrackingDCEPass()

Bit Tracking Dead Code false FunctionPass * llvm::createBitTrackingDCEPass ( )

◆ createBlockExtractorPass() [1/2]

ModulePass* llvm::createBlockExtractorPass ( )

createBlockExtractorPass - This pass extracts all the specified blocks from the functions in the module.

◆ createBlockExtractorPass() [2/2]

ModulePass * llvm::createBlockExtractorPass ( const SmallVectorImpl< BasicBlock *> &  BlocksToExtract,
bool  EraseFunctions 
)

◆ createBoundsCheckingLegacyPass()

bounds Run time bounds false FunctionPass * llvm::createBoundsCheckingLegacyPass ( )

Legacy pass creation function for the above pass.

Definition at line 246 of file BoundsChecking.cpp.

◆ createBPFAsmBackend()

MCAsmBackend * llvm::createBPFAsmBackend ( const Target T,
const MCSubtargetInfo STI,
const MCRegisterInfo MRI,
const MCTargetOptions Options 
)

Definition at line 108 of file BPFAsmBackend.cpp.

References llvm::support::little.

Referenced by LLVMInitializeBPFTargetMC().

◆ createBPFbeAsmBackend()

MCAsmBackend * llvm::createBPFbeAsmBackend ( const Target T,
const MCSubtargetInfo STI,
const MCRegisterInfo MRI,
const MCTargetOptions Options 
)

Definition at line 115 of file BPFAsmBackend.cpp.

References llvm::support::big.

Referenced by LLVMInitializeBPFTargetMC().

◆ createBPFbeMCCodeEmitter()

MCCodeEmitter * llvm::createBPFbeMCCodeEmitter ( const MCInstrInfo MCII,
const MCRegisterInfo MRI,
MCContext Ctx 
)

◆ createBPFELFObjectWriter()

std::unique_ptr< MCObjectTargetWriter > llvm::createBPFELFObjectWriter ( uint8_t  OSABI)

Definition at line 76 of file BPFELFObjectWriter.cpp.

◆ createBPFISelDag()

FunctionPass * llvm::createBPFISelDag ( BPFTargetMachine TM)

Definition at line 647 of file BPFISelDAGToDAG.cpp.

Referenced by llvm::BPFTargetMachine::createPassConfig().

◆ createBPFMCCodeEmitter()

MCCodeEmitter * llvm::createBPFMCCodeEmitter ( const MCInstrInfo MCII,
const MCRegisterInfo MRI,
MCContext Ctx 
)

Definition at line 74 of file BPFMCCodeEmitter.cpp.

Referenced by LLVMInitializeBPFTargetMC().

◆ createBPFMIPeepholePass()

FunctionPass* llvm::createBPFMIPeepholePass ( )

◆ createBPFMIPreEmitCheckingPass()

FunctionPass* llvm::createBPFMIPreEmitCheckingPass ( )

◆ createBPFMIPreEmitPeepholePass()

FunctionPass* llvm::createBPFMIPreEmitPeepholePass ( )

◆ createBranchMacroFusionDAGMutation()

std::unique_ptr< ScheduleDAGMutation > llvm::createBranchMacroFusionDAGMutation ( ShouldSchedulePredTy  shouldScheduleAdjacent)

Create a DAG scheduling mutation to pair branch instructions with one of their predecessors back to back for instructions that benefit according to the target-specific shouldScheduleAdjacent predicate function.

Definition at line 187 of file MacroFusion.cpp.

References EnableMacroFusion, and shouldScheduleAdjacent().

Referenced by createX86MacroFusionDAGMutation().

◆ createBreakCriticalEdgesPass()

FunctionPass* llvm::createBreakCriticalEdgesPass ( )

◆ createBreakFalseDeps()

FunctionPass * llvm::createBreakFalseDeps ( )

◆ createBURRListDAGScheduler()

ScheduleDAGSDNodes * llvm::createBURRListDAGScheduler ( SelectionDAGISel IS,
CodeGenOpt::Level  OptLevel 
)

createBURRListDAGScheduler - This creates a bottom up register usage reduction list scheduler.

Definition at line 3092 of file ScheduleDAGRRList.cpp.

References llvm::TargetSubtargetInfo::getInstrInfo(), llvm::TargetSubtargetInfo::getRegisterInfo(), llvm::MachineFunction::getSubtarget(), llvm::SelectionDAGISel::MF, TII, and TRI.

Referenced by createDefaultScheduler(), and llvm::RegisterScheduler::setListener().

◆ createCalledValuePropagationPass()

ModulePass* llvm::createCalledValuePropagationPass ( )

createCalledValuePropagationPass - Attach metadata to indirct call sites indicating the set of functions they may target at run-time.

Referenced by LLVMAddCalledValuePropagationPass(), and llvm::PassManagerBuilder::populateModulePassManager().

◆ createCallGraphDOTPrinterPass()

ModulePass * llvm::createCallGraphDOTPrinterPass ( )

Definition at line 90 of file CallPrinter.cpp.

◆ createCallGraphViewerPass()

ModulePass* llvm::createCallGraphViewerPass ( )

◆ createCallSiteSplittingPass()

callsite Call site false FunctionPass * llvm::createCallSiteSplittingPass ( )

◆ createCanonicalizeAliasesPass()

ModulePass * llvm::createCanonicalizeAliasesPass ( )

◆ createCFGOnlyPrinterLegacyPassPass()

FunctionPass * llvm::createCFGOnlyPrinterLegacyPassPass ( )

Definition at line 198 of file CFGPrinter.cpp.

◆ createCFGPrinterLegacyPassPass()

FunctionPass * llvm::createCFGPrinterLegacyPassPass ( )

Definition at line 194 of file CFGPrinter.cpp.

◆ createCFGSimplificationPass()

Simplify the false FunctionPass * llvm::createCFGSimplificationPass ( unsigned  Threshold = 1,
bool  ForwardSwitchCond = false,
bool  ConvertSwitch = false,
bool  KeepLoops = true,
bool  SinkCommon = false,
std::function< bool(const Function &)>  Ftor = nullptr 
)

◆ createCFIInstrInserter()

FunctionPass* llvm::createCFIInstrInserter ( )

Creates CFI Instruction Inserter pass.

See also
CFIInstrInserter.cpp

Referenced by llvm::X86TargetMachine::createPassConfig().

◆ createCFLAndersAAWrapperPass()

ImmutablePass* llvm::createCFLAndersAAWrapperPass ( )

◆ createCFLSteensAAWrapperPass()

ImmutablePass* llvm::createCFLSteensAAWrapperPass ( )

◆ createCGSCCToFunctionPassAdaptor()

template<typename FunctionPassT >
CGSCCToFunctionPassAdaptor<FunctionPassT> llvm::createCGSCCToFunctionPassAdaptor ( FunctionPassT  Pass)

A function to deduce a function pass type and wrap it in the templated adaptor.

Definition at line 687 of file CGSCCPassManager.h.

Referenced by llvm::PassBuilder::buildFunctionSimplificationPipeline(), and llvm::PassBuilder::buildModuleSimplificationPipeline().

◆ createCleanupLocalDynamicTLSPass()

FunctionPass * llvm::createCleanupLocalDynamicTLSPass ( )

This pass combines multiple accesses to local-dynamic TLS variables so that the TLS base address for the module is only fetched once per execution path through the function.

Definition at line 7628 of file X86InstrInfo.cpp.

Referenced by llvm::X86TargetMachine::createPassConfig().

◆ createCodeGenPreparePass()

Optimize for code false FunctionPass * llvm::createCodeGenPreparePass ( )

createCodeGenPreparePass - Transform the code to expose more pattern matching during instruction selection.

Definition at line 391 of file CodeGenPrepare.cpp.

References llvm::PHINode::addIncoming(), all_of(), assert(), llvm::SmallVectorTemplateCommon< T >::begin(), llvm::LoopBase< BlockT, LoopT >::begin(), llvm::BasicBlock::begin(), llvm::Function::begin(), llvm::AMDGPUISD::BFI, bypassSlowDivision(), ConstantFoldTerminator(), llvm::SmallPtrSetImpl< PtrType >::count(), dbgs(), DeleteDeadBlock(), DisableBranchOpts, DisableGCOpts, DisablePreheaderProtect, dyn_cast(), E, llvm::SetVector< T, SmallVector< T, N >, SmallDenseSet< T, N > >::empty(), EnableTypePromotionMerge, llvm::SmallVectorTemplateCommon< T >::end(), llvm::LoopBase< BlockT, LoopT >::end(), llvm::Function::end(), llvm::BasicBlock::eraseFromParent(), F(), FreqRatioToSkipMerge, llvm::Module::getDataLayout(), llvm::BasicBlock::getFirstNonPHIOrDbg(), llvm::BlockFrequency::getFrequency(), llvm::PHINode::getIncomingBlock(), llvm::PHINode::getIncomingValue(), llvm::ilist_node_impl< OptionsT >::getIterator(), llvm::LoopBase< BlockT, LoopT >::getLoopPreheader(), llvm::ilist_node_with_parent< NodeTy, ParentTy, Options >::getNextNode(), llvm::PHINode::getNumIncomingValues(), llvm::Instruction::getParent(), llvm::GlobalValue::getParent(), llvm::BasicBlock::getSinglePredecessor(), llvm::BasicBlock::getSingleSuccessor(), llvm::BranchInst::getSuccessor(), llvm::BasicBlock::getTerminator(), llvm::BasicBlock::getUniquePredecessor(), llvm::BasicBlock::hasAddressTaken(), llvm::ProfileSummaryInfo::hasHugeWorkingSetSize(), I, llvm::ARM_PROC::IE, llvm::SetVector< T, SmallVector< T, N >, SmallDenseSet< T, N > >::insert(), llvm::SmallPtrSetImpl< PtrType >::insert(), llvm::BranchInst::isConditional(), llvm::ProfileSummaryInfo::isFunctionColdInCallGraph(), llvm::ProfileSummaryInfo::isFunctionHotInCallGraph(), isStatepoint(), llvm::BranchInst::isUnconditional(), LLVM_DEBUG, make_range(), MergeBlockIntoPredecessor(), llvm::Function::optForSize(), llvm::BasicBlock::phis(), llvm::SetVector< T, SmallVector< T, N >, SmallDenseSet< T, N > >::pop_back_val(), pred_begin(), pred_end(), ProfileGuidedSectionPrefix, llvm::SmallVectorTemplateBase< T >::push_back(), llvm::Value::replaceAllUsesWith(), runOnFunction(), llvm::Function::setSectionPrefix(), SplitIndirectBrCriticalEdges(), succ_begin(), succ_end(), llvm::SystemZISD::TM, TRI, llvm::Value::users(), and llvm::NVPTX::PTXLdStInstCode::V2.

Referenced by llvm::TargetPassConfig::addCodeGenPrepare().

◆ createCOFFAsmParser()

MCAsmParserExtension * llvm::createCOFFAsmParser ( )

Definition at line 862 of file COFFAsmParser.cpp.

◆ createConstantHoistingPass()

Constant false FunctionPass * llvm::createConstantHoistingPass ( )

◆ createConstantMergePass()

ModulePass* llvm::createConstantMergePass ( )

createConstantMergePass - This function returns a new pass that merges duplicate global constants together into a single constant that is shared.

This is useful because some passes (ie TraceValues) insert a lot of string constants into the program, regardless of whether or not they duplicate an existing string.

Referenced by LLVMAddConstantMergePass(), and llvm::PassManagerBuilder::populateModulePassManager().

◆ createConstantPropagationPass()

Simple constant false FunctionPass * llvm::createConstantPropagationPass ( )

◆ createControlHeightReductionLegacyPass()

Reduce control height in the hot false FunctionPass * llvm::createControlHeightReductionLegacyPass ( )

◆ createCopyConstrainDAGMutation()

std::unique_ptr< ScheduleDAGMutation > llvm::createCopyConstrainDAGMutation ( const TargetInstrInfo TII,
const TargetRegisterInfo TRI 
)

Definition at line 1678 of file MachineScheduler.cpp.

References llvm::ScheduleDAGMI::addEdge(), llvm::SDep::Anti, llvm::cl::apply(), assert(), llvm::SmallVectorTemplateCommon< T >::begin(), llvm::LiveRange::begin(), llvm::ScheduleDAGInstrs::begin(), llvm::LiveRange::beginIndex(), llvm::ScheduleDAGMI::canAddEdge(), llvm::SDep::Data, dbgs(), llvm::VNInfo::def, E, llvm::sys::path::end(), llvm::SmallVectorTemplateCommon< T >::end(), llvm::LiveRange::end(), llvm::ScheduleDAGInstrs::end(), llvm::LiveRange::endIndex(), llvm::LiveRange::find(), llvm::SUnit::getInstr(), llvm::LiveIntervals::getInstructionFromIndex(), llvm::LiveIntervals::getInstructionIndex(), llvm::LiveIntervals::getInterval(), llvm::SDep::getKind(), llvm::ScheduleDAGMI::getLIS(), llvm::MachineInstr::getOperand(), llvm::SDep::getReg(), llvm::MachineOperand::getReg(), llvm::SDep::getSUnit(), llvm::ScheduleDAGInstrs::getSUnit(), llvm::LiveRange::getVNInfoBefore(), llvm::ScheduleDAGMI::hasVRegLiveness(), I, llvm::MachineInstr::isCopy(), llvm::MachineOperand::isDead(), llvm::LiveRange::isLocal(), llvm::SlotIndex::isSameInstr(), llvm::TargetRegisterInfo::isVirtualRegister(), LLVM_DEBUG, nextIfDebug(), llvm::SUnit::NodeNum, llvm::SUnit::Preds, priorNonDebug(), llvm::SmallVectorTemplateBase< T >::push_back(), llvm::MachineOperand::readsReg(), llvm::SUnit::Succs, llvm::ScheduleDAG::SUnits, TII, TRI, and llvm::SDep::Weak.

Referenced by createGenericSchedLive(), createVLIWMachineSched(), and llvm::PostGenericScheduler::releaseBottomNode().

◆ createCoroCleanupPass()

Pass* llvm::createCoroCleanupPass ( )

Lower all remaining coroutine intrinsics.

Referenced by addCoroutineOpt0Passes(), addCoroutineOptimizerLastPasses(), and LLVMAddCoroCleanupPass().

◆ createCoroEarlyPass()

Pass* llvm::createCoroEarlyPass ( )

Lower coroutine intrinsics that are not needed by later passes.

Referenced by addCoroutineEarlyPasses(), and LLVMAddCoroEarlyPass().

◆ createCoroElidePass()

coro Coroutine frame allocation elision and indirect calls false Pass * llvm::createCoroElidePass ( )

Analyze coroutines use sites, devirtualize resume/destroy calls and elide heap allocation for coroutine frame where possible.

Definition at line 344 of file CoroElide.cpp.

Referenced by addCoroutineOpt0Passes(), addCoroutineScalarOptimizerPasses(), and LLVMAddCoroElidePass().

◆ createCoroSplitPass()

Pass* llvm::createCoroSplitPass ( )

Split up coroutines into multiple functions driving their state machines.

Referenced by addCoroutineOpt0Passes(), addCoroutineSCCPasses(), and LLVMAddCoroSplitPass().

◆ createCorrelatedValuePropagationPass()

correlated Value false Pass * llvm::createCorrelatedValuePropagationPass ( )

◆ createCostModelAnalysisPass()

FunctionPass * llvm::createCostModelAnalysisPass ( )

Definition at line 79 of file CostModel.cpp.

References B, CostKind, F(), print(), runOnFunction(), and llvm::AnalysisUsage::setPreservesAll().

◆ createCrossDSOCFIPass()

ModulePass* llvm::createCrossDSOCFIPass ( )

This pass export CFI checks for use by external modules.

Referenced by llvm::PassManagerBuilder::populateLTOPassManager().

◆ createDAGLinearizer()

llvm::ScheduleDAGSDNodes * llvm::createDAGLinearizer ( SelectionDAGISel IS,
CodeGenOpt::Level  OptLevel 
)

createDAGLinearizer - This creates a "no-scheduling" scheduler which linearize the DAG using topological order.

Definition at line 802 of file ScheduleDAGFast.cpp.

References llvm::SelectionDAGISel::MF.

Referenced by llvm::RegisterScheduler::setListener().

◆ createDarwinAsmParser()

MCAsmParserExtension * llvm::createDarwinAsmParser ( )

Definition at line 1203 of file DarwinAsmParser.cpp.

◆ createDataFlowSanitizerPass()

ModulePass* llvm::createDataFlowSanitizerPass ( const std::vector< std::string > &  ABIListFiles = std::vector< std::string >(),
void *(*)()  getArgTLS = nullptr,
void *(*)()  getRetValTLS = nullptr 
)

◆ createDeadArgEliminationPass()

ModulePass* llvm::createDeadArgEliminationPass ( )

createDeadArgEliminationPass - This pass removes arguments from functions which are not used by the body of the function.

Referenced by LLVMAddDeadArgEliminationPass(), and llvm::PassManagerBuilder::populateModulePassManager().

◆ createDeadArgHackingPass()

ModulePass * llvm::createDeadArgHackingPass ( )

DeadArgHacking pass - Same as DAE, but delete arguments of external functions as well.

This is definitely not safe, and should only be used by bugpoint.

Definition at line 119 of file DeadArgumentElimination.cpp.

References llvm::GlobalObject::addMetadata(), Arg, llvm::CallSiteBase< FunTy, BBTy, ValTy, UserTy, UseTy, InstrTy, CallTy, InvokeTy, IterTy >::arg_begin(), llvm::Function::arg_begin(), llvm::AMDGPU::HSAMD::Kernel::Key::Args, llvm::Function::args(), assert(), llvm::Function::begin(), llvm::Function::copyAttributesFrom(), llvm::Function::Create(), llvm::CallInst::Create(), llvm::InvokeInst::Create(), dyn_cast(), E, llvm::SmallVectorBase::empty(), llvm::Instruction::eraseFromParent(), llvm::Instruction::extractProfTotalWeight(), llvm::FunctionType::get(), llvm::AttributeList::get(), llvm::UndefValue::get(), llvm::CallSiteBase< FunTy, BBTy, ValTy, UserTy, UseTy, InstrTy, CallTy, InvokeTy, IterTy >::getAttributes(), llvm::Function::getBasicBlockList(), llvm::ConstantExpr::getBitCast(), llvm::CallSiteBase< FunTy, BBTy, ValTy, UserTy, UseTy, InstrTy, CallTy, InvokeTy, IterTy >::getCallingConv(), llvm::Instruction::getDebugLoc(), llvm::AttributeList::getFnAttributes(), llvm::Function::getFunctionType(), llvm::CallSiteBase< FunTy, BBTy, ValTy, UserTy, UseTy, InstrTy, CallTy, InvokeTy, IterTy >::getInstruction(), llvm::CallSiteBase< FunTy, BBTy, ValTy, UserTy, UseTy, InstrTy, CallTy, InvokeTy, IterTy >::getOperandBundlesAsDefs(), llvm::AttributeList::getParamAttributes(), llvm::AttributeList::getRetAttributes(), llvm::FunctionType::getReturnType(), llvm::Value::getType(), llvm::GlobalValue::getType(), llvm::Function::hasAddressTaken(), llvm::GlobalValue::hasExactDefinition(), llvm::Function::hasFnAttribute(), llvm::GlobalValue::hasLocalLinkage(), I, llvm::GlobalValue::isDeclaration(), llvm::AttributeList::isEmpty(), llvm::CallInst::isMustTailCall(), llvm::Value::isUsedByMetadata(), llvm::FunctionType::isVarArg(), llvm::Attribute::Naked, llvm::FunctionType::param_begin(), llvm::FunctionType::param_end(), llvm::SmallVectorTemplateBase< T >::push_back(), llvm::SmallVectorTemplateBase< T, bool >::push_back(), llvm::Constant::removeDeadConstantUsers(), llvm::Value::replaceAllUsesWith(), llvm::CallSiteBase< FunTy, BBTy, ValTy, UserTy, UseTy, InstrTy, CallTy, InvokeTy, IterTy >::setAttributes(), llvm::CallSiteBase< FunTy, BBTy, ValTy, UserTy, UseTy, InstrTy, CallTy, InvokeTy, IterTy >::setCallingConv(), llvm::GlobalObject::setComdat(), llvm::SmallVectorBase::size(), llvm::iplist_impl< IntrusiveListT, TraitsT >::splice(), llvm::Value::takeName(), llvm::Value::use_empty(), llvm::Value::uses(), llvm::Intrinsic::vastart, and llvm::RISCVFenceField::W.

◆ createDeadCodeEliminationPass()

FunctionPass * llvm::createDeadCodeEliminationPass ( )

Definition at line 172 of file DCE.cpp.

Referenced by llvm::HexagonTargetMachine::createPassConfig().

◆ createDeadInstEliminationPass()

Pass* llvm::createDeadInstEliminationPass ( )

◆ createDeadStoreEliminationPass()

Dead Store false FunctionPass * llvm::createDeadStoreEliminationPass ( )

◆ createDefaultPBQPRegisterAllocator()

FunctionPass * llvm::createDefaultPBQPRegisterAllocator ( )

PBQPRegisterAllocation Pass - This pass implements the Partitioned Boolean Quadratic Prograaming (PBQP) based register allocator.

Definition at line 941 of file RegAllocPBQP.cpp.

References createPBQPRegisterAllocator().

◆ createDefaultScheduler()

ScheduleDAGSDNodes * llvm::createDefaultScheduler ( SelectionDAGISel IS,
CodeGenOpt::Level  OptLevel 
)

◆ createDelinearizationPass()

FunctionPass* llvm::createDelinearizationPass ( )

◆ createDemandedBitsWrapperPass()

FunctionPass * llvm::createDemandedBitsWrapperPass ( )

Create a demanded bits analysis pass.

Definition at line 476 of file DemandedBits.cpp.

Referenced by llvm::DemandedBitsPrinterPass::DemandedBitsPrinterPass().

◆ createDemoteRegisterToMemoryPass()

FunctionPass * llvm::createDemoteRegisterToMemoryPass ( )

Definition at line 127 of file Reg2Mem.cpp.

Referenced by LLVMAddDemoteMemoryToRegisterPass().

◆ createDependenceAnalysisWrapperPass()

FunctionPass * llvm::createDependenceAnalysisWrapperPass ( )

createDependenceAnalysisPass - This creates an instance of the DependenceAnalysis wrapper pass.

Definition at line 137 of file DependenceAnalysis.cpp.

Referenced by llvm::DependenceAnalysisWrapperPass::DependenceAnalysisWrapperPass().

◆ createDevirtSCCRepeatedPass()

template<typename PassT >
DevirtSCCRepeatedPass<PassT> llvm::createDevirtSCCRepeatedPass ( PassT  Pass,
int  MaxIterations 
)

A function to deduce a function pass type and wrap it in the templated adaptor.

Definition at line 871 of file CGSCCPassManager.h.

References MaxIterations.

Referenced by llvm::PassBuilder::buildModuleSimplificationPipeline().

◆ createDivRemPairsPass()

div rem Hoist decompose integer division and false FunctionPass * llvm::createDivRemPairsPass ( )

◆ createDomOnlyPrinterPass()

FunctionPass * llvm::createDomOnlyPrinterPass ( )

Definition at line 272 of file DomPrinter.cpp.

◆ createDomOnlyViewerPass()

FunctionPass * llvm::createDomOnlyViewerPass ( )

Definition at line 280 of file DomPrinter.cpp.

◆ createDomPrinterPass()

FunctionPass* llvm::createDomPrinterPass ( )

◆ createDomViewerPass()

FunctionPass * llvm::createDomViewerPass ( )

Definition at line 276 of file DomPrinter.cpp.

◆ createDwarfEHPass()

Prepare DWARF false FunctionPass * llvm::createDwarfEHPass ( )

◆ createEarlyCSEPass()

FunctionPass * llvm::createEarlyCSEPass ( bool  UseMemorySSA = false)

◆ createEfficiencySanitizerPass()

ModulePass * llvm::createEfficiencySanitizerPass ( const EfficiencySanitizerOptions Options = EfficiencySanitizerOptions())

Definition at line 240 of file EfficiencySanitizer.cpp.

References appendToGlobalCtors(), appendToGlobalDtors(), assert(), checkSanitizerInterfaceFunction(), ClAssumeIntraCacheLine, ClAuxFieldInfo, ClInstrumentFastpath, ClInstrumentLoadsAndStores, ClInstrumentMemIntrinsics, countTrailingZeros(), llvm::BasicBlock::Create(), llvm::Function::Create(), llvm::ReturnInst::Create(), llvm::IRBuilder< T, Inserter >::CreateAdd(), llvm::IRBuilder< T, Inserter >::CreateAnd(), llvm::IRBuilder< T, Inserter >::CreateCall(), llvm::IRBuilder< T, Inserter >::CreateICmpNE(), llvm::IRBuilder< T, Inserter >::CreateIntCast(), llvm::IRBuilder< T, Inserter >::CreateIntToPtr(), llvm::IRBuilder< T, Inserter >::CreateLoad(), llvm::IRBuilder< T, Inserter >::CreateLShr(), llvm::IRBuilder< T, Inserter >::CreateOr(), llvm::IRBuilder< T, Inserter >::CreatePointerCast(), createPrivateGlobalForString(), createSanitizerCtorAndInitFunctions(), llvm::IRBuilder< T, Inserter >::CreateStore(), dyn_cast(), llvm::Instruction::eraseFromParent(), llvm::EfficiencySanitizerOptions::ESAN_CacheFrag, llvm::EfficiencySanitizerOptions::ESAN_WorkingSet, EsanCtorAndDtorPriority, EsanExitName, EsanInitName, EsanModuleCtorName, EsanModuleDtorName, EsanWhichToolName, llvm::GlobalValue::ExternalLinkage, F(), llvm::IntegerType::get(), llvm::ConstantInt::get(), llvm::FunctionType::get(), llvm::StructType::get(), llvm::ConstantAggregateZero::get(), llvm::ArrayType::get(), llvm::ConstantArray::get(), llvm::ConstantStruct::get(), llvm::PointerType::get(), llvm::ConstantPointerNull::get(), llvm::CallBase::getArgOperand(), llvm::Module::getContext(), llvm::Module::getDataLayout(), llvm::StructLayout::getElementOffset(), llvm::StructType::getElementType(), llvm::SequentialType::getElementType(), llvm::ConstantExpr::getGetElementPtr(), llvm::Module::getIdentifiedStructTypes(), llvm::GetElementPtrInst::getIndexedType(), llvm::Type::getInt32PtrTy(), llvm::IRBuilderBase::getInt32Ty(), llvm::Type::getInt32Ty(), llvm::Type::getInt64PtrTy(), llvm::IRBuilderBase::getInt64Ty(), llvm::Type::getInt64Ty(), llvm::IRBuilderBase::getInt8PtrTy(), llvm::Type::getInt8PtrTy(), llvm::DataLayout::getIntPtrType(), llvm::Module::getModuleIdentifier(), llvm::StructType::getName(), llvm::StructType::getNumElements(), llvm::GetElementPtrInst::getNumIndices(), llvm::User::getOperand(), llvm::Module::getOrInsertFunction(), llvm::ConstantExpr::getPointerCast(), llvm::DataLayout::getPrefTypeAlignment(), llvm::ConstantInt::getSExtValue(), llvm::StructLayout::getSizeInBytes(), llvm::GetElementPtrInst::getSourceElementType(), llvm::DataLayout::getStructLayout(), llvm::Module::getTargetTriple(), llvm::Value::getType(), llvm::DataLayout::getTypeAllocSize(), llvm::Type::getTypeID(), llvm::DataLayout::getTypeStoreSizeInBits(), llvm::Type::getVoidTy(), llvm::StructType::hasName(), I, llvm::GetElementPtrInst::idx_begin(), Int32Ty, llvm::GlobalValue::InternalLinkage, llvm::StructType::isLiteral(), llvm::StructType::isOpaque(), llvm::Type::isSized(), llvm_unreachable, llvm::SPII::Load, MaxStructCounterNameSize, maybeMarkSanitizerLibraryCallNoBuiltin(), MI, llvm::Type::print(), llvm::SmallVectorTemplateBase< T >::push_back(), runOnFunction(), llvm::IRBuilderBase::SetInsertPoint(), ShadowParams40, ShadowParams47, ShadowScale, Size, llvm::SmallVectorBase::size(), SplitBlockAndInsertIfThen(), llvm::SPII::Store, llvm::raw_string_ostream::str(), llvm::AMDGPU::HSAMD::Kernel::Arg::Key::TypeName, utostr(), and llvm::GlobalValue::WeakAnyLinkage.

◆ createELFAsmParser()

MCAsmParserExtension * llvm::createELFAsmParser ( )

Definition at line 892 of file ELFAsmParser.cpp.

◆ createELFDwoObjectWriter()

std::unique_ptr< MCObjectWriter > llvm::createELFDwoObjectWriter ( std::unique_ptr< MCELFObjectTargetWriter MOTW,
raw_pwrite_stream OS,
raw_pwrite_stream DwoOS,
bool  IsLittleEndian 
)

◆ createELFObjectWriter()

std::unique_ptr< MCObjectWriter > llvm::createELFObjectWriter ( std::unique_ptr< MCELFObjectTargetWriter MOTW,
raw_pwrite_stream OS,
bool  IsLittleEndian 
)

Construct a new ELF writer instance.

Parameters
MOTW- The target specific ELF writer subclass.
OS- The stream to write to.
Returns
The constructed object writer.

Definition at line 1534 of file ELFObjectWriter.cpp.

Referenced by llvm::MCAsmBackend::createObjectWriter(), and llvm::MCELFObjectTargetWriter::setRSsym().

◆ createELFStreamer()

MCStreamer * llvm::createELFStreamer ( MCContext Ctx,
std::unique_ptr< MCAsmBackend > &&  TAB,
std::unique_ptr< MCObjectWriter > &&  OW,
std::unique_ptr< MCCodeEmitter > &&  CE,
bool  RelaxAll 
)

◆ createEliminateAvailableExternallyPass()

ModulePass* llvm::createEliminateAvailableExternallyPass ( )

This transform is designed to eliminate available external globals (functions or global variables)

Referenced by llvm::PassManagerBuilder::populateModulePassManager().

◆ createEntryExitInstrumenterPass()

post inline ee Instrument function entry exit with calls to e g false FunctionPass * llvm::createEntryExitInstrumenterPass ( )

◆ createExpandMemCmpPass()

Expand false FunctionPass * llvm::createExpandMemCmpPass ( )

Definition at line 863 of file ExpandMemCmp.cpp.

Referenced by llvm::TargetPassConfig::addIRPasses().

◆ createExpandReductionsPass()

expand Expand reduction false FunctionPass * llvm::createExpandReductionsPass ( )

This pass expands the experimental reduction intrinsics into sequences of shuffles.

Definition at line 158 of file ExpandReductions.cpp.

Referenced by llvm::TargetPassConfig::addIRPasses().

◆ createExternalAAWrapperPass()

ImmutablePass* llvm::createExternalAAWrapperPass ( std::function< void(Pass &, Function &, AAResults &)>  Callback)

A wrapper pass around a callback which can be used to populate the AAResults in the AAResultsWrapperPass from an external AA.

The callback provided here will be used each time we prepare an AAResults object, and will receive a reference to the function wrapper pass, the function, and the AAResults object to populate. This should be used when setting up a custom pass pipeline to inject a hook into the AA results.

Referenced by llvm::ExternalAAWrapperPass::getAnalysisUsage(), and llvm::GCNTargetMachine::getTargetTransformInfo().

◆ createFalkorHWPFFixPass()

FunctionPass * llvm::createFalkorHWPFFixPass ( )

◆ createFalkorMarkStridedAccessesPass()

Falkor HW Prefetch false FunctionPass * llvm::createFalkorMarkStridedAccessesPass ( )

◆ createFastDAGScheduler()

llvm::ScheduleDAGSDNodes * llvm::createFastDAGScheduler ( SelectionDAGISel IS,
CodeGenOpt::Level  OptLevel 
)

createFastDAGScheduler - This creates a "fast" scheduler.

Definition at line 797 of file ScheduleDAGFast.cpp.

References llvm::SelectionDAGISel::MF.

Referenced by llvm::RegisterScheduler::setListener().

◆ createFastRegisterAllocator()

FunctionPass * llvm::createFastRegisterAllocator ( )

FastRegisterAllocation Pass - This pass register allocates as fast as possible.

It is best suited for debug code where live ranges are short.

Definition at line 1135 of file RegAllocFast.cpp.

Referenced by llvm::TargetPassConfig::addMachinePasses(), and llvm::TargetPassConfig::createTargetRegisterAllocator().

◆ createFileError() [1/2]

Error llvm::createFileError ( std::string  F,
Error  E 
)
inline

Concatenate a source file path and/or name with an Error.

The resulting Error is unchecked.

Definition at line 1215 of file Error.h.

References F().

◆ createFileError() [2/2]

Error llvm::createFileError ( std::string  F,
ErrorSuccess   
)
delete

◆ createFlattenCFGPass()

Flatten the false FunctionPass * llvm::createFlattenCFGPass ( )

Definition at line 49 of file FlattenCFGPass.cpp.

Referenced by llvm::GCNTargetMachine::getTargetTransformInfo().

◆ createFloat2IntPass()

FunctionPass * llvm::createFloat2IntPass ( )

Definition at line 515 of file Float2Int.cpp.

Referenced by llvm::PassManagerBuilder::populateModulePassManager().

◆ createForceFunctionAttrsLegacyPass()

Pass* llvm::createForceFunctionAttrsLegacyPass ( )

Create a legacy pass manager instance of a pass to force function attrs.

Referenced by llvm::PassManagerBuilder::populateModulePassManager().

◆ createForwardControlFlowIntegrityPass()

ModulePass* llvm::createForwardControlFlowIntegrityPass ( )

createForwardControlFlowIntegrityPass - This pass adds control-flow integrity.

◆ createFreeMachineFunctionPass()

FunctionPass * llvm::createFreeMachineFunctionPass ( )

This pass frees the memory occupied by the MachineFunction.

Definition at line 328 of file MachineModuleInfo.cpp.

Referenced by llvm::LLVMTargetMachine::addPassesToEmitFile(), and llvm::LLVMTargetMachine::addPassesToEmitMC().

◆ createFunctionImportPass()

Pass* llvm::createFunctionImportPass ( )

This pass performs iterative function importing from other modules.

Referenced by INITIALIZE_PASS().

◆ createFunctionInliningPass() [1/4]

Function Integration false Pass * llvm::createFunctionInliningPass ( )

createFunctionInliningPass - Return a new pass object that uses a heuristic to inline direct function calls to small functions.

The Threshold can be passed directly, or asked to be computed from the given optimization and size optimization arguments.

The -inline-threshold command line option takes precedence over the threshold given here.

Definition at line 98 of file InlineSimple.cpp.

Referenced by LLVMAddFunctionInliningPass(), LLVMPassManagerBuilderPopulateLTOPassManager(), LLVMPassManagerBuilderUseInlinerWithThreshold(), llvm::LTOCodeGenerator::optimize(), and llvm::PassManagerBuilder::populateFunctionPassManager().

◆ createFunctionInliningPass() [2/4]

Pass * llvm::createFunctionInliningPass ( int  Threshold)

Definition at line 100 of file InlineSimple.cpp.

References getInlineParams().

◆ createFunctionInliningPass() [3/4]

Pass * llvm::createFunctionInliningPass ( unsigned  OptLevel,
unsigned  SizeOptLevel,
bool  DisableInlineHotCallSite 
)

Definition at line 104 of file InlineSimple.cpp.

References getInlineParams().

◆ createFunctionInliningPass() [4/4]

Pass * llvm::createFunctionInliningPass ( InlineParams Params)

◆ createFunctionToLoopPassAdaptor()

template<typename LoopPassT >
FunctionToLoopPassAdaptor<LoopPassT> llvm::createFunctionToLoopPassAdaptor ( LoopPassT  Pass,
bool  DebugLogging = false 
)

A function to deduce a loop pass type and wrap it in the templated adaptor.

Definition at line 407 of file LoopPassManager.h.

Referenced by llvm::PassBuilder::buildFunctionSimplificationPipeline(), and llvm::PassBuilder::buildModuleOptimizationPipeline().

◆ createGCInfoPrinter()

FunctionPass * llvm::createGCInfoPrinter ( raw_ostream OS)

◆ createGCLoweringPass()

FunctionPass* llvm::createGCLoweringPass ( )

GCLowering Pass - Used by gc.root to perform its default lowering operations.

Referenced by llvm::TargetPassConfig::addIRPasses().

◆ createGCNDPPCombinePass()

FunctionPass * llvm::createGCNDPPCombinePass ( )

Definition at line 117 of file GCNDPPCombine.cpp.

◆ createGCOVProfilerPass()

insert gcov Insert instrumentation for GCOV false ModulePass * llvm::createGCOVProfilerPass ( const GCOVOptions Options = GCOVOptions::getDefault())

Definition at line 173 of file GCOVProfiling.cpp.

◆ createGenericSchedLive()

ScheduleDAGMILive * llvm::createGenericSchedLive ( MachineSchedContext C)

Create the standard converging machine scheduler.

This will be used as the default scheduler if the target does not set a default. Adds default DAG mutations.

This will be used as the default scheduler if the target does not set a default.

Definition at line 3271 of file MachineScheduler.cpp.

References llvm::ScheduleDAGMI::addMutation(), createCopyConstrainDAGMutation(), llvm::ScheduleDAG::TII, and llvm::ScheduleDAG::TRI.

Referenced by llvm::AArch64beTargetMachine::AArch64beTargetMachine(), llvm::ARMBETargetMachine::ARMBETargetMachine(), createConveringSched(), llvm::X86TargetMachine::getTargetTransformInfo(), llvm::GCNTargetMachine::getTargetTransformInfo(), and llvm::PostGenericScheduler::releaseBottomNode().

◆ createGenericSchedPostRA()

ScheduleDAGMI * llvm::createGenericSchedPostRA ( MachineSchedContext C)

◆ createGenericToNVVMPass()

ModulePass * llvm::createGenericToNVVMPass ( )

◆ createGlobalDCEPass()

ModulePass* llvm::createGlobalDCEPass ( )

createGlobalDCEPass - This transform is designed to eliminate unreachable internal globals (functions or global variables)

Referenced by llvm::AMDGPUTargetMachine::adjustPassManager(), LLVMAddGlobalDCEPass(), and llvm::PassManagerBuilder::populateModulePassManager().

◆ createGlobalMergePass()

Pass * llvm::createGlobalMergePass ( const TargetMachine TM,
unsigned  MaximalOffset,
bool  OnlyOptimizeForSize = false,
bool  MergeExternalByDefault = false 
)

GlobalMerge - This pass merges internal (by default) globals into structs to enable reuse of a base pointer by indexed addressing modes.

It can also be configured to focus on size optimizations only.

Definition at line 676 of file GlobalMerge.cpp.

References llvm::cl::BOU_TRUE, llvm::cl::BOU_UNSET, and EnableGlobalMergeOnExternal.

Referenced by llvm::AArch64TargetMachine::createPassConfig(), and llvm::ARMBaseTargetMachine::createPassConfig().

◆ createGlobalOptimizerPass()

Global Variable false ModulePass * llvm::createGlobalOptimizerPass ( )

createGlobalOptimizerPass - This function returns a new pass that optimizes non-address taken internal globals.

Definition at line 3028 of file GlobalOpt.cpp.

Referenced by LLVMAddGlobalOptimizerPass(), and llvm::PassManagerBuilder::populateModulePassManager().

◆ createGlobalsAAWrapperPass()

globals Globals Alias true ModulePass * llvm::createGlobalsAAWrapperPass ( )

◆ createGlobalSplitPass()

ModulePass * llvm::createGlobalSplitPass ( )

This pass splits globals into pieces for the benefit of whole-program devirtualization and control-flow integrity.

Definition at line 185 of file GlobalSplit.cpp.

Referenced by llvm::PassManagerBuilder::populateModulePassManager().

◆ createGraphFilename()

std::string llvm::createGraphFilename ( const Twine Name,
int &  FD 
)

◆ createGreedyRegisterAllocator()

FunctionPass * llvm::createGreedyRegisterAllocator ( )

Greedy register allocation pass - This pass implements a global register allocator for optimized builds.

Definition at line 594 of file RegAllocGreedy.cpp.

References llvm::AnalysisUsage::addPreserved(), llvm::AnalysisUsage::addRequired(), llvm::TargetRegisterClass::AllocationPriority, assert(), llvm::LiveRange::beginIndex(), llvm::IndexedMap< T, ToIndexT >::clear(), llvm::LiveRange::clear(), llvm::SmallVectorImpl< T >::clear(), llvm::LiveIntervalUnion::Query::collectInterferingVRegs(), dbgs(), llvm::LiveRange::empty(), llvm::LiveRange::endIndex(), llvm::MachineFunctionPass::getAnalysisUsage(), llvm::TargetRegisterInfo::getCostPerUse(), llvm::SlotIndex::getInstrDistance(), llvm::SlotIndexes::getLastIndex(), llvm::TargetRegisterClass::getNumRegs(), llvm::LiveInterval::getSize(), llvm::SlotIndexes::getZeroIndex(), llvm::IndexedMap< T, ToIndexT >::grow(), llvm::LiveRegMatrix::IK_VirtReg, llvm::IndexedMap< T, ToIndexT >::inBounds(), llvm::SetVector< T, SmallVector< T, N >, SmallDenseSet< T, N > >::insert(), llvm::SlotIndex::InstrDist, llvm::LiveIntervalUnion::Query::interferingVRegs(), llvm::AllocationOrder::isHint(), llvm::LiveInterval::isSpillable(), llvm::MCRegisterInfo::DiffListIterator::isValid(), llvm::TargetRegisterInfo::isVirtualRegister(), LLVM_DEBUG, Matrix, max(), MRI, llvm::AllocationOrder::next(), printReg(), llvm::LiveInterval::reg, Reg, llvm::TargetRegisterInfo::reverseLocalAssignment(), llvm::AllocationOrder::rewind(), llvm::AnalysisUsage::setPreservesCFG(), Size, and llvm::LiveInterval::weight.

Referenced by llvm::TargetPassConfig::createTargetRegisterAllocator().

◆ createGuardWideningPass()

guard Widen false loop guard Widen false FunctionPass * llvm::createGuardWideningPass ( )

Definition at line 898 of file GuardWidening.cpp.

◆ createGVExtractionPass()

ModulePass * llvm::createGVExtractionPass ( std::vector< GlobalValue *> &  GVs,
bool  deleteFn = false 
)

createGVExtractionPass - If deleteFn is true, this pass deletes the specified global values.

Otherwise, it deletes as much of the module as possible, except for the global values specified.

Definition at line 159 of file ExtractGV.cpp.

◆ createGVNHoistPass()

gvn Early GVN Hoisting of false FunctionPass * llvm::createGVNHoistPass ( )

◆ createGVNPass()

FunctionPass * llvm::createGVNPass ( bool  NoLoads = false)

Create a legacy GVN pass.

This also allows parameterizing whether or not loads are eliminated by the pass.

Definition at line 2599 of file GVN.cpp.

Referenced by llvm::NVPTXTargetMachine::getTargetTransformInfo(), llvm::GCNTargetMachine::getTargetTransformInfo(), LLVMAddGVNPass(), llvm::PassManagerBuilder::populateFunctionPassManager(), and llvm::PassManagerBuilder::populateModulePassManager().

◆ createGVNSinkPass()

gvn Early GVN sinking of false FunctionPass * llvm::createGVNSinkPass ( )

Definition at line 923 of file GVNSink.cpp.

Referenced by llvm::PassManagerBuilder::populateFunctionPassManager().

◆ createHexagonAsmBackend()

MCAsmBackend * llvm::createHexagonAsmBackend ( const Target T,
const MCSubtargetInfo STI,
const MCRegisterInfo MRI,
const MCTargetOptions Options 
)

◆ createHexagonBitSimplify()

FunctionPass * llvm::createHexagonBitSimplify ( )

◆ createHexagonBranchRelaxation()

FunctionPass * llvm::createHexagonBranchRelaxation ( )

◆ createHexagonCallFrameInformation()

FunctionPass * llvm::createHexagonCallFrameInformation ( )

◆ createHexagonCFGOptimizer()

FunctionPass * llvm::createHexagonCFGOptimizer ( )

◆ createHexagonCommonGEP()

FunctionPass * llvm::createHexagonCommonGEP ( )

◆ createHexagonConstExtenders()

FunctionPass * llvm::createHexagonConstExtenders ( )

◆ createHexagonConstPropagationPass()

FunctionPass * llvm::createHexagonConstPropagationPass ( )

◆ createHexagonCopyToCombine()

FunctionPass * llvm::createHexagonCopyToCombine ( )

◆ createHexagonEarlyIfConversion()

FunctionPass * llvm::createHexagonEarlyIfConversion ( )

◆ createHexagonELFObjectWriter()

std::unique_ptr< MCObjectTargetWriter > llvm::createHexagonELFObjectWriter ( uint8_t  OSABI,
StringRef  CPU 
)

Definition at line 302 of file HexagonELFObjectWriter.cpp.

◆ createHexagonELFStreamer()

MCStreamer * llvm::createHexagonELFStreamer ( Triple const TT,
MCContext Context,
std::unique_ptr< MCAsmBackend MAB,
std::unique_ptr< MCObjectWriter OW,
std::unique_ptr< MCCodeEmitter CE 
)

◆ createHexagonExpandCondsets()

FunctionPass * llvm::createHexagonExpandCondsets ( )

Definition at line 1333 of file HexagonExpandCondsets.cpp.

◆ createHexagonFixupHwLoops()

FunctionPass * llvm::createHexagonFixupHwLoops ( )

◆ createHexagonGenExtract()

FunctionPass * llvm::createHexagonGenExtract ( )

◆ createHexagonGenInsert()

FunctionPass * llvm::createHexagonGenInsert ( )

◆ createHexagonGenMux()

FunctionPass * llvm::createHexagonGenMux ( )

◆ createHexagonGenPredicate()

FunctionPass * llvm::createHexagonGenPredicate ( )

◆ createHexagonHardwareLoops()

FunctionPass * llvm::createHexagonHardwareLoops ( )

Definition at line 374 of file HexagonHardwareLoops.cpp.

References llvm::HexagonInstrInfo::analyzeBranch(), llvm::HexagonInstrInfo::analyzeCompare(), assert(), llvm::LoopBase< BlockT, LoopT >::contains(), dbgs(), E, EQ, F(), llvm::MachineLoop::findLoopControlBlock(), llvm::MachineLoopInfo::findLoopPreheader(), llvm::MachineInstr::getDesc(), llvm::MachineFunction::getFunction(), llvm::LoopBase< BlockT, LoopT >::getHeader(), llvm::LoopBase< BlockT, LoopT >::getLoopLatch(), llvm::MachineOperand::getMBB(), llvm::MachineInstr::getNumOperands(), llvm::MachineInstr::getOpcode(), llvm::MachineInstr::getOperand(), llvm::MachineInstr::getParent(), llvm::HexagonInstrInfo::getPredReg(), llvm::MachineOperand::getReg(), llvm::MachineFunction::getRegInfo(), llvm::MachineFunction::getSubtarget(), llvm::MachineLoop::getTopBlock(), llvm::MachineRegisterInfo::getVRegDef(), I, llvm::MachineBasicBlock::instr_begin(), llvm::MachineBasicBlock::instr_end(), llvm::MCInstrDesc::isAdd(), llvm::MachineInstr::isCompare(), llvm::MachineOperand::isImm(), llvm::MachineOperand::isReg(), Kind, LLVM_DEBUG, llvm::BitmaskEnumDetail::Mask(), llvm::AArch64CC::NE, llvm::MachineBasicBlock::pred_begin(), llvm::MachineBasicBlock::pred_end(), llvm::HexagonInstrInfo::predOpcodeHasNot(), llvm::MachineDominatorTree::properlyDominates(), llvm::SmallVectorTemplateBase< T, bool >::push_back(), Reg, SpecPreheader, std::swap(), and llvm::X86II::TB.

Referenced by llvm::HexagonTargetMachine::createPassConfig(), and createVLIWMachineSched().

◆ createHexagonISelDag()

FunctionPass * llvm::createHexagonISelDag ( HexagonTargetMachine TM,
CodeGenOpt::Level  OptLevel 
)

◆ createHexagonLoopIdiomPass()

Pass * llvm::createHexagonLoopIdiomPass ( )

◆ createHexagonLoopRescheduling()

FunctionPass * llvm::createHexagonLoopRescheduling ( )

◆ createHexagonMCCodeEmitter()

MCCodeEmitter * llvm::createHexagonMCCodeEmitter ( const MCInstrInfo MCII,
const MCRegisterInfo MRI,
MCContext MCT 
)

Definition at line 796 of file HexagonMCCodeEmitter.cpp.

Referenced by LLVMInitializeHexagonTargetMC().

◆ createHexagonMCInstrInfo()

llvm::MCInstrInfo * llvm::createHexagonMCInstrInfo ( )

Definition at line 210 of file HexagonMCTargetDesc.cpp.

References X.

Referenced by LLVMInitializeHexagonTargetMC().

◆ createHexagonMCRegisterInfo()

MCRegisterInfo* llvm::createHexagonMCRegisterInfo ( StringRef  TT)

◆ createHexagonNewValueJump()

FunctionPass * llvm::createHexagonNewValueJump ( )

◆ createHexagonOptAddrMode()

FunctionPass * llvm::createHexagonOptAddrMode ( )

◆ createHexagonOptimizeSZextends()

FunctionPass * llvm::createHexagonOptimizeSZextends ( )

◆ createHexagonPacketizer()

FunctionPass * llvm::createHexagonPacketizer ( bool  Minimal)

◆ createHexagonPeephole()

FunctionPass * llvm::createHexagonPeephole ( )

◆ createHexagonRDFOpt()

FunctionPass * llvm::createHexagonRDFOpt ( )

◆ createHexagonSplitConst32AndConst64()

FunctionPass * llvm::createHexagonSplitConst32AndConst64 ( )

◆ createHexagonSplitDoubleRegs()

FunctionPass * llvm::createHexagonSplitDoubleRegs ( )

◆ createHexagonStoreWidening()

FunctionPass * llvm::createHexagonStoreWidening ( )

◆ createHexagonTargetTransformInfoPass()

ImmutablePass* llvm::createHexagonTargetTransformInfoPass ( const HexagonTargetMachine TM)

Creates a Hexagon-specific Target Transformation Info pass.

◆ createHexagonVectorLoopCarriedReusePass()

Pass * llvm::createHexagonVectorLoopCarriedReusePass ( )

◆ createHexagonVectorPrint()

FunctionPass * llvm::createHexagonVectorPrint ( )

◆ createHexagonVExtract()

FunctionPass * llvm::createHexagonVExtract ( )

◆ createHotColdSplittingPass()

Hot Cold false ModulePass * llvm::createHotColdSplittingPass ( )

createHotColdSplittingPass - This pass outlines cold blocks into a separate function(s).

Definition at line 641 of file HotColdSplitting.cpp.

Referenced by llvm::PassManagerBuilder::populateModulePassManager().

◆ createHWAddressSanitizerPass()

HWAddressSanitizer false FunctionPass * llvm::createHWAddressSanitizerPass ( bool  CompileKernel = false,
bool  Recover = false 
)

◆ createHybridListDAGScheduler()

ScheduleDAGSDNodes * llvm::createHybridListDAGScheduler ( SelectionDAGISel IS,
CodeGenOpt::Level  OptLevel 
)

createHybridListDAGScheduler - This creates a bottom up register pressure aware list scheduler that make use of latency information to avoid stalls for long latency instructions in low register pressure mode.

In high register pressure mode it schedules to reduce register pressure.

Definition at line 3120 of file ScheduleDAGRRList.cpp.

References llvm::TargetSubtargetInfo::getInstrInfo(), llvm::TargetSubtargetInfo::getRegisterInfo(), llvm::MachineFunction::getSubtarget(), llvm::SelectionDAGISel::MF, TII, llvm::SelectionDAGISel::TLI, and TRI.

Referenced by createDefaultScheduler(), and llvm::RegisterScheduler::setListener().

◆ createIfConverter()

FunctionPass * llvm::createIfConverter ( std::function< bool(const MachineFunction &)>  Ftor)

Definition at line 2225 of file IfConversion.cpp.

Referenced by llvm::ARMBaseTargetMachine::createPassConfig().

◆ createILPListDAGScheduler()

ScheduleDAGSDNodes * llvm::createILPListDAGScheduler ( SelectionDAGISel IS,
CodeGenOpt::Level  OptLevel 
)

createILPListDAGScheduler - This creates a bottom up register pressure aware list scheduler that tries to increase instruction level parallelism in low register pressure mode.

In high register pressure mode it schedules to reduce register pressure.

Definition at line 3136 of file ScheduleDAGRRList.cpp.

References llvm::TargetSubtargetInfo::getInstrInfo(), llvm::TargetSubtargetInfo::getRegisterInfo(), llvm::MachineFunction::getSubtarget(), llvm::SelectionDAGISel::MF, TII, llvm::SelectionDAGISel::TLI, and TRI.

Referenced by createDefaultScheduler(), and llvm::RegisterScheduler::setListener().

◆ createIndirectBrExpandPass()

FunctionPass* llvm::createIndirectBrExpandPass ( )

◆ createInductiveRangeCheckEliminationPass()

Pass * llvm::createInductiveRangeCheckEliminationPass ( )

Definition at line 1877 of file InductiveRangeCheckElimination.cpp.

◆ createIndVarSimplifyPass()

Induction Variable false Pass * llvm::createIndVarSimplifyPass ( )

◆ createInferAddressSpacesPass()

FunctionPass * llvm::createInferAddressSpacesPass ( )

◆ createInferFunctionAttrsLegacyPass()

Infer set function false Pass * llvm::createInferFunctionAttrsLegacyPass ( )

Create a legacy pass manager instance of a pass to infer function attributes.

Definition at line 77 of file InferFunctionAttrs.cpp.

Referenced by llvm::PassManagerBuilder::populateModulePassManager().

◆ CreateInfoOutputFile()

std::unique_ptr< raw_fd_ostream > llvm::CreateInfoOutputFile ( )

◆ createInlineSpiller()

Spiller * llvm::createInlineSpiller ( MachineFunctionPass pass,
MachineFunction mf,
VirtRegMap vrm 
)

Create and return a spiller that will insert spill code directly instead of deferring though VirtRegMap.

Definition at line 237 of file InlineSpiller.cpp.

Referenced by normalizePBQPSpillWeight(), and llvm::Spiller::postOptimization().

◆ createInstCountPass()

FunctionPass* llvm::createInstCountPass ( )

◆ createInstrProfilingLegacyPass()

Frontend instrumentation based coverage false ModulePass * llvm::createInstrProfilingLegacyPass ( const InstrProfOptions Options = InstrProfOptions())

Insert frontend instrumentation based profiling.

Definition at line 368 of file InstrProfiling.cpp.

Referenced by llvm::PassManagerBuilder::populateFunctionPassManager().

◆ createInstructionCombiningPass()

FunctionPass * llvm::createInstructionCombiningPass ( bool  ExpensiveCombines = true)

◆ createInstructionNamerPass()

FunctionPass* llvm::createInstructionNamerPass ( )

◆ createInstSimplifyLegacyPass()

Remove redundant false FunctionPass * llvm::createInstSimplifyLegacyPass ( )

Create a legacy pass that does instruction simplification on each instruction in a function.

Definition at line 125 of file InstSimplifyPass.cpp.

Referenced by llvm::PassManagerBuilder::populateModulePassManager().

◆ createInterleavedAccessPass()

Lower interleaved memory accesses to target specific false FunctionPass * llvm::createInterleavedAccessPass ( )

InterleavedAccess Pass - This pass identifies and matches interleaved memory accesses to target specific intrinsics.

Definition at line 135 of file InterleavedAccessPass.cpp.

Referenced by llvm::AArch64TargetMachine::createPassConfig(), llvm::X86TargetMachine::createPassConfig(), and llvm::ARMBaseTargetMachine::createPassConfig().

◆ createInterleavedLoadCombinePass()

Combine interleaved loads into wide loads and shufflevector false FunctionPass * llvm::createInterleavedLoadCombinePass ( )

InterleavedLoadCombines Pass - This pass identifies interleaved loads and combines them into wide loads detectable by InterleavedAccessPass.

Definition at line 1356 of file InterleavedLoadCombinePass.cpp.

References P.

Referenced by llvm::AArch64TargetMachine::createPassConfig().

◆ createInterleaveMask()

Constant * llvm::createInterleaveMask ( IRBuilder<> &  Builder,
unsigned  VF,
unsigned  NumVecs 
)

Create an interleave shuffle mask.

This function creates a shuffle mask for interleaving NumVecs vectors of vectorization factor VF into a single wide vector. The mask is of the form:

<0, VF, VF * 2, ..., VF * (NumVecs - 1), 1, VF + 1, VF * 2 + 1, ...>

For example, the mask for VF = 4 and NumVecs = 2 is:

<0, 4, 1, 5, 2, 6, 3, 7>.

Definition at line 629 of file VectorUtils.cpp.

References llvm::ConstantVector::get(), llvm::IRBuilderBase::getInt32(), llvm::BitmaskEnumDetail::Mask(), and llvm::SmallVectorTemplateBase< T >::push_back().

Referenced by llvm::InnerLoopVectorizer::vectorizeInterleaveGroup().

◆ createInternalizePass() [1/2]

ModulePass * llvm::createInternalizePass ( std::function< bool(const GlobalValue &)>  MustPreserveGV)

createInternalizePass - This pass loops over all of the functions in the input module, internalizing all globals (functions and variables) it can.

Before internalizing a symbol, the callback MustPreserveGV is invoked and gives to the client the ability to prevent internalizing specific symbols.

The symbol in DSOList are internalized if it is safe to drop them from the symbol table.

Note that commandline options that are used with the above function are not used now!

Definition at line 291 of file Internalize.cpp.

Referenced by llvm::AMDGPUTargetMachine::adjustPassManager(), and LLVMAddInternalizePass().

◆ createInternalizePass() [2/2]

ModulePass* llvm::createInternalizePass ( )

createInternalizePass - Same as above, but with an empty exportList.

◆ createIPConstantPropagationPass()

ModulePass* llvm::createIPConstantPropagationPass ( )

createIPConstantPropagationPass - This pass propagates constants from call sites into the bodies of functions.

Referenced by LLVMAddIPConstantPropagationPass().

◆ createIPSCCPPass()

Interprocedural Sparse Conditional Constant false ModulePass * llvm::createIPSCCPPass ( )

createIPSCCPPass - This pass propagates constants from call sites into the bodies of functions, and keeps track of whether basic blocks are executable in the process.

Definition at line 89 of file SCCP.cpp.

Referenced by LLVMAddIPSCCPPass(), and llvm::PassManagerBuilder::populateModulePassManager().

◆ createIVUsersPass()

iv Induction Variable true Pass * llvm::createIVUsersPass ( )

Definition at line 55 of file IVUsers.cpp.

Referenced by llvm::IVUsers::isIVUserOrOperand().

◆ createJumpInstrTablesPass()

ModulePass* llvm::createJumpInstrTablesPass ( )

createJumpInstrTables - This pass creates jump-instruction tables.

◆ createJumpThreadingPass()

jump Jump false FunctionPass * llvm::createJumpThreadingPass ( int  Threshold = -1)

◆ createLAAPass()

Pass* llvm::createLAAPass ( )

Definition at line 2395 of file LoopAccessAnalysis.cpp.

◆ createLanaiAsmBackend()

MCAsmBackend * llvm::createLanaiAsmBackend ( const Target T,
const MCSubtargetInfo STI,
const MCRegisterInfo MRI,
const MCTargetOptions Options 
)

◆ createLanaiDelaySlotFillerPass()

FunctionPass * llvm::createLanaiDelaySlotFillerPass ( const LanaiTargetMachine TM)

◆ createLanaiELFObjectWriter()

std::unique_ptr< MCObjectTargetWriter > llvm::createLanaiELFObjectWriter ( uint8_t  OSABI)

Definition at line 91 of file LanaiELFObjectWriter.cpp.

Referenced by adjustFixupValue().

◆ createLanaiISelDag()

FunctionPass * llvm::createLanaiISelDag ( LanaiTargetMachine TM)

Definition at line 332 of file LanaiISelDAGToDAG.cpp.

Referenced by llvm::LanaiTargetMachine::createPassConfig().

◆ createLanaiMCCodeEmitter()

llvm::MCCodeEmitter * llvm::createLanaiMCCodeEmitter ( const MCInstrInfo MCII,
const MCRegisterInfo MRI,
MCContext Ctx 
)

Definition at line 307 of file LanaiMCCodeEmitter.cpp.

Referenced by LLVMInitializeLanaiTargetMC().

◆ createLanaiMemAluCombinerPass()

FunctionPass * llvm::createLanaiMemAluCombinerPass ( )

Definition at line 422 of file LanaiMemAluCombiner.cpp.

Referenced by llvm::LanaiTargetMachine::createPassConfig().

◆ createLanaiSetflagAluCombinerPass()

FunctionPass* llvm::createLanaiSetflagAluCombinerPass ( )

◆ createLazyValueInfoPass()

FunctionPass * llvm::createLazyValueInfoPass ( )

createLazyValueInfoPass - This creates an instance of the LazyValueInfo pass.

Definition at line 59 of file LazyValueInfo.cpp.

◆ createLCSSAPass()

Loop Closed SSA Form false Pass * llvm::createLCSSAPass ( )

Definition at line 439 of file LCSSA.cpp.

◆ createLegacyDivergenceAnalysisPass()

Legacy Divergence true FunctionPass * llvm::createLegacyDivergenceAnalysisPass ( )

Definition at line 287 of file LegacyDivergenceAnalysis.cpp.

◆ createLegacyPMAAResults()

AAResults llvm::createLegacyPMAAResults ( Pass P,
Function F,
BasicAAResult BAR 
)

A helper for the legacy pass manager to create a AAResults object populated to the best of our ability for a particular function when inside of a ModulePass or a CallGraphSCCPass.

If a ModulePass or a CallGraphSCCPass calls createLegacyPMAAResults, it also needs to call addUsedAAAnalyses in getAnalysisUsage.

Definition at line 753 of file AliasAnalysis.cpp.

References DisableBasicAA, llvm::Pass::getAnalysis(), llvm::Pass::getAnalysisIfAvailable(), and llvm::TargetLibraryInfoWrapperPass::getTLI().

Referenced by llvm::ExternalAAWrapperPass::getAnalysisUsage(), and llvm::LegacyAARGetter::operator()().

◆ createLegacyPMBasicAAResult()

BasicAAResult llvm::createLegacyPMBasicAAResult ( Pass P,
Function F 
)

A helper for the legacy pass manager to create a BasicAAResult object populated to the best of our ability for a particular function when inside of a ModulePass or a CallGraphSCCPass.

Definition at line 2029 of file BasicAliasAnalysis.cpp.

References F(), llvm::Pass::getAnalysis(), llvm::Module::getDataLayout(), and llvm::GlobalValue::getParent().

Referenced by llvm::BasicAAWrapperPass::getResult(), and llvm::LegacyAARGetter::operator()().

◆ createLibcall()

LegalizerHelper::LegalizeResult llvm::createLibcall ( MachineIRBuilder MIRBuilder,
RTLIB::Libcall  Libcall,
const CallLowering::ArgInfo Result,
ArrayRef< CallLowering::ArgInfo Args 
)

◆ createLibCallsShrinkWrapPass()

FunctionPass * llvm::createLibCallsShrinkWrapPass ( )

◆ createLICMPass()

Loop Invariant Code false Pass * llvm::createLICMPass ( )

◆ createLintPass()

FunctionPass * llvm::createLintPass ( )

Create a lint pass.

Check a module or function.

Definition at line 730 of file Lint.cpp.

◆ createLoadClusterDAGMutation()

std::unique_ptr< ScheduleDAGMutation > llvm::createLoadClusterDAGMutation ( const TargetInstrInfo TII,
const TargetRegisterInfo TRI 
)

◆ createLoadStoreVectorizerPass()

Vectorize load and store false Pass * llvm::createLoadStoreVectorizerPass ( )

Create a legacy pass manager instance of the LoadStoreVectorizer pass.

Definition at line 246 of file LoadStoreVectorizer.cpp.

References F(), llvm::Function::hasFnAttribute(), llvm::Attribute::NoImplicitFloat, and runOnFunction().

Referenced by llvm::NVPTXTargetMachine::getTargetTransformInfo(), and llvm::GCNTargetMachine::getTargetTransformInfo().

◆ createLoopDataPrefetchPass()

loop data Loop Data false FunctionPass * llvm::createLoopDataPrefetchPass ( )

◆ createLoopDeletionPass()

loop Delete dead false Pass * llvm::createLoopDeletionPass ( )

◆ createLoopDistributePass()

FunctionPass* llvm::createLoopDistributePass ( )

◆ createLoopExtractorPass()

Pass* llvm::createLoopExtractorPass ( )

createLoopExtractorPass - This pass extracts all natural loops from the program into a function if it can.

◆ createLoopGuardWideningPass()

Pass * llvm::createLoopGuardWideningPass ( )

Definition at line 902 of file GuardWidening.cpp.

◆ createLoopIdiomPass()

loop Recognize loop false Pass * llvm::createLoopIdiomPass ( )

◆ createLoopInstSimplifyPass()

loop Simplify instructions in false Pass * llvm::createLoopInstSimplifyPass ( )

◆ createLoopInterchangePass()

loop Interchanges loops for cache false Pass * llvm::createLoopInterchangePass ( )

◆ createLoopLoadEliminationPass()

FunctionPass * llvm::createLoopLoadEliminationPass ( )

◆ createLoopPredicationPass()

loop Loop false Pass * llvm::createLoopPredicationPass ( )

Definition at line 340 of file LoopPredication.cpp.

◆ createLoopRerollPass()

Pass * llvm::createLoopRerollPass ( )

◆ createLoopRotatePass()

loop Rotate false Pass * llvm::createLoopRotatePass ( int  MaxHeaderSize = -1)

◆ createLoopSimplifyCFGPass()

loop Simplify loop false Pass * llvm::createLoopSimplifyCFGPass ( )

◆ createLoopSimplifyPass()

Pass * llvm::createLoopSimplifyPass ( )

◆ createLoopSinkPass()

Pass* llvm::createLoopSinkPass ( )

◆ createLoopStrengthReducePass()

loop Loop Strength false Pass * llvm::createLoopStrengthReducePass ( )

Definition at line 5630 of file LoopStrengthReduce.cpp.

Referenced by llvm::TargetPassConfig::addIRPasses().

◆ createLoopUnrollAndJamPass()

loop unroll and Unroll and Jam false Pass * llvm::createLoopUnrollAndJamPass ( int  OptLevel = 2)

◆ createLoopUnrollPass()

Pass * llvm::createLoopUnrollPass ( int  OptLevel = 2,
bool  OnlyWhenForced = false,
int  Threshold = -1,
int  Count = -1,
int  AllowPartial = -1,
int  Runtime = -1,
int  UpperBound = -1,
int  AllowPeeling = -1 
)

◆ createLoopUnswitchPass()

loop Unswitch false Pass * llvm::createLoopUnswitchPass ( bool  OptimizeForSize = false,
bool  hasBranchDivergence = false 
)

◆ createLoopVectorizePass()

Pass * llvm::createLoopVectorizePass ( bool  InterleaveOnlyWhenForced = false,
bool  VectorizeOnlyWhenForced = false 
)

◆ createLoopVersioningLICMPass()

loop versioning Loop Versioning For false Pass * llvm::createLoopVersioningLICMPass ( )

◆ createLoopVersioningPass()

FunctionPass * llvm::createLoopVersioningPass ( )

Definition at line 323 of file LoopVersioning.cpp.

◆ createLowerAggrCopies()

FunctionPass* llvm::createLowerAggrCopies ( )

◆ createLowerAtomicPass()

Pass* llvm::createLowerAtomicPass ( )

◆ createLowerEmuTLSPass()

ModulePass* llvm::createLowerEmuTLSPass ( )

LowerEmuTLS - This pass generates __emutls_[vt].xyz variables for all TLS variables for the emulated TLS model.

Referenced by llvm::TargetPassConfig::addISelPasses().

◆ createLowerExpectIntrinsicPass()

FunctionPass* llvm::createLowerExpectIntrinsicPass ( )

◆ createLowerGuardIntrinsicPass()

Pass* llvm::createLowerGuardIntrinsicPass ( )

◆ createLowerInvokePass()

FunctionPass * llvm::createLowerInvokePass ( )

◆ createLowerSwitchPass()

FunctionPass* llvm::createLowerSwitchPass ( )

◆ createLowerTypeTestsPass()

ModulePass* llvm::createLowerTypeTestsPass ( ModuleSummaryIndex ExportSummary,
const ModuleSummaryIndex ImportSummary 
)

This pass lowers type metadata and the llvm.type.test intrinsic to bitsets.

The behavior depends on the summary arguments:

  • If ExportSummary is non-null, this pass will export type identifiers to the given summary.
  • Otherwise, if ImportSummary is non-null, this pass will import type identifiers from the given summary.
  • Otherwise it does neither. It is invalid for both ExportSummary and ImportSummary to be non-null.

Referenced by llvm::PassManagerBuilder::populateLTOPassManager(), and llvm::PassManagerBuilder::populateThinLTOPassManager().

◆ createLVMissedAnalysis()

OptimizationRemarkAnalysis llvm::createLVMissedAnalysis ( const char PassName,
StringRef  RemarkName,
Loop TheLoop,
Instruction I = nullptr 
)

Create an analysis remark that explains why vectorization failed.

PassName is the name of the pass (e.g. can be AlwaysPrint). RemarkName is the identifier for the remark. If I is passed it is an instruction that prevents vectorization. Otherwise TheLoop is used for the location of the remark.

Returns
the remark object that can be streamed to.

Definition at line 49 of file LoopVectorizationLegality.cpp.

References llvm::Instruction::getDebugLoc(), llvm::LoopBase< BlockT, LoopT >::getHeader(), llvm::Instruction::getParent(), llvm::Loop::getStartLoc(), isPowerOf2_32(), Kind, MaxInterleaveFactor, and llvm::VectorizerParams::MaxVectorWidth.

Referenced by llvm::LoopVectorizationCostModel::blockNeedsPredication(), llvm::LoopVectorizationLegality::hasFunNoNaNAttr(), and llvm::LoopVectorizePass::processLoop().

◆ createMachineFunctionPrinterPass()

MachineFunctionPass* llvm::createMachineFunctionPrinterPass ( raw_ostream OS,
const std::string &  Banner = "" 
)

MachineFunctionPrinter pass - This pass prints out the machine function to the given stream as a debugging tool.

Referenced by llvm::TargetPassConfig::addPrintPass(), and INITIALIZE_PASS().

◆ createMachineOutlinerPass()

ModulePass * llvm::createMachineOutlinerPass ( bool  RunOnAllFunctions = true)

This pass performs outlining on machine instructions directly before printing assembly.

Definition at line 939 of file MachineOutliner.cpp.

Referenced by llvm::TargetPassConfig::addMachinePasses().

◆ createMachineRegionInfoPass()

FunctionPass* llvm::createMachineRegionInfoPass ( )

◆ createMachineVerifierPass()

FunctionPass* llvm::createMachineVerifierPass ( const std::string &  Banner)

createMachineVerifierPass - This pass verifies cenerated machine code instructions for correctness.

Referenced by llvm::TargetPassConfig::addVerifyPass().

◆ createMachObjectWriter()

std::unique_ptr< MCObjectWriter > llvm::createMachObjectWriter ( std::unique_ptr< MCMachObjectTargetWriter MOTW,
raw_pwrite_stream OS,
bool  IsLittleEndian 
)

Construct a new Mach-O writer instance.

This routine takes ownership of the target writer subclass.

Parameters
MOTW- The target specific Mach-O writer subclass.
OS- The stream to write to.
Returns
The constructed object writer.

Definition at line 1030 of file MachObjectWriter.cpp.

Referenced by llvm::MachObjectWriter::addRelocation(), and llvm::MCAsmBackend::createObjectWriter().

◆ createMachOStreamer()

MCStreamer * llvm::createMachOStreamer ( MCContext Ctx,
std::unique_ptr< MCAsmBackend > &&  TAB,
std::unique_ptr< MCObjectWriter > &&  OW,
std::unique_ptr< MCCodeEmitter > &&  CE,
bool  RelaxAll,
bool  DWARFMustBeAtTheEnd,
bool  LabelSections = false 
)

◆ createMacroFusionDAGMutation()

std::unique_ptr< ScheduleDAGMutation > llvm::createMacroFusionDAGMutation ( ShouldSchedulePredTy  shouldScheduleAdjacent)

Create a DAG scheduling mutation to pair instructions back to back for instructions that benefit according to the target-specific shouldScheduleAdjacent predicate function.

Definition at line 179 of file MacroFusion.cpp.

References EnableMacroFusion, and shouldScheduleAdjacent().

Referenced by createAArch64MacroFusionDAGMutation(), createAMDGPUMacroFusionDAGMutation(), and createARMMacroFusionDAGMutation().

◆ createMCAsmParser()

MCAsmParser * llvm::createMCAsmParser ( SourceMgr SM,
MCContext C,
MCStreamer Out,
const MCAsmInfo MAI,
unsigned  CB = 0 
)

Create an MCAsmParser instance.

Definition at line 5932 of file AsmParser.cpp.

Referenced by llvm::MCAsmParser::clearPendingErrors(), and srcMgrDiagHandler().

◆ createMCRelocationInfo()

MCRelocationInfo * llvm::createMCRelocationInfo ( const Triple TT,
MCContext Ctx 
)

◆ createMCSymbolizer()

MCSymbolizer * llvm::createMCSymbolizer ( const Triple TT,
LLVMOpInfoCallback  GetOpInfo,
LLVMSymbolLookupCallback  SymbolLookUp,
void *  DisInfo,
MCContext Ctx,
std::unique_ptr< MCRelocationInfo > &&  RelInfo 
)

◆ createMemCpyLoopKnownSize()

void llvm::createMemCpyLoopKnownSize ( Instruction InsertBefore,
Value SrcAddr,
Value DstAddr,
ConstantInt CopyLen,
unsigned  SrcAlign,
unsigned  DestAlign,
bool  SrcIsVolatile,
bool  DstIsVolatile,
const TargetTransformInfo TTI 
)

◆ createMemCpyLoopUnknownSize()

void llvm::createMemCpyLoopUnknownSize ( Instruction InsertBefore,
Value SrcAddr,
Value DstAddr,
Value CopyLen,
unsigned  SrcAlign,
unsigned  DestAlign,
bool  SrcIsVolatile,
bool  DstIsVolatile,
const TargetTransformInfo TTI 
)

◆ createMemCpyOptPass()

FunctionPass * llvm::createMemCpyOptPass ( )

◆ createMemDepPrinter()

print Print MemDeps of true FunctionPass * llvm::createMemDepPrinter ( )

◆ createMemDerefPrinter()

print Memory Dereferenciblity of pointers in true FunctionPass * llvm::createMemDerefPrinter ( )

◆ createMemorySanitizerLegacyPassPass()

MemorySanitizer false FunctionPass * llvm::createMemorySanitizerLegacyPassPass ( int  TrackOrigins = 0,
bool  Recover = false,
bool  EnableKmsan = false 
)

Definition at line 643 of file MemorySanitizer.cpp.

◆ createMergedLoadStoreMotionPass()

FunctionPass * llvm::createMergedLoadStoreMotionPass ( )

◆ createMergeFunctionsPass()

ModulePass * llvm::createMergeFunctionsPass ( )

◆ createMergeICmpsPass()

Merge contiguous icmps into a false Pass * llvm::createMergeICmpsPass ( )

Definition at line 870 of file MergeICmps.cpp.

Referenced by llvm::TargetPassConfig::addIRPasses().

◆ createMetaRenamerPass()

Assign new names to false ModulePass * llvm::createMetaRenamerPass ( )

Definition at line 176 of file MetaRenamer.cpp.

◆ createMicroMipsSizeReducePass()

FunctionPass * llvm::createMicroMipsSizeReducePass ( )

Returns an instance of the MicroMips size reduction pass.

Definition at line 796 of file MicroMipsSizeReduction.cpp.

Referenced by llvm::MipsTargetMachine::getTargetTransformInfo().

◆ createMinMaxOp()

Value * llvm::createMinMaxOp ( IRBuilder<> &  Builder,
RecurrenceDescriptor::MinMaxRecurrenceKind  RK,
Value Left,
Value Right 
)

◆ createMips16FrameLowering()

const MipsFrameLowering * llvm::createMips16FrameLowering ( const MipsSubtarget ST)

◆ createMips16HardFloatPass()

ModulePass * llvm::createMips16HardFloatPass ( )

Definition at line 535 of file Mips16HardFloat.cpp.

References Mips16HardFloat.

Referenced by llvm::MipsTargetMachine::createPassConfig().

◆ createMips16InstrInfo()

const MipsInstrInfo * llvm::createMips16InstrInfo ( const MipsSubtarget STI)

◆ createMips16ISelDag()

FunctionPass * llvm::createMips16ISelDag ( MipsTargetMachine TM,
CodeGenOpt::Level  OptLevel 
)

◆ createMips16TargetLowering()

const MipsTargetLowering * llvm::createMips16TargetLowering ( const MipsTargetMachine TM,
const MipsSubtarget STI 
)

◆ createMipsAsmBackend()

MCAsmBackend * llvm::createMipsAsmBackend ( const Target T,
const MCSubtargetInfo STI,
const MCRegisterInfo MRI,
const MCTargetOptions Options 
)

◆ createMipsBranchExpansion()

FunctionPass* llvm::createMipsBranchExpansion ( )

◆ createMipsConstantIslandPass()

FunctionPass * llvm::createMipsConstantIslandPass ( )

Returns a pass that converts branches to long branches.

Definition at line 1690 of file MipsConstantIslandPass.cpp.

Referenced by llvm::MipsTargetMachine::getTargetTransformInfo().

◆ createMipsDelaySlotFillerPass()

FunctionPass * llvm::createMipsDelaySlotFillerPass ( )

createMipsDelaySlotFillerPass - Returns a pass that fills in delay slots in Mips MachineFunctions

Definition at line 934 of file MipsDelaySlotFiller.cpp.

Referenced by llvm::MipsTargetMachine::getTargetTransformInfo().

◆ createMipsELFObjectWriter()

std::unique_ptr< MCObjectTargetWriter > llvm::createMipsELFObjectWriter ( const Triple TT,
bool  IsN32 
)

◆ createMipsELFStreamer()

MCELFStreamer * llvm::createMipsELFStreamer ( MCContext Context,
std::unique_ptr< MCAsmBackend MAB,
std::unique_ptr< MCObjectWriter OW,
std::unique_ptr< MCCodeEmitter Emitter,
bool  RelaxAll 
)

Definition at line 116 of file MipsELFStreamer.cpp.

References llvm::MipsELFStreamer::MipsELFStreamer().

Referenced by createMCStreamer().

◆ createMipsExpandPseudoPass()

FunctionPass * llvm::createMipsExpandPseudoPass ( )

createMipsExpandPseudoPass - returns an instance of the pseudo instruction expansion pass.

Definition at line 700 of file MipsExpandPseudo.cpp.

Referenced by llvm::MipsTargetMachine::getTargetTransformInfo().

◆ createMipsInstructionSelector()

InstructionSelector * llvm::createMipsInstructionSelector ( const MipsTargetMachine TM,
MipsSubtarget Subtarget,
MipsRegisterBankInfo RBI 
)

Definition at line 321 of file MipsInstructionSelector.cpp.

Referenced by llvm::MipsSubtarget::MipsSubtarget().

◆ createMipsMCCodeEmitterEB()

MCCodeEmitter * llvm::createMipsMCCodeEmitterEB ( const MCInstrInfo MCII,
const MCRegisterInfo MRI,
MCContext Ctx 
)

Definition at line 45 of file MipsMCCodeEmitter.cpp.

Referenced by LLVMInitializeMipsTargetMC().

◆ createMipsMCCodeEmitterEL()

MCCodeEmitter * llvm::createMipsMCCodeEmitterEL ( const MCInstrInfo MCII,
const MCRegisterInfo MRI,
MCContext Ctx 
)

Definition at line 51 of file MipsMCCodeEmitter.cpp.

Referenced by LLVMInitializeMipsTargetMC().

◆ createMipsModuleISelDagPass()

llvm::FunctionPass * llvm::createMipsModuleISelDagPass ( )

◆ createMipsNaClELFStreamer()

MCELFStreamer * llvm::createMipsNaClELFStreamer ( MCContext Context,
std::unique_ptr< MCAsmBackend TAB,
std::unique_ptr< MCObjectWriter OW,
std::unique_ptr< MCCodeEmitter Emitter,
bool  RelaxAll 
)

Definition at line 263 of file MipsNaClELFStreamer.cpp.

References MIPS_NACL_BUNDLE_ALIGN.

Referenced by createMCStreamer().

◆ createMipsOptimizePICCallPass()

FunctionPass * llvm::createMipsOptimizePICCallPass ( )

Return an OptimizeCall object.

Definition at line 321 of file MipsOptimizePICCall.cpp.

Referenced by llvm::MipsTargetMachine::createPassConfig().

◆ createMipsOs16Pass()

ModulePass * llvm::createMipsOs16Pass ( )

Definition at line 160 of file MipsOs16.cpp.

Referenced by llvm::MipsTargetMachine::createPassConfig().

◆ createMipsPreLegalizeCombiner()

FunctionPass * llvm::createMipsPreLegalizeCombiner ( )

◆ createMipsSEFrameLowering()

const MipsFrameLowering * llvm::createMipsSEFrameLowering ( const MipsSubtarget ST)

◆ createMipsSEInstrInfo()

const MipsInstrInfo * llvm::createMipsSEInstrInfo ( const MipsSubtarget STI)

◆ createMipsSEISelDag()

FunctionPass * llvm::createMipsSEISelDag ( MipsTargetMachine TM,
CodeGenOpt::Level  OptLevel 
)

◆ createMipsSETargetLowering()

const MipsTargetLowering * llvm::createMipsSETargetLowering ( const MipsTargetMachine TM,
const MipsSubtarget STI 
)

◆ createMIRParser()

std::unique_ptr< MIRParser > llvm::createMIRParser ( std::unique_ptr< MemoryBuffer Contents,
LLVMContext Context 
)

This function is another interface to the MIR serialization format parser.

It returns a MIR parser that works with the given memory buffer and that can parse the embedded LLVM IR module and initialize the machine functions by parsing the machine function's state.

Parameters
Contents- The MemoryBuffer containing the machine level IR.
Context- Context which will be used for the parsed LLVM IR module.

Definition at line 915 of file MIRParser.cpp.

References Context, llvm::LLVMContext::diagnose(), llvm::SourceMgr::DK_Error, DS_Error, and llvm::LLVMContext::shouldDiscardValueNames().

Referenced by createMIRParserFromFile().

◆ createMIRParserFromFile()

std::unique_ptr< MIRParser > llvm::createMIRParserFromFile ( StringRef  Filename,
SMDiagnostic Error,
LLVMContext Context 
)

This function is the main interface to the MIR serialization format parser.

It reads in a MIR file and returns a MIR parser that can parse the embedded LLVM IR module and initialize the machine functions by parsing the machine function's state.

Parameters
Filename- The name of the file to parse.
Error- Error result info.
Context- Context which will be used for the parsed LLVM IR module.

Definition at line 902 of file MIRParser.cpp.

References createMIRParser(), llvm::SourceMgr::DK_Error, and llvm::MemoryBuffer::getFileOrSTDIN().

◆ createMLxExpansionPass()

FunctionPass * llvm::createMLxExpansionPass ( )

Definition at line 393 of file MLxExpansionPass.cpp.

Referenced by llvm::ARMBaseTargetMachine::createPassConfig().

◆ createModRefInfo()

LLVM_NODISCARD ModRefInfo llvm::createModRefInfo ( const FunctionModRefBehavior  FMRB)
inline

◆ createModuleDebugInfoPrinterPass()

ModulePass* llvm::createModuleDebugInfoPrinterPass ( )

◆ createModuleSummaryIndexWrapperPass()

module summary Module Summary true ModulePass * llvm::createModuleSummaryIndexWrapperPass ( )

◆ createModuleToFunctionPassAdaptor()

template<typename FunctionPassT >
ModuleToFunctionPassAdaptor<FunctionPassT> llvm::createModuleToFunctionPassAdaptor ( FunctionPassT  Pass)

◆ createModuleToPostOrderCGSCCPassAdaptor()

template<typename CGSCCPassT >
ModuleToPostOrderCGSCCPassAdaptor<CGSCCPassT> llvm::createModuleToPostOrderCGSCCPassAdaptor ( CGSCCPassT  Pass)

A function to deduce a function pass type and wrap it in the templated adaptor.

Definition at line 520 of file CGSCCPassManager.h.

Referenced by llvm::PassBuilder::buildFunctionSimplificationPipeline(), llvm::PassBuilder::buildLTODefaultPipeline(), and llvm::PassBuilder::buildModuleSimplificationPipeline().

◆ createMSP430BranchSelectionPass()

FunctionPass * llvm::createMSP430BranchSelectionPass ( )

Returns an instance of the Branch Selection Pass.

Definition at line 255 of file MSP430BranchSelector.cpp.

Referenced by llvm::MSP430TargetMachine::createPassConfig().

◆ createMSP430ELFObjectWriter()

std::unique_ptr< MCObjectTargetWriter > llvm::createMSP430ELFObjectWriter ( uint8_t  OSABI)

Definition at line 57 of file MSP430ELFObjectWriter.cpp.

◆ createMSP430ISelDag()

FunctionPass * llvm::createMSP430ISelDag ( MSP430TargetMachine TM,
CodeGenOpt::Level  OptLevel 
)

◆ createMSP430MCAsmBackend()

MCAsmBackend * llvm::createMSP430MCAsmBackend ( const Target T,
const MCSubtargetInfo STI,
const MCRegisterInfo MRI,
const MCTargetOptions Options 
)

Definition at line 173 of file MSP430AsmBackend.cpp.

References llvm::ELF::ELFOSABI_STANDALONE.

Referenced by LLVMInitializeMSP430TargetMC().

◆ createMSP430MCCodeEmitter()

MCCodeEmitter * llvm::createMSP430MCCodeEmitter ( const MCInstrInfo MCII,
const MCRegisterInfo MRI,
MCContext Ctx 
)

Creates a machine code emitter for MSP430.

Definition at line 203 of file MSP430MCCodeEmitter.cpp.

References llvm::MSP430MCCodeEmitter::MSP430MCCodeEmitter().

Referenced by LLVMInitializeMSP430TargetMC().

◆ createMSP430ObjectTargetStreamer()

MCTargetStreamer * llvm::createMSP430ObjectTargetStreamer ( MCStreamer S,
const MCSubtargetInfo STI 
)

◆ createMustExecutePrinter()

print Instructions which execute on loop true FunctionPass * llvm::createMustExecutePrinter ( )

Definition at line 313 of file MustExecute.cpp.

◆ createNameAnonGlobalPass()

ModulePass * llvm::createNameAnonGlobalPass ( )

===------------------------------------------------------------------—===//

Definition at line 118 of file NameAnonGlobals.cpp.

Referenced by llvm::PassManagerBuilder::populateModulePassManager().

◆ createNaryReassociatePass()

nary Nary false FunctionPass * llvm::createNaryReassociatePass ( )

◆ createNewGVNPass()

Global Value false FunctionPass * llvm::createNewGVNPass ( )

◆ createNullStreamer()

MCStreamer * llvm::createNullStreamer ( MCContext Ctx)

Create a dummy machine code streamer, which does nothing.

This is useful for timing the assembler front end.

Definition at line 48 of file MCNullStreamer.cpp.

Referenced by llvm::LLVMTargetMachine::addAsmPrinter(), llvm::Target::createNullStreamer(), and llvm::MCStreamer::mayHaveInstructions().

◆ createNVPTXAssignValidGlobalNamesPass()

ModulePass * llvm::createNVPTXAssignValidGlobalNamesPass ( )

◆ createNVPTXImageOptimizerPass()

FunctionPass * llvm::createNVPTXImageOptimizerPass ( )

◆ createNVPTXISelDag()

FunctionPass * llvm::createNVPTXISelDag ( NVPTXTargetMachine TM,
llvm::CodeGenOpt::Level  OptLevel 
)

createNVPTXISelDag - This pass converts a legalized DAG into a NVPTX-specific DAG, ready for instruction scheduling.

Definition at line 32 of file NVPTXISelDAGToDAG.cpp.

Referenced by llvm::NVPTXTargetMachine::getTargetTransformInfo().

◆ createNVPTXLowerAllocaPass()

BasicBlockPass * llvm::createNVPTXLowerAllocaPass ( )

◆ createNVPTXLowerArgsPass()

FunctionPass * llvm::createNVPTXLowerArgsPass ( const NVPTXTargetMachine TM)

◆ createNVPTXPeephole()

MachineFunctionPass * llvm::createNVPTXPeephole ( )

Definition at line 157 of file NVPTXPeephole.cpp.

Referenced by llvm::NVPTXTargetMachine::getTargetTransformInfo().

◆ createNVPTXPrologEpilogPass()

MachineFunctionPass * llvm::createNVPTXPrologEpilogPass ( )

◆ createNVPTXProxyRegErasurePass()

MachineFunctionPass * llvm::createNVPTXProxyRegErasurePass ( )

◆ createNVPTXReplaceImageHandlesPass()

MachineFunctionPass * llvm::createNVPTXReplaceImageHandlesPass ( )

◆ createNVVMIntrRangePass()

FunctionPass * llvm::createNVVMIntrRangePass ( unsigned int  SmVersion)

Definition at line 57 of file NVVMIntrRange.cpp.

References INITIALIZE_PASS().

Referenced by llvm::NVPTXTargetMachine::adjustPassManager().

◆ createNVVMReflectPass()

FunctionPass * llvm::createNVVMReflectPass ( unsigned int  SmVersion)

◆ createObjCARCAAWrapperPass()

ImmutablePass* llvm::createObjCARCAAWrapperPass ( )

◆ createObjCARCAPElimPass()

Pass* llvm::createObjCARCAPElimPass ( )

◆ createObjCARCContractPass()

Pass * llvm::createObjCARCContractPass ( )

◆ createObjCARCExpandPass()

Pass* llvm::createObjCARCExpandPass ( )

◆ createPAEvalPass()

FunctionPass * llvm::createPAEvalPass ( )

◆ createPartialInliningPass()

partial Partial false ModulePass * llvm::createPartialInliningPass ( )

createPartialInliningPass - This pass inlines parts of functions.

Definition at line 1475 of file PartialInlining.cpp.

Referenced by llvm::PassManagerBuilder::populateModulePassManager().

◆ createPartiallyInlineLibCallsPass()

partially inline Partially calls to library false FunctionPass * llvm::createPartiallyInlineLibCallsPass ( )
inline

◆ createPBQPRegisterAllocator()

FunctionPass * llvm::createPBQPRegisterAllocator ( char customPassID = nullptr)

Create a PBQP register allocator instance.

Definition at line 937 of file RegAllocPBQP.cpp.

Referenced by createDefaultPBQPRegisterAllocator(), and llvm::PBQP::RegAlloc::solve().

◆ createPGOFuncNameMetadata()

void llvm::createPGOFuncNameMetadata ( Function F,
StringRef  PGOFuncName 
)

Create the PGOFuncName meta data if PGOFuncName is different from function's raw name.

This should only apply to internal linkage functions declared by users only.

Definition at line 914 of file InstrProf.cpp.

References C, llvm::MDString::get(), llvm::MDNode::get(), llvm::Function::getContext(), llvm::Value::getName(), getPGOFuncNameMetadata(), getPGOFuncNameMetadataName(), N, and llvm::GlobalObject::setMetadata().

Referenced by getPGOFuncNameMetadataName(), and isIndirectBrTarget().

◆ createPGOFuncNameVar() [1/2]

GlobalVariable * llvm::createPGOFuncNameVar ( Function F,
StringRef  PGOFuncName 
)

Create and return the global variable for function name used in PGO instrumentation.

FuncName is the name of the function returned by getPGOFuncName call.

Definition at line 332 of file InstrProf.cpp.

References llvm::GlobalValue::getLinkage(), and llvm::GlobalValue::getParent().

Referenced by createPGOInstrumentationUseLegacyPass(), and getInstrProfNameSeparator().

◆ createPGOFuncNameVar() [2/2]

GlobalVariable * llvm::createPGOFuncNameVar ( Module M,
GlobalValue::LinkageTypes  Linkage,
StringRef  PGOFuncName 
)

◆ createPGOIndirectCallPromotionLegacyPass()

pgo icall Use PGO instrumentation profile to promote indirect calls to direct false ModulePass * llvm::createPGOIndirectCallPromotionLegacyPass ( bool  InLTO = false,
bool  SamplePGO = false 
)

◆ createPGOInstrumentationGenLegacyPass()

pgo instr PGO false ModulePass * llvm::createPGOInstrumentationGenLegacyPass ( )

◆ createPGOInstrumentationUseLegacyPass()

pgo instr Read PGO instrumentation false ModulePass * llvm::createPGOInstrumentationUseLegacyPass ( StringRef  Filename = StringRef(""))

◆ createPGOMemOPSizeOptLegacyPass()

FunctionPass* llvm::createPGOMemOPSizeOptLegacyPass ( )

◆ createPlaceSafepointsPass()

FunctionPass * llvm::createPlaceSafepointsPass ( )

◆ createPostDomOnlyPrinterPass()

FunctionPass * llvm::createPostDomOnlyPrinterPass ( )

Definition at line 288 of file DomPrinter.cpp.

◆ createPostDomOnlyViewerPass()

FunctionPass * llvm::createPostDomOnlyViewerPass ( )

Definition at line 296 of file DomPrinter.cpp.

◆ createPostDomPrinterPass()

FunctionPass * llvm::createPostDomPrinterPass ( )

Definition at line 284 of file DomPrinter.cpp.

◆ createPostDomTree()

FunctionPass * llvm::createPostDomTree ( )

◆ createPostDomViewerPass()

FunctionPass * llvm::createPostDomViewerPass ( )

Definition at line 292 of file DomPrinter.cpp.

◆ createPostInlineEntryExitInstrumenterPass()

FunctionPass * llvm::createPostInlineEntryExitInstrumenterPass ( )

Definition at line 162 of file EntryExitInstrumenter.cpp.

Referenced by llvm::TargetPassConfig::addIRPasses().

◆ createPostOrderFunctionAttrsLegacyPass()

Deduce function false Pass * llvm::createPostOrderFunctionAttrsLegacyPass ( )

Create a legacy pass manager instance of a pass to compute function attrs in post-order.

Definition at line 1429 of file FunctionAttrs.cpp.

Referenced by LLVMAddFunctionAttrsPass(), and llvm::PassManagerBuilder::populateModulePassManager().

◆ createPPCAsmBackend()

MCAsmBackend * llvm::createPPCAsmBackend ( const Target T,
const MCSubtargetInfo STI,
const MCRegisterInfo MRI,
const MCTargetOptions Options 
)

◆ createPPCBoolRetToIntPass()

FunctionPass* llvm::createPPCBoolRetToIntPass ( )

◆ createPPCBranchCoalescingPass()

FunctionPass * llvm::createPPCBranchCoalescingPass ( )

createPPCBranchCoalescingPass - returns an instance of the Branch Coalescing Pass

Definition at line 197 of file PPCBranchCoalescing.cpp.

References DEBUG_TYPE, INITIALIZE_PASS_BEGIN(), and INITIALIZE_PASS_DEPENDENCY.

Referenced by llvm::PPCTargetMachine::createPassConfig().

◆ createPPCBranchSelectionPass()

FunctionPass* llvm::createPPCBranchSelectionPass ( )

◆ createPPCCTRLoops()

ppc ctr PowerPC CTR false FunctionPass * llvm::createPPCCTRLoops ( )

◆ createPPCCTRLoopsVerify()

ppc ctr loops PowerPC CTR Loops false FunctionPass * llvm::createPPCCTRLoopsVerify ( )

◆ createPPCEarlyReturnPass()

FunctionPass* llvm::createPPCEarlyReturnPass ( )

◆ createPPCELFObjectWriter()

std::unique_ptr< MCObjectTargetWriter > llvm::createPPCELFObjectWriter ( bool  Is64Bit,
uint8_t  OSABI 
)

Construct an PPC ELF object writer.

Definition at line 443 of file PPCELFObjectWriter.cpp.

Referenced by getFixupKindNumBytes().

◆ createPPCExpandISELPass()

FunctionPass* llvm::createPPCExpandISELPass ( )

◆ createPPCISelDag()

FunctionPass * llvm::createPPCISelDag ( PPCTargetMachine TM,
CodeGenOpt::Level  OL 
)

createPPCISelDag - This pass converts a legalized DAG into a PowerPC-specific DAG, ready for instruction scheduling.

Definition at line 6508 of file PPCISelDAGToDAG.cpp.

Referenced by llvm::PPCTargetMachine::createPassConfig().

◆ createPPCLoopPreIncPrepPass()

FunctionPass * llvm::createPPCLoopPreIncPrepPass ( PPCTargetMachine TM)

Definition at line 121 of file PPCLoopPreIncPrep.cpp.

References B, I, and llvm::RISCVFenceField::O.

Referenced by llvm::PPCTargetMachine::createPassConfig().

◆ createPPCMachObjectWriter()

std::unique_ptr< MCObjectTargetWriter > llvm::createPPCMachObjectWriter ( bool  Is64Bit,
uint32_t  CPUType,
uint32_t  CPUSubtype 
)

Construct a PPC Mach-O object writer.

Definition at line 378 of file PPCMachObjectWriter.cpp.

Referenced by getFixupKindNumBytes().

◆ createPPCMCCodeEmitter()

MCCodeEmitter * llvm::createPPCMCCodeEmitter ( const MCInstrInfo MCII,
const MCRegisterInfo MRI,
MCContext Ctx 
)

◆ createPPCMIPeepholePass()

FunctionPass * llvm::createPPCMIPeepholePass ( )

Definition at line 1287 of file PPCMIPeephole.cpp.

Referenced by llvm::PPCTargetMachine::createPassConfig().

◆ createPPCPreEmitPeepholePass()

FunctionPass* llvm::createPPCPreEmitPeepholePass ( )

◆ createPPCQPXLoadSplatPass()

FunctionPass* llvm::createPPCQPXLoadSplatPass ( )

◆ createPPCReduceCRLogicalsPass()

FunctionPass * llvm::createPPCReduceCRLogicalsPass ( )

Definition at line 712 of file PPCReduceCRLogicals.cpp.

Referenced by llvm::PPCTargetMachine::createPassConfig().

◆ createPPCTLSDynamicCallPass()

FunctionPass * llvm::createPPCTLSDynamicCallPass ( )

Definition at line 191 of file PPCTLSDynamicCall.cpp.

Referenced by llvm::PPCTargetMachine::createPassConfig().

◆ createPPCTOCRegDepsPass()

FunctionPass* llvm::createPPCTOCRegDepsPass ( )

◆ createPPCVSXCopyPass()

FunctionPass* llvm::createPPCVSXCopyPass ( )

◆ createPPCVSXFMAMutatePass()

FunctionPass * llvm::createPPCVSXFMAMutatePass ( )

Definition at line 396 of file PPCVSXFMAMutate.cpp.

◆ createPPCVSXSwapRemovalPass()

FunctionPass * llvm::createPPCVSXSwapRemovalPass ( )

Definition at line 1052 of file PPCVSXSwapRemoval.cpp.

Referenced by llvm::PPCTargetMachine::createPassConfig().

◆ createPreISelIntrinsicLoweringPass()

ModulePass* llvm::createPreISelIntrinsicLoweringPass ( )

This pass lowers the @llvm.load.relative and @llvm.objc.

  • intrinsics to instructions. This is unsafe to do earlier because a pass may combine the constant initializer into the load, which may result in an overflowing evaluation.

Referenced by llvm::TargetPassConfig::addISelPasses().

◆ createPrintBasicBlockPass()

BasicBlockPass * llvm::createPrintBasicBlockPass ( llvm::raw_ostream OS,
const std::string &  Banner = "" 
)

Create and return a pass that writes the BB to the specified raw_ostream.

Definition at line 150 of file IRPrintingPasses.cpp.

Referenced by llvm::BasicBlockPass::createPrinterPass().

◆ createPrintFunctionPass()

FunctionPass * llvm::createPrintFunctionPass ( llvm::raw_ostream OS,
const std::string &  Banner = "" 
)

Create and return a pass that prints functions to the specified raw_ostream as they are processed.

Definition at line 145 of file IRPrintingPasses.cpp.

Referenced by llvm::TargetPassConfig::addIRPasses(), llvm::TargetPassConfig::addISelPrepare(), llvm::FunctionPass::createPrinterPass(), and llvm::legacy::FunctionPassManagerImpl::createPrinterPass().

◆ createPrintMIRPass()

MachineFunctionPass * llvm::createPrintMIRPass ( raw_ostream OS)

MIRPrinting pass - this pass prints out the LLVM IR into the given stream using the MIR serialization format.

Definition at line 67 of file MIRPrintingPass.cpp.

Referenced by llvm::LLVMTargetMachine::addPassesToEmitFile().

◆ createPrintModulePass()

ModulePass* llvm::createPrintModulePass ( raw_ostream OS,
const std::string &  Banner = "",
bool  ShouldPreserveUseListOrder = false 
)

◆ createPrivateGlobalForString()

GlobalVariable * llvm::createPrivateGlobalForString ( Module M,
StringRef  Str,
bool  AllowMerging,
const char NamePrefix = "" 
)

◆ createPrologEpilogInserterPass()

Prologue Epilogue Insertion &Frame false MachineFunctionPass * llvm::createPrologEpilogInserterPass ( )

◆ createPromoteMemoryToRegisterPass()

Promote Memory to false FunctionPass * llvm::createPromoteMemoryToRegisterPass ( )

◆ createPruneEHPass()

prune Remove unused exception handling info false false Pass * llvm::createPruneEHPass ( )

createPruneEHPass - Return a new pass object which transforms invoke instructions into calls, if the callee can not unwind the stack.

Definition at line 61 of file PruneEH.cpp.

Referenced by LLVMAddPruneEHPass(), and llvm::PassManagerBuilder::populateModulePassManager().

◆ createR600AsmPrinterPass()

AsmPrinter * llvm::createR600AsmPrinterPass ( TargetMachine TM,
std::unique_ptr< MCStreamer > &&  Streamer 
)

Definition at line 32 of file R600AsmPrinter.cpp.

Referenced by LLVMInitializeAMDGPUAsmPrinter().

◆ createR600ClauseMergePass()

llvm::FunctionPass * llvm::createR600ClauseMergePass ( )

◆ createR600ControlFlowFinalizer()

FunctionPass * llvm::createR600ControlFlowFinalizer ( )

◆ createR600EmitClauseMarkers()

R600 Emit Clause false FunctionPass * llvm::createR600EmitClauseMarkers ( )

◆ createR600ExpandSpecialInstrsPass()

FunctionPass * llvm::createR600ExpandSpecialInstrsPass ( )

◆ createR600ISelDag()

FunctionPass * llvm::createR600ISelDag ( TargetMachine TM,
CodeGenOpt::Level  OptLevel 
)

◆ createR600MCCodeEmitter()

MCCodeEmitter * llvm::createR600MCCodeEmitter ( const MCInstrInfo MCII,
const MCRegisterInfo MRI,
MCContext Ctx 
)

◆ createR600MCInstrInfo()

MCInstrInfo * llvm::createR600MCInstrInfo ( )

Definition at line 23 of file R600MCTargetDesc.cpp.

References X.

Referenced by LLVMInitializeAMDGPUTargetMC().

◆ createR600OpenCLImageTypeLoweringPass()

ModulePass * llvm::createR600OpenCLImageTypeLoweringPass ( )

◆ createR600Packetizer()

llvm::FunctionPass * llvm::createR600Packetizer ( )

Definition at line 417 of file R600Packetizer.cpp.

Referenced by llvm::GCNTargetMachine::getTargetTransformInfo().

◆ createR600VectorRegMerger()

llvm::FunctionPass * llvm::createR600VectorRegMerger ( )

◆ createReassociatePass()

FunctionPass* llvm::createReassociatePass ( )

◆ createRegionInfoPass()

FunctionPass * llvm::createRegionInfoPass ( )

Definition at line 178 of file RegionInfo.cpp.

References llvm::RegionInfoPass::RegionInfoPass().

◆ createRegionOnlyPrinterPass()

FunctionPass * llvm::createRegionOnlyPrinterPass ( )

Definition at line 218 of file RegionPrinter.cpp.

◆ createRegionOnlyViewerPass()

FunctionPass * llvm::createRegionOnlyViewerPass ( )

Definition at line 226 of file RegionPrinter.cpp.

Referenced by viewRegionOnly().

◆ createRegionPrinterPass()

dot regions Print regions of function to dot true view regions View regions of true FunctionPass * llvm::createRegionPrinterPass ( )

Definition at line 216 of file RegionPrinter.cpp.

◆ createRegionViewerPass()

FunctionPass * llvm::createRegionViewerPass ( )

Definition at line 222 of file RegionPrinter.cpp.

Referenced by viewRegion().

◆ createRegUsageInfoCollector()

Register Usage Information false FunctionPass * llvm::createRegUsageInfoCollector ( )

◆ createRegUsageInfoPropPass()

FunctionPass * llvm::createRegUsageInfoPropPass ( )

Return a MachineFunction pass that identifies call sites and propagates register usage information of callee to caller if available with PysicalRegisterUsageInfo pass.

Definition at line 151 of file RegUsageInfoPropagate.cpp.

Referenced by llvm::TargetPassConfig::addMachinePasses().

◆ createRepeatedPass()

template<typename PassT >
RepeatedPass<PassT> llvm::createRepeatedPass ( int  Count,
PassT  P 
)

Definition at line 1437 of file PassManager.h.

◆ createReplicatedMask()

Constant * llvm::createReplicatedMask ( IRBuilder<> &  Builder,
unsigned  ReplicationFactor,
unsigned  VF 
)

Create a mask with replicated elements.

This function creates a shuffle mask for replicating each of the VF elements in a vector ReplicationFactor times. It can be used to transform a mask of VF elements into a mask of VF * ReplicationFactor elements used by a predicated interleaved-group of loads/stores whose Interleaved-factor == ReplicationFactor.

For example, the mask for ReplicationFactor=3 and VF=4 is:

<0,0,0,1,1,1,2,2,2,3,3,3>

Definition at line 619 of file VectorUtils.cpp.

References llvm::ConstantVector::get(), llvm::IRBuilderBase::getInt32(), and llvm::SmallVectorTemplateBase< T >::push_back().

Referenced by llvm::InnerLoopVectorizer::vectorizeInterleaveGroup().

◆ createResetMachineFunctionPass()

MachineFunctionPass* llvm::createResetMachineFunctionPass ( bool  EmitFallbackDiag,
bool  AbortOnFailedISel 
)

This pass resets a MachineFunction when it has the FailedISel property as if it was just created.

If EmitFallbackDiag is true, the pass will emit a DiagnosticInfoISelFallback for every MachineFunction it resets. If AbortOnFailedISel is true, abort compilation instead of resetting.

Referenced by llvm::TargetPassConfig::addCoreISelPasses().

◆ createReversePostOrderFunctionAttrsPass()

rpo Deduce function attributes in false Pass * llvm::createReversePostOrderFunctionAttrsPass ( )

createReversePostOrderFunctionAttrsPass - This pass walks SCCs of the call graph in RPO to deduce and propagate function attributes.

Currently it only handles synthesizing norecurse attributes.

Definition at line 1494 of file FunctionAttrs.cpp.

Referenced by llvm::PassManagerBuilder::populateModulePassManager().

◆ createRewriteStatepointsForGCLegacyPass()

ModulePass * llvm::createRewriteStatepointsForGCLegacyPass ( )

◆ createRewriteSymbolsPass() [1/2]

ModulePass* llvm::createRewriteSymbolsPass ( )

◆ createRewriteSymbolsPass() [2/2]

ModulePass * llvm::createRewriteSymbolsPass ( SymbolRewriter::RewriteDescriptorList DL)

Definition at line 583 of file SymbolRewriter.cpp.

◆ createRISCVAsmBackend()

MCAsmBackend * llvm::createRISCVAsmBackend ( const Target T,
const MCSubtargetInfo STI,
const MCRegisterInfo MRI,
const MCTargetOptions Options 
)

◆ createRISCVELFObjectWriter()

std::unique_ptr< MCObjectTargetWriter > llvm::createRISCVELFObjectWriter ( uint8_t  OSABI,
bool  Is64Bit 
)

◆ createRISCVExpandPseudoPass()

FunctionPass* llvm::createRISCVExpandPseudoPass ( )

◆ createRISCVISelDag()

FunctionPass * llvm::createRISCVISelDag ( RISCVTargetMachine TM)

Definition at line 280 of file RISCVISelDAGToDAG.cpp.

Referenced by llvm::RISCVTargetMachine::createPassConfig().

◆ createRISCVMCCodeEmitter()

MCCodeEmitter * llvm::createRISCVMCCodeEmitter ( const MCInstrInfo MCII,
const MCRegisterInfo MRI,
MCContext Ctx 
)

Definition at line 82 of file RISCVMCCodeEmitter.cpp.

References llvm::MCInstBuilder::addImm(), llvm::MCInstBuilder::addOperand(), llvm::MCInstBuilder::addReg(), assert(), llvm::tgtok::Bits, llvm::RISCVMCExpr::create(), llvm::MCFixup::create(), llvm::MCOperand::createExpr(), llvm::RISCV::fixup_riscv_branch, llvm::RISCV::fixup_riscv_call, llvm::RISCV::fixup_riscv_hi20, llvm::RISCV::fixup_riscv_invalid, llvm::RISCV::fixup_riscv_jal, llvm::RISCV::fixup_riscv_lo12_i, llvm::RISCV::fixup_riscv_lo12_s, llvm::RISCV::fixup_riscv_pcrel_hi20, llvm::RISCV::fixup_riscv_pcrel_lo12_i, llvm::RISCV::fixup_riscv_pcrel_lo12_s, llvm::RISCV::fixup_riscv_relax, llvm::RISCV::fixup_riscv_rvc_branch, llvm::RISCV::fixup_riscv_rvc_jump, FixupKind(), llvm::MCOperand::getExpr(), llvm::MCSubtargetInfo::getFeatureBits(), llvm::MCOperand::getImm(), llvm::RISCVMCExpr::getKind(), llvm::MCInst::getLoc(), llvm::MCInst::getOpcode(), llvm::MCInstrDesc::getOpcode(), llvm::MCInst::getOperand(), llvm::MCOperand::getReg(), llvm::MCInstrDesc::getSize(), llvm::RISCVII::InstFormatB, llvm::RISCVII::InstFormatCB, llvm::RISCVII::InstFormatCJ, llvm::RISCVII::InstFormatI, llvm::RISCVII::InstFormatMask, llvm::RISCVII::InstFormatS, llvm::MCOperand::isExpr(), llvm::MCOperand::isImm(), llvm::MCOperand::isReg(), Kind, llvm::support::little, llvm_unreachable, MI, llvm::SmallVectorTemplateBase< T >::push_back(), Size, llvm::MCExpr::SymbolRef, llvm::MCExpr::Target, llvm::MCInstrDesc::TSFlags, llvm::MCSymbolRefExpr::VK_None, llvm::RISCVMCExpr::VK_RISCV_CALL, llvm::RISCVMCExpr::VK_RISCV_HI, llvm::RISCVMCExpr::VK_RISCV_Invalid, llvm::RISCVMCExpr::VK_RISCV_LO, llvm::RISCVMCExpr::VK_RISCV_None, llvm::RISCVMCExpr::VK_RISCV_PCREL_HI, llvm::RISCVMCExpr::VK_RISCV_PCREL_LO, and llvm::support::endian::write().

Referenced by LLVMInitializeRISCVTargetMC().

◆ createRISCVMergeBaseOffsetOptPass()

FunctionPass * llvm::createRISCVMergeBaseOffsetOptPass ( )

Returns an instance of the Merge Base Offset Optimization pass.

Definition at line 284 of file RISCVMergeBaseOffset.cpp.

Referenced by llvm::RISCVTargetMachine::createPassConfig().

◆ createRuntimeDyldCOFF()

static std::unique_ptr<RuntimeDyldCOFF> llvm::createRuntimeDyldCOFF ( Triple::ArchType  Arch,
RuntimeDyld::MemoryManager MM,
JITSymbolResolver Resolver,
bool  ProcessAllSections,
RuntimeDyldCheckerImpl Checker 
)
static

Definition at line 1211 of file RuntimeDyld.cpp.

References llvm::RuntimeDyldCOFF::create().

Referenced by llvm::RuntimeDyld::loadObject().

◆ createRuntimeDyldELF()

static std::unique_ptr<RuntimeDyldELF> llvm::createRuntimeDyldELF ( Triple::ArchType  Arch,
RuntimeDyld::MemoryManager MM,
JITSymbolResolver Resolver,
bool  ProcessAllSections,
RuntimeDyldCheckerImpl Checker 
)
static

Definition at line 1222 of file RuntimeDyld.cpp.

References llvm::RuntimeDyldELF::create().

Referenced by llvm::RuntimeDyld::loadObject().

◆ createRuntimeDyldMachO()

static std::unique_ptr<RuntimeDyldMachO> llvm::createRuntimeDyldMachO ( Triple::ArchType  Arch,
RuntimeDyld::MemoryManager MM,
JITSymbolResolver Resolver,
bool  ProcessAllSections,
RuntimeDyldCheckerImpl Checker 
)
static

Definition at line 1233 of file RuntimeDyld.cpp.

References llvm::RuntimeDyldMachO::create().

Referenced by llvm::RuntimeDyld::loadObject().

◆ createSafepointIRVerifierPass()

FunctionPass * llvm::createSafepointIRVerifierPass ( )

Create an instance of the safepoint verifier pass which can be added to a pass pipeline to check for relocation bugs.

Definition at line 233 of file SafepointIRVerifier.cpp.

References INITIALIZE_PASS_BEGIN(), and INITIALIZE_PASS_DEPENDENCY.

◆ createSafeStackPass()

Safe Stack instrumentation false FunctionPass * llvm::createSafeStackPass ( )

This pass splits the stack into a safe stack and an unsafe stack to protect against stack-based overflow vulnerabilities.

Definition at line 910 of file SafeStack.cpp.

Referenced by llvm::TargetPassConfig::addISelPrepare().

◆ createSampleProfileLoaderPass() [1/2]

ModulePass * llvm::createSampleProfileLoaderPass ( )

◆ createSampleProfileLoaderPass() [2/2]

ModulePass * llvm::createSampleProfileLoaderPass ( StringRef  Name)

◆ createSanitizerCoverageModulePass()

SanitizerCoverage false ModulePass * llvm::createSanitizerCoverageModulePass ( const SanitizerCoverageOptions Options = SanitizerCoverageOptions())

Definition at line 865 of file SanitizerCoverage.cpp.

◆ createSanitizerCtorAndInitFunctions()

std::pair< Function *, Function * > llvm::createSanitizerCtorAndInitFunctions ( Module M,
StringRef  CtorName,
StringRef  InitName,
ArrayRef< Type *>  InitArgTypes,
ArrayRef< Value *>  InitArgs,
StringRef  VersionCheckName = StringRef() 
)

◆ createScalarizeMaskedMemIntrinPass()

FunctionPass* llvm::createScalarizeMaskedMemIntrinPass ( )

createScalarizeMaskedMemIntrinPass - Replace masked load, store, gather and scatter intrinsics with scalar code when target doesn't support them.

Referenced by llvm::TargetPassConfig::addIRPasses().

◆ createScalarizerPass()

FunctionPass * llvm::createScalarizerPass ( )

◆ createSCCPPass()

Sparse Conditional Constant false FunctionPass * llvm::createSCCPPass ( )

◆ createSCEVAAWrapperPass()

scev ScalarEvolution based Alias true FunctionPass * llvm::createSCEVAAWrapperPass ( )

Creates an instance of SCEVAAWrapperPass.

Definition at line 130 of file ScalarEvolutionAliasAnalysis.cpp.

Referenced by llvm::SCEVAAWrapperPass::getResult().

◆ createScopedNoAliasAAWrapperPass()

ImmutablePass* llvm::createScopedNoAliasAAWrapperPass ( )

◆ createSeparateConstOffsetFromGEPPass()

separate const offset from Split GEPs to a variadic base and a constant offset for better false FunctionPass * llvm::createSeparateConstOffsetFromGEPPass ( bool  LowerGEP = false)

Definition at line 480 of file SeparateConstOffsetFromGEP.cpp.

References llvm::MCID::Add, assert(), B, C, llvm::Instruction::clone(), llvm::Instruction::copyMetadata(), llvm::BinaryOperator::Create(), llvm::GetElementPtrInst::Create(), llvm::IRBuilder< T, Inserter >::CreateAdd(), llvm::IRBuilder< T, Inserter >::CreateBitCast(), llvm::IRBuilder< T, Inserter >::CreateGEP(), llvm::CastInst::CreateIntegerCast(), llvm::IRBuilder< T, Inserter >::CreateIntToPtr(), llvm::IRBuilder< T, Inserter >::CreateMul(), llvm::IRBuilder< T, Inserter >::CreatePtrToInt(), llvm::IRBuilder< T, Inserter >::CreateShl(), DisableSeparateConstOffsetFromGEP, llvm::DominatorTree::dominates(), dyn_cast(), E, llvm::Instruction::eraseFromParent(), llvm::MipsISD::Ext, F(), llvm::tgtok::Field, Find(), find(), GEP, gep_type_begin(), llvm::ConstantInt::get(), getBitWidth(), llvm::ConstantExpr::getCast(), llvm::Value::getContext(), llvm::Instruction::getFunction(), llvm::generic_gep_type_iterator< ItTy >::getIndexedType(), llvm::IRBuilderBase::getInt8PtrTy(), llvm::Type::getInt8PtrTy(), llvm::IRBuilderBase::getInt8Ty(), llvm::Type::getInt8Ty(), llvm::Type::getIntegerBitWidth(), llvm::Value::getName(), llvm::Constant::getNullValue(), llvm::User::getNumOperands(), llvm::Value::getNumUses(), llvm::BinaryOperator::getOpcode(), llvm::User::getOperand(), llvm::Instruction::getParent(), llvm::Type::getPointerAddressSpace(), llvm::GetElementPtrInst::getPointerAddressSpace(), llvm::GetElementPtrInst::getResultElementType(), llvm::generic_gep_type_iterator< ItTy >::getStructType(), getType(), llvm::Value::getType(), llvm::GetElementPtrInst::hasAllConstantIndices(), llvm::Instruction::hasNoSignedWrap(), llvm::Instruction::hasNoUnsignedWrap(), haveNoCommonBitsSet(), I, llvm::ARM_PROC::IE, llvm::Instruction::insertBefore(), llvm::GetElementPtrInst::isInBounds(), llvm::TargetTransformInfo::isLegalAddressingMode(), llvm::Loop::isLoopInvariant(), llvm::APInt::isPowerOf2(), llvm::generic_gep_type_iterator< ItTy >::isSequential(), llvm::Type::isVectorTy(), llvm::APInt::logBase2(), llvm::PatternMatch::m_Add(), llvm::PatternMatch::m_NSWAdd(), llvm::PatternMatch::m_NSWSub(), llvm::PatternMatch::m_SExt(), llvm::PatternMatch::m_Sub(), llvm::PatternMatch::m_Value(), llvm::PatternMatch::match(), llvm::User::op_begin(), llvm::User::op_end(), programUndefinedIfFullPoison(), RecursivelyDeleteTriviallyDeadInstructions(), llvm::Value::replaceAllUsesWith(), runOnFunction(), llvm::GetElementPtrInst::setIsInBounds(), llvm::User::setOperand(), llvm::Value::takeName(), llvm::Intrinsic::trunc, llvm::TargetTransformInfo::useAA(), llvm::MCID::Variadic, and VerifyNoDeadCode.

Referenced by llvm::AArch64TargetMachine::createPassConfig(), llvm::PPCTargetMachine::createPassConfig(), llvm::NVPTXTargetMachine::getTargetTransformInfo(), and llvm::GCNTargetMachine::getTargetTransformInfo().

◆ createSequentialMask()

Constant * llvm::createSequentialMask ( IRBuilder<> &  Builder,
unsigned  Start,
unsigned  NumInts,
unsigned  NumUndefs 
)

Create a sequential shuffle mask.

This function creates shuffle mask whose elements are sequential and begin at Start. The mask contains NumInts integers and is padded with NumUndefs undef values. The mask is of the form:

<Start, Start + 1, ... Start + NumInts - 1, undef_1, ... undef_NumUndefs>

For example, the mask for Start = 0, NumInsts = 4, and NumUndefs = 4 is:

<0, 1, 2, 3, undef, undef, undef, undef>

Definition at line 648 of file VectorUtils.cpp.

Referenced by concatenateTwoVectors(), llvm::AArch64TargetLowering::lowerInterleavedStore(), and llvm::ARMTargetLowering::lowerInterleavedStore().

◆ createShadowCallStackPass()

FunctionPass* llvm::createShadowCallStackPass ( )

This pass instruments the function prolog to save the return address to a 'shadow call stack' and the function epilog to check that the return address did not change during function execution.

Referenced by llvm::X86TargetMachine::createPassConfig().

◆ createShadowStackGCLoweringPass()

Shadow Stack GC false FunctionPass * llvm::createShadowStackGCLoweringPass ( )

◆ createSIAddIMGInitPass()

FunctionPass * llvm::createSIAddIMGInitPass ( )

◆ createSIAnnotateControlFlowPass()

FunctionPass * llvm::createSIAnnotateControlFlowPass ( )

Create the annotation pass.

Definition at line 355 of file SIAnnotateControlFlow.cpp.

Referenced by llvm::R600TargetMachine::createPassConfig().

◆ createSIDebuggerInsertNopsPass()

FunctionPass * llvm::createSIDebuggerInsertNopsPass ( )

◆ createSIFixControlFlowLiveIntervalsPass()

FunctionPass* llvm::createSIFixControlFlowLiveIntervalsPass ( )

◆ createSIFixSGPRCopiesPass()

FunctionPass * llvm::createSIFixSGPRCopiesPass ( )

Definition at line 143 of file SIFixSGPRCopies.cpp.

◆ createSIFixupVectorISelPass()

FunctionPass * llvm::createSIFixupVectorISelPass ( )

Definition at line 82 of file SIFixupVectorISel.cpp.

Referenced by llvm::R600TargetMachine::createPassConfig().

◆ createSIFixWWMLivenessPass()

FunctionPass * llvm::createSIFixWWMLivenessPass ( )

◆ createSIFoldOperandsPass()

FunctionPass * llvm::createSIFoldOperandsPass ( )

Definition at line 163 of file SIFoldOperands.cpp.

◆ createSIFormMemoryClausesPass()

FunctionPass * llvm::createSIFormMemoryClausesPass ( )

Definition at line 96 of file SIFormMemoryClauses.cpp.

◆ createSIInsertWaitcntsPass()

FunctionPass * llvm::createSIInsertWaitcntsPass ( )

Definition at line 786 of file SIInsertWaitcnts.cpp.

Referenced by llvm::R600TargetMachine::createPassConfig().

◆ createSILoadStoreOptimizerPass()

FunctionPass * llvm::createSILoadStoreOptimizerPass ( )

Definition at line 230 of file SILoadStoreOptimizer.cpp.

◆ createSILowerI1CopiesPass()

FunctionPass * llvm::createSILowerI1CopiesPass ( )

Definition at line 410 of file SILowerI1Copies.cpp.

Referenced by llvm::R600TargetMachine::createPassConfig().

◆ createSIMCCodeEmitter()

MCCodeEmitter * llvm::createSIMCCodeEmitter ( const MCInstrInfo MCII,
const MCRegisterInfo MRI,
MCContext Ctx 
)

Definition at line 84 of file SIMCCodeEmitter.cpp.

Referenced by LLVMInitializeAMDGPUTargetMC().

◆ createSIMemoryLegalizerPass()

FunctionPass * llvm::createSIMemoryLegalizerPass ( )

Definition at line 1045 of file SIMemoryLegalizer.cpp.

Referenced by llvm::R600TargetMachine::createPassConfig().

◆ createSIModeRegisterPass()

FunctionPass * llvm::createSIModeRegisterPass ( )

◆ createSimpleLoopUnrollPass()

Pass * llvm::createSimpleLoopUnrollPass ( int  OptLevel = 2,
bool  OnlyWhenForced = false 
)

◆ createSimpleLoopUnswitchLegacyPass()

simple loop Simple unswitch false Pass * llvm::createSimpleLoopUnswitchLegacyPass ( bool  NonTrivial = false)

Create the legacy pass object for the simple loop unswitcher.

See the documentaion for SimpleLoopUnswitchPass for details.

Definition at line 2957 of file SimpleLoopUnswitch.cpp.

Referenced by llvm::PassManagerBuilder::populateFunctionPassManager(), and llvm::SimpleLoopUnswitchPass::SimpleLoopUnswitchPass().

◆ createSimpleTargetReduction()

Value * llvm::createSimpleTargetReduction ( IRBuilder<> &  Builder,
const TargetTransformInfo TTI,
unsigned  Opcode,
Value Src,
TargetTransformInfo::ReductionFlags  Flags = TargetTransformInfo::ReductionFlags(),
ArrayRef< Value *>  RedOps = None 
)

◆ createSingleLoopExtractorPass()

Pass * llvm::createSingleLoopExtractorPass ( )

createSingleLoopExtractorPass - This pass extracts one natural loop from the program into a function if it can.

This is used by bugpoint.

Definition at line 159 of file LoopExtractor.cpp.

◆ createSinkingPass()

FunctionPass * llvm::createSinkingPass ( )

Definition at line 304 of file Sink.cpp.

Referenced by llvm::R600TargetMachine::createPassConfig().

◆ createSIOptimizeExecMaskingPreRAPass()

FunctionPass * llvm::createSIOptimizeExecMaskingPreRAPass ( )

Definition at line 70 of file SIOptimizeExecMaskingPreRA.cpp.

◆ createSIPeepholeSDWAPass()

FunctionPass * llvm::createSIPeepholeSDWAPass ( )

Definition at line 219 of file SIPeepholeSDWA.cpp.

◆ createSIShrinkInstructionsPass()

FunctionPass* llvm::createSIShrinkInstructionsPass ( )

◆ createSIWholeQuadModePass()

FunctionPass * llvm::createSIWholeQuadModePass ( )

Definition at line 221 of file SIWholeQuadMode.cpp.

References llvm::MachineInstrBuilder::addReg(), assert(), llvm::MachineBasicBlock::begin(), llvm::ReversePostOrderTraversal< GraphT, GT >::begin(), llvm::MachineFunction::begin(), BuildMI(), dbgs(), llvm::VNInfo::def, DefMI, llvm::MachineInstr::defs(), llvm::MachineBasicBlock::empty(), llvm::LiveRange::Segment::end, llvm::MachineBasicBlock::end(), llvm::ReversePostOrderTraversal< GraphT, GT >::end(), llvm::MachineInstr::eraseFromParent(), llvm::MachineFunction::front(), llvm::AMDGPUSubtarget::get(), llvm::SlotIndex::getBaseIndex(), llvm::Function::getCallingConv(), llvm::MachineInstr::getDebugLoc(), llvm::MachineBasicBlock::getFirstNonPHI(), llvm::MachineFunction::getFunction(), llvm::GCNSubtarget::getInstrInfo(), llvm::SlotIndex::getNextIndex(), llvm::MachineInstr::getNumExplicitOperands(), llvm::MachineInstr::getOpcode(), llvm::MachineInstr::getOperand(), llvm::MachineInstr::getParent(), llvm::ilist_node_with_parent< NodeTy, ParentTy, Options >::getPrevNode(), llvm::MachineOperand::getReg(), llvm::MachineFunction::getRegInfo(), llvm::GCNSubtarget::getRegisterInfo(), llvm::LiveRange::getSegmentContaining(), llvm::MachineFunction::getSubtarget(), llvm::Function::hasFnAttribute(), llvm::ARM_PROC::IE, if(), llvm::VNInfo::isPHIDef(), llvm::MachineOperand::isReg(), llvm::MachineInstr::isTerminator(), llvm::MachineInstr::isTransient(), llvm::MachineOperand::isUndef(), llvm::MCRegisterInfo::DiffListIterator::isValid(), llvm::TargetRegisterInfo::isVirtualRegister(), LLVM_DEBUG, LLVM_DUMP_METHOD, llvm::MachineInstr::mayStore(), MI, MRI, llvm::MachineBasicBlock::predecessors(), printMBBReference(), llvm::SmallVectorTemplateBase< T, bool >::push_back(), llvm::LiveRange::Query(), llvm::MachineBasicBlock::rbegin(), Reg, llvm::MachineInstr::RemoveOperand(), llvm::MachineInstr::setDesc(), llvm::MachineOperand::setImm(), llvm::ARM_MB::ST, llvm::LiveRange::Segment::start, llvm::MachineBasicBlock::successors(), TII, TRI, llvm::MachineInstr::uses(), and llvm::SIInstrFlags::WQM.

Referenced by llvm::R600TargetMachine::createPassConfig().

◆ createSjLjEHPreparePass()

FunctionPass* llvm::createSjLjEHPreparePass ( )

createSjLjEHPreparePass - This pass adapts exception handling code to use the GCC-style builtin setjmp/longjmp (sjlj) to handling EH control flow.

Referenced by llvm::TargetPassConfig::addPassesToHandleExceptions().

◆ createSLPVectorizerPass()

Pass * llvm::createSLPVectorizerPass ( )

◆ createSourceListDAGScheduler()

ScheduleDAGSDNodes * llvm::createSourceListDAGScheduler ( SelectionDAGISel IS,
CodeGenOpt::Level  OptLevel 
)

createBURRListDAGScheduler - This creates a bottom up list scheduler that schedules nodes in source code order when possible.

Definition at line 3106 of file ScheduleDAGRRList.cpp.

References llvm::TargetSubtargetInfo::getInstrInfo(), llvm::TargetSubtargetInfo::getRegisterInfo(), llvm::MachineFunction::getSubtarget(), llvm::SelectionDAGISel::MF, TII, and TRI.

Referenced by createDefaultScheduler(), and llvm::RegisterScheduler::setListener().

◆ createSparcAsmBackend()

MCAsmBackend * llvm::createSparcAsmBackend ( const Target T,
const MCSubtargetInfo STI,
const MCRegisterInfo MRI,
const MCTargetOptions Options 
)

◆ createSparcDelaySlotFillerPass()

FunctionPass * llvm::createSparcDelaySlotFillerPass ( )

◆ createSparcELFObjectWriter()

std::unique_ptr< MCObjectTargetWriter > llvm::createSparcELFObjectWriter ( bool  Is64Bit,
uint8_t  OSABI 
)

Definition at line 138 of file SparcELFObjectWriter.cpp.

Referenced by getFixupKindNumBytes().

◆ createSparcISelDag()

FunctionPass * llvm::createSparcISelDag ( SparcTargetMachine TM)

createSparcISelDag - This pass converts a legalized DAG into a SPARC-specific DAG, ready for instruction scheduling.

Definition at line 399 of file SparcISelDAGToDAG.cpp.

Referenced by llvm::SparcTargetMachine::createPassConfig().

◆ createSparcMCCodeEmitter()

MCCodeEmitter * llvm::createSparcMCCodeEmitter ( const MCInstrInfo MCII,
const MCRegisterInfo MRI,
MCContext Ctx 
)

Definition at line 229 of file SparcMCCodeEmitter.cpp.

Referenced by LLVMInitializeSparcTargetMC().

◆ createSpeculativeExecutionIfHasBranchDivergencePass()

FunctionPass * llvm::createSpeculativeExecutionIfHasBranchDivergencePass ( )

◆ createSpeculativeExecutionPass()

FunctionPass * llvm::createSpeculativeExecutionPass ( )

◆ createSROAPass()

FunctionPass * llvm::createSROAPass ( )

◆ createStackProtectorPass()

Insert stack true FunctionPass * llvm::createStackProtectorPass ( )

createStackProtectorPass - This pass adds stack protectors to functions.

Definition at line 71 of file StackProtector.cpp.

Referenced by llvm::TargetPassConfig::addISelPrepare().

◆ createStoreClusterDAGMutation()

std::unique_ptr< ScheduleDAGMutation > llvm::createStoreClusterDAGMutation ( const TargetInstrInfo TII,
const TargetRegisterInfo TRI 
)

◆ createStraightLineStrengthReducePass()

Straight line strength false FunctionPass * llvm::createStraightLineStrengthReducePass ( )

◆ createStrideMask()

Constant * llvm::createStrideMask ( IRBuilder<> &  Builder,
unsigned  Start,
unsigned  Stride,
unsigned  VF 
)

Create a stride shuffle mask.

This function creates a shuffle mask whose elements begin at Start and are incremented by Stride. The mask can be used to deinterleave an interleaved vector into separate vectors of vectorization factor VF. The mask is of the form:

<Start, Start + Stride, ..., Start + Stride * (VF - 1)>

For example, the mask for Start = 0, Stride = 2, and VF = 4 is:

<0, 2, 4, 6>

Definition at line 639 of file VectorUtils.cpp.

Referenced by llvm::InnerLoopVectorizer::vectorizeInterleaveGroup().

◆ createStringError() [1/2]

template<typename... Ts>
Error llvm::createStringError ( std::error_code  EC,
char const Fmt,
const Ts &...  Vals 
)

◆ createStringError() [2/2]

Error llvm::createStringError ( std::error_code  EC,
char const Msg 
)

Definition at line 136 of file Error.cpp.

◆ createStripDeadDebugInfoPass()

ModulePass* llvm::createStripDeadDebugInfoPass ( )

◆ createStripDeadPrototypesPass()

ModulePass* llvm::createStripDeadPrototypesPass ( )

createStripDeadPrototypesPass - This pass removes any function declarations (prototypes) that are not used.

Referenced by LLVMAddStripDeadPrototypesPass(), and llvm::PassManagerBuilder::populateModulePassManager().

◆ createStripDebugDeclarePass()

ModulePass* llvm::createStripDebugDeclarePass ( )

◆ createStripNonDebugSymbolsPass()

ModulePass* llvm::createStripNonDebugSymbolsPass ( )

◆ createStripNonLineTableDebugInfoPass()

ModulePass* llvm::createStripNonLineTableDebugInfoPass ( )

This function returns a new pass that downgrades the debug info in the module to line tables only.

◆ createStripSymbolsPass()

ModulePass* llvm::createStripSymbolsPass ( bool  OnlyDebugInfo = false)

Referenced by LLVMAddStripSymbolsPass().

◆ createStructurizeCFGPass()

Pass * llvm::createStructurizeCFGPass ( bool  SkipUniformRegions = false)

When SkipUniformRegions is true the structizer will not structurize regions that only contain uniform branches.

Definition at line 1038 of file StructurizeCFG.cpp.

Referenced by llvm::R600TargetMachine::createPassConfig(), and llvm::GCNTargetMachine::getTargetTransformInfo().

◆ createSystemZElimComparePass()

FunctionPass * llvm::createSystemZElimComparePass ( SystemZTargetMachine TM)

◆ createSystemZExpandPseudoPass()

FunctionPass* llvm::createSystemZExpandPseudoPass ( SystemZTargetMachine TM)

◆ createSystemZISelDag()

FunctionPass * llvm::createSystemZISelDag ( SystemZTargetMachine TM,
CodeGenOpt::Level  OptLevel 
)

◆ createSystemZLDCleanupPass()

FunctionPass * llvm::createSystemZLDCleanupPass ( SystemZTargetMachine TM)

◆ createSystemZLongBranchPass()

FunctionPass * llvm::createSystemZLongBranchPass ( SystemZTargetMachine TM)

◆ createSystemZMCAsmBackend()

MCAsmBackend * llvm::createSystemZMCAsmBackend ( const Target T,
const MCSubtargetInfo STI,
const MCRegisterInfo MRI,
const MCTargetOptions Options 
)

◆ createSystemZMCCodeEmitter()

MCCodeEmitter * llvm::createSystemZMCCodeEmitter ( const MCInstrInfo MCII,
const MCRegisterInfo MRI,
MCContext Ctx 
)

◆ createSystemZObjectWriter()

std::unique_ptr< MCObjectTargetWriter > llvm::createSystemZObjectWriter ( uint8_t  OSABI)

◆ createSystemZShortenInstPass()

FunctionPass * llvm::createSystemZShortenInstPass ( SystemZTargetMachine TM)

◆ createSystemZTDCPass()

FunctionPass* llvm::createSystemZTDCPass ( )

◆ createTailCallEliminationPass()

Tail Call false FunctionPass * llvm::createTailCallEliminationPass ( )

◆ createTargetReduction()

Value * llvm::createTargetReduction ( IRBuilder<> &  B,
const TargetTransformInfo TTI,
RecurrenceDescriptor Desc,
Value Src,
bool  NoNaN = false 
)

Create a generic target reduction using a recurrence descriptor Desc The target is queried to determine if intrinsics or shuffle sequences are required to implement the reduction.

Create a vector reduction using a given recurrence descriptor.

Definition at line 877 of file LoopUtils.cpp.

References llvm::MCID::Add, createSimpleTargetReduction(), llvm::RecurrenceDescriptor::getMinMaxRecurrenceKind(), llvm::RecurrenceDescriptor::getRecurrenceKind(), llvm::TargetTransformInfo::ReductionFlags::IsMaxOp, llvm::TargetTransformInfo::ReductionFlags::IsSigned, llvm_unreachable, and llvm::TargetTransformInfo::ReductionFlags::NoNaN.

Referenced by llvm::InnerLoopVectorizer::fixReduction().

◆ createTargetTransformInfoWrapperPass()

ImmutablePass * llvm::createTargetTransformInfoWrapperPass ( TargetIRAnalysis  TIRA)

Create an analysis pass wrapper around a TTI object.

This analysis pass just holds the TTI instance and makes it available to clients.

Definition at line 1218 of file TargetTransformInfo.cpp.

References llvm::TargetTransformInfoWrapperPass::TargetTransformInfoWrapperPass().

Referenced by llvm::TargetPassConfig::addISelPasses(), LLVMAddAnalysisPasses(), and llvm::LTOCodeGenerator::optimize().

◆ createThreadSanitizerLegacyPassPass()

FunctionPass * llvm::createThreadSanitizerLegacyPassPass ( )

◆ createThumb2ITBlockPass()

FunctionPass * llvm::createThumb2ITBlockPass ( )

createThumb2ITBlockPass - Returns an instance of the Thumb2 IT blocks insertion pass.

Definition at line 319 of file Thumb2ITBlockPass.cpp.

Referenced by llvm::ARMBaseTargetMachine::createPassConfig().

◆ createThumb2SizeReductionPass()

FunctionPass * llvm::createThumb2SizeReductionPass ( std::function< bool(const Function &)>  Ftor = nullptr)

createThumb2SizeReductionPass - Returns an instance of the Thumb2 size reduction pass.

Definition at line 1149 of file Thumb2SizeReduction.cpp.

Referenced by llvm::ARMBaseTargetMachine::createPassConfig().

◆ createTypeBasedAAWrapperPass()

ImmutablePass* llvm::createTypeBasedAAWrapperPass ( )

◆ createUnifyFunctionExitNodesPass()

Pass* llvm::createUnifyFunctionExitNodesPass ( )

◆ createUnpackMachineBundles()

FunctionPass * llvm::createUnpackMachineBundles ( std::function< bool(const MachineFunction &)>  Ftor)

◆ createUnpackShuffleMask()

template<typename T = int>
void llvm::createUnpackShuffleMask ( MVT  VT,
SmallVectorImpl< T > &  Mask,
bool  Lo,
bool  Unary 
)

◆ createUnreachableBlockEliminationPass()

FunctionPass* llvm::createUnreachableBlockEliminationPass ( )

createUnreachableBlockEliminationPass - The LLVM code generator does not work well with unreachable basic blocks (what live ranges make sense for a block that cannot be reached?).

As such, a code generator should either not instruction select unreachable blocks, or run this pass as its last LLVM modifying pass to clean up blocks that are not reachable from the entry block.

Referenced by llvm::TargetPassConfig::addIRPasses(), llvm::TargetPassConfig::addPassesToHandleExceptions(), and llvm::WebAssemblyTargetMachine::createPassConfig().

◆ createVerifierPass()

FunctionPass * llvm::createVerifierPass ( bool  FatalErrors = true)

◆ createVLIWDAGScheduler()

ScheduleDAGSDNodes * llvm::createVLIWDAGScheduler ( SelectionDAGISel IS,
CodeGenOpt::Level  OptLevel 
)

createVLIWDAGScheduler - Scheduler for VLIW targets.

createVLIWDAGScheduler - This creates a top-down list scheduler.

This creates top down DFA driven list scheduler with clustering heuristic to control register pressure.

Definition at line 276 of file ScheduleDAGVLIW.cpp.

References llvm::SelectionDAGISel::AA, and llvm::SelectionDAGISel::MF.

Referenced by createDefaultScheduler(), and llvm::RegisterScheduler::setListener().

◆ createWarnMissedTransformationsPass()

transform Warn about non applied false Pass * llvm::createWarnMissedTransformationsPass ( )

◆ createWasmAsmParser()

MCAsmParserExtension * llvm::createWasmAsmParser ( )

Definition at line 141 of file WasmAsmParser.cpp.

◆ createWasmEHPass()

FunctionPass* llvm::createWasmEHPass ( )

createWasmEHPass - This pass adapts exception handling code to use WebAssembly's exception handling scheme.

Referenced by llvm::TargetPassConfig::addPassesToHandleExceptions().

◆ createWasmObjectWriter()

std::unique_ptr< MCObjectWriter > llvm::createWasmObjectWriter ( std::unique_ptr< MCWasmObjectTargetWriter MOTW,
raw_pwrite_stream OS 
)

Construct a new Wasm writer instance.

Parameters
MOTW- The target specific Wasm writer subclass.
OS- The stream to write to.
Returns
The constructed object writer.

Definition at line 1593 of file WasmObjectWriter.cpp.

Referenced by llvm::MCAsmBackend::createObjectWriter(), and llvm::MCWasmObjectTargetWriter::is64Bit().

◆ createWasmStreamer()

MCStreamer * llvm::createWasmStreamer ( MCContext Ctx,
std::unique_ptr< MCAsmBackend > &&  TAB,
std::unique_ptr< MCObjectWriter > &&  OW,
std::unique_ptr< MCCodeEmitter > &&  CE,
bool  RelaxAll 
)

◆ createWebAssemblyAddMissingPrototypes()

ModulePass* llvm::createWebAssemblyAddMissingPrototypes ( )

◆ createWebAssemblyArgumentMove()

FunctionPass* llvm::createWebAssemblyArgumentMove ( )

◆ createWebAssemblyAsmBackend()

MCAsmBackend * llvm::createWebAssemblyAsmBackend ( const Triple TT)

Definition at line 133 of file WebAssemblyAsmBackend.cpp.

References llvm::Triple::isArch64Bit().

Referenced by createAsmBackend().

◆ createWebAssemblyCallIndirectFixup()

FunctionPass* llvm::createWebAssemblyCallIndirectFixup ( )

◆ createWebAssemblyCFGSort()

FunctionPass* llvm::createWebAssemblyCFGSort ( )

◆ createWebAssemblyCFGStackify()

FunctionPass* llvm::createWebAssemblyCFGStackify ( )

◆ createWebAssemblyEHRestoreStackPointer()

FunctionPass* llvm::createWebAssemblyEHRestoreStackPointer ( )

◆ createWebAssemblyExplicitLocals()

FunctionPass* llvm::createWebAssemblyExplicitLocals ( )

◆ createWebAssemblyFixFunctionBitcasts()

ModulePass* llvm::createWebAssemblyFixFunctionBitcasts ( )

◆ createWebAssemblyFixIrreducibleControlFlow()

FunctionPass* llvm::createWebAssemblyFixIrreducibleControlFlow ( )

◆ createWebAssemblyISelDag()

FunctionPass * llvm::createWebAssemblyISelDag ( WebAssemblyTargetMachine TM,
CodeGenOpt::Level  OptLevel 
)

This pass converts a legalized DAG into a WebAssembly-specific DAG, ready for instruction scheduling.

Definition at line 113 of file WebAssemblyISelDAGToDAG.cpp.

Referenced by llvm::WebAssemblyTargetMachine::createPassConfig().

◆ createWebAssemblyLateEHPrepare()

FunctionPass* llvm::createWebAssemblyLateEHPrepare ( )

◆ createWebAssemblyLowerBrUnless()

FunctionPass* llvm::createWebAssemblyLowerBrUnless ( )

◆ createWebAssemblyLowerEmscriptenEHSjLj()

ModulePass* llvm::createWebAssemblyLowerEmscriptenEHSjLj ( bool  DoEH,
bool  DoSjLj 
)

◆ createWebAssemblyLowerGlobalDtors()

ModulePass* llvm::createWebAssemblyLowerGlobalDtors ( )

◆ createWebAssemblyMCCodeEmitter()

MCCodeEmitter * llvm::createWebAssemblyMCCodeEmitter ( const MCInstrInfo MCII)

Definition at line 56 of file WebAssemblyMCCodeEmitter.cpp.

References MI.

Referenced by createCodeEmitter().

◆ createWebAssemblyMemIntrinsicResults()

FunctionPass* llvm::createWebAssemblyMemIntrinsicResults ( )

◆ createWebAssemblyOptimizeLiveIntervals()

FunctionPass* llvm::createWebAssemblyOptimizeLiveIntervals ( )

◆ createWebAssemblyOptimizeReturned()

FunctionPass* llvm::createWebAssemblyOptimizeReturned ( )

◆ createWebAssemblyPeephole()

FunctionPass* llvm::createWebAssemblyPeephole ( )

◆ createWebAssemblyPrepareForLiveIntervals()

FunctionPass* llvm::createWebAssemblyPrepareForLiveIntervals ( )

◆ createWebAssemblyRegColoring()

FunctionPass* llvm::createWebAssemblyRegColoring ( )

◆ createWebAssemblyRegNumbering()

FunctionPass* llvm::createWebAssemblyRegNumbering ( )

◆ createWebAssemblyRegStackify()

FunctionPass* llvm::createWebAssemblyRegStackify ( )

◆ createWebAssemblyReplacePhysRegs()

FunctionPass* llvm::createWebAssemblyReplacePhysRegs ( )

◆ createWebAssemblySetP2AlignOperands()

FunctionPass* llvm::createWebAssemblySetP2AlignOperands ( )

◆ createWebAssemblyWasmObjectWriter()

std::unique_ptr< MCObjectTargetWriter > llvm::createWebAssemblyWasmObjectWriter ( bool  Is64Bit)

Definition at line 136 of file WebAssemblyWasmObjectWriter.cpp.

◆ createWholeProgramDevirtPass()

ModulePass * llvm::createWholeProgramDevirtPass ( ModuleSummaryIndex ExportSummary,
const ModuleSummaryIndex ImportSummary 
)

This pass implements whole-program devirtualization using type metadata.

The behavior depends on the summary arguments:

  • If ExportSummary is non-null, this pass will export type identifiers to the given summary.
  • Otherwise, if ImportSummary is non-null, this pass will import type identifiers from the given summary.
  • Otherwise it does neither. It is invalid for both ExportSummary and ImportSummary to be non-null.

Definition at line 612 of file WholeProgramDevirt.cpp.

Referenced by llvm::PassManagerBuilder::populateLTOPassManager(), llvm::PassManagerBuilder::populateModulePassManager(), and llvm::PassManagerBuilder::populateThinLTOPassManager().

◆ createWinCOFFObjectWriter()

std::unique_ptr< MCObjectWriter > llvm::createWinCOFFObjectWriter ( std::unique_ptr< MCWinCOFFObjectTargetWriter MOTW,
raw_pwrite_stream OS 
)

Construct a new Win COFF writer instance.

Parameters
MOTW- The target specific WinCOFF writer subclass.
OS- The stream to write to.
Returns
The constructed object writer.

Definition at line 1100 of file WinCOFFObjectWriter.cpp.

Referenced by llvm::MCAsmBackend::createObjectWriter(), and llvm::MCWinCOFFObjectTargetWriter::recordRelocation().

◆ createWinEHPass()

FunctionPass* llvm::createWinEHPass ( bool  DemoteCatchSwitchPHIOnly = false)

createWinEHPass - Prepares personality functions used by MSVC on Windows, in addition to the Itanium LSDA based personalities.

Referenced by llvm::TargetPassConfig::addPassesToHandleExceptions().

◆ createWriteThinLTOBitcodePass()

write thinlto Write ThinLTO true ModulePass * llvm::createWriteThinLTOBitcodePass ( raw_ostream Str,
raw_ostream ThinLinkOS = nullptr 
)

Write ThinLTO-ready bitcode to Str.

Definition at line 506 of file ThinLTOBitcodeWriter.cpp.

◆ createX86_32AsmBackend()

MCAsmBackend * llvm::createX86_32AsmBackend ( const Target T,
const MCSubtargetInfo STI,
const MCRegisterInfo MRI,
const MCTargetOptions Options 
)

◆ createX86_64AsmBackend()

MCAsmBackend * llvm::createX86_64AsmBackend ( const Target T,
const MCSubtargetInfo STI,
const MCRegisterInfo MRI,
const MCTargetOptions Options 
)

◆ CreateX86AsmInstrumentation()

X86AsmInstrumentation * llvm::CreateX86AsmInstrumentation ( const MCTargetOptions MCOptions,
const MCContext Ctx,
const MCSubtargetInfo *&  STI 
)

◆ createX86AsmTargetStreamer()

MCTargetStreamer * llvm::createX86AsmTargetStreamer ( MCStreamer S,
formatted_raw_ostream OS,
MCInstPrinter InstPrint,
bool  isVerboseAsm 
)

Implements X86-only directives for assembly emission.

Definition at line 446 of file X86WinCOFFTargetStreamer.cpp.

Referenced by LLVMInitializeX86TargetMC().

◆ createX86AvoidStoreForwardingBlocks()

Machine code false FunctionPass * llvm::createX86AvoidStoreForwardingBlocks ( )

Return a pass that avoids creating store forward block issues in the hardware.

Definition at line 129 of file X86AvoidStoreForwardingBlocks.cpp.

Referenced by llvm::X86TargetMachine::createPassConfig().

◆ createX86CallFrameOptimization()

FunctionPass * llvm::createX86CallFrameOptimization ( )

Return a pass that optimizes the code-size of x86 call sequences.

This is done by replacing esp-relative movs with pushes.

Definition at line 630 of file X86CallFrameOptimization.cpp.

Referenced by llvm::X86TargetMachine::createPassConfig().

◆ createX86CmovConverterPass()

X86 cmov false FunctionPass * llvm::createX86CmovConverterPass ( )

This pass converts X86 cmov instructions into branch when profitable.

Definition at line 860 of file X86CmovConversion.cpp.

Referenced by llvm::X86TargetMachine::createPassConfig().

◆ createX86CondBrFolding()

FunctionPass * llvm::createX86CondBrFolding ( )

◆ createX86DiscriminateMemOpsPass()

FunctionPass * llvm::createX86DiscriminateMemOpsPass ( )

This pass ensures instructions featuring a memory operand have distinctive <LineNumber, Discriminator> (with respect to eachother)

Definition at line 165 of file X86DiscriminateMemOps.cpp.

Referenced by llvm::X86TargetMachine::createPassConfig().

◆ createX86DomainReassignmentPass()

FunctionPass* llvm::createX86DomainReassignmentPass ( )

Return a Machine IR pass that reassigns instruction chains from one domain to another, when profitable.

Referenced by llvm::X86TargetMachine::createPassConfig().

◆ createX86ELFObjectWriter()

std::unique_ptr< MCObjectTargetWriter > llvm::createX86ELFObjectWriter ( bool  IsELF64,
uint8_t  OSABI,
uint16_t  EMachine 
)

Construct an X86 ELF object writer.

Definition at line 305 of file X86ELFObjectWriter.cpp.

Referenced by getRelaxedOpcode().

◆ createX86EvexToVexInsts()

FunctionPass * llvm::createX86EvexToVexInsts ( )

This pass replaces EVEX encoded of AVX-512 instructiosn by VEX encoding when possible in order to reduce code size.

Definition at line 277 of file X86EvexToVex.cpp.

Referenced by llvm::X86TargetMachine::createPassConfig().

◆ createX86ExpandPseudoPass()

FunctionPass * llvm::createX86ExpandPseudoPass ( )

Return a Machine IR pass that expands X86-specific pseudo instructions into a sequence of actual instructions.

Returns an instance of the pseudo instruction expansion pass.

This pass must run after prologue/epilogue insertion and before lowering the MachineInstr to MC.

Definition at line 399 of file X86ExpandPseudo.cpp.

Referenced by llvm::X86TargetMachine::createPassConfig().

◆ createX86FixupBWInsts()

FunctionPass * llvm::createX86FixupBWInsts ( )

◆ createX86FixupLEAs()

FunctionPass * llvm::createX86FixupLEAs ( )

◆ createX86FixupSetCC()

FunctionPass * llvm::createX86FixupSetCC ( )

◆ createX86FlagsCopyLoweringPass()

X86 EFLAGS copy false FunctionPass * llvm::createX86FlagsCopyLoweringPass ( )

Return a pass that lowers EFLAGS copy pseudo instructions.

Definition at line 149 of file X86FlagsCopyLowering.cpp.

References llvm::AnalysisUsage::addRequired(), and llvm::MachineFunctionPass::getAnalysisUsage().

Referenced by llvm::X86TargetMachine::createPassConfig().

◆ createX86FloatingPointStackifierPass()

FunctionPass * llvm::createX86FloatingPointStackifierPass ( )

This function returns a pass which converts floating-point register references and pseudo instructions into floating-point stack references and physical instructions.

Definition at line 305 of file X86FloatingPoint.cpp.

Referenced by llvm::X86TargetMachine::createPassConfig().

◆ createX86GlobalBaseRegPass()

FunctionPass * llvm::createX86GlobalBaseRegPass ( )

◆ createX86IndirectBranchTrackingPass()

FunctionPass * llvm::createX86IndirectBranchTrackingPass ( )

◆ createX86InsertPrefetchPass()

FunctionPass * llvm::createX86InsertPrefetchPass ( )

This pass applies profiling information to insert cache prefetches.

Definition at line 252 of file X86InsertPrefetch.cpp.

References PrefetchHintsFile.

Referenced by llvm::X86TargetMachine::createPassConfig().

◆ createX86InstructionSelector()

InstructionSelector * llvm::createX86InstructionSelector ( const X86TargetMachine TM,
X86Subtarget Subtarget,
X86RegisterBankInfo RBI 
)

Definition at line 1810 of file X86InstructionSelector.cpp.

Referenced by llvm::X86Subtarget::X86Subtarget().

◆ createX86ISelDag()

FunctionPass * llvm::createX86ISelDag ( X86TargetMachine TM,
CodeGenOpt::Level  OptLevel 
)

This pass converts a legalized DAG into a X86-specific DAG, ready for instruction scheduling.

Definition at line 4108 of file X86ISelDAGToDAG.cpp.

Referenced by llvm::X86TargetMachine::createPassConfig().

◆ createX86IssueVZeroUpperPass()

FunctionPass * llvm::createX86IssueVZeroUpperPass ( )

This pass inserts AVX vzeroupper instructions before each call to avoid transition penalty between functions encoded with AVX and SSE.

Definition at line 112 of file X86VZeroUpper.cpp.

References llvm_unreachable, and llvm::ARM_MB::ST.

Referenced by llvm::X86TargetMachine::createPassConfig().

◆ createX86MachObjectWriter()

std::unique_ptr< MCObjectTargetWriter > llvm::createX86MachObjectWriter ( bool  Is64Bit,
uint32_t  CPUType,
uint32_t  CPUSubtype 
)

Construct an X86 Mach-O object writer.

Definition at line 602 of file X86MachObjectWriter.cpp.

◆ createX86MacroFusionDAGMutation()

std::unique_ptr< ScheduleDAGMutation > llvm::createX86MacroFusionDAGMutation ( )

Note that you have to add: DAG.addMutation(createX86MacroFusionDAGMutation()); to X86PassConfig::createMachineScheduler() to have an effect.

Definition at line 179 of file X86MacroFusion.cpp.

References createBranchMacroFusionDAGMutation(), and shouldScheduleAdjacent().

Referenced by llvm::X86TargetMachine::getTargetTransformInfo().

◆ createX86MCCodeEmitter()

MCCodeEmitter * llvm::createX86MCCodeEmitter ( const MCInstrInfo MCII,
const MCRegisterInfo MRI,
MCContext Ctx 
)

Definition at line 1580 of file X86MCCodeEmitter.cpp.

Referenced by LLVMInitializeX86TargetMC().

◆ createX86ObjectTargetStreamer()

MCTargetStreamer * llvm::createX86ObjectTargetStreamer ( MCStreamer OS,
const MCSubtargetInfo STI 
)

Implements X86-only directives for object files.

Definition at line 456 of file X86WinCOFFTargetStreamer.cpp.

References llvm::MCSubtargetInfo::getTargetTriple(), and llvm::Triple::isOSBinFormatCOFF().

Referenced by LLVMInitializeX86TargetMC().

◆ createX86OptimizeLEAs()

FunctionPass * llvm::createX86OptimizeLEAs ( )

Return a pass that removes redundant LEA instructions and redundant address recalculations.

Definition at line 308 of file X86OptimizeLEAs.cpp.

References llvm::X86::AddrBaseReg, llvm::X86::AddrDisp, llvm::X86::AddrIndexReg, llvm::X86::AddrScaleAmt, llvm::X86::AddrSegmentReg, assert(), llvm::SmallVectorTemplateCommon< T, typename >::begin(), BuildMI(), llvm::MachineOperand::ChangeToImmediate(), llvm::MachineOperand::ChangeToRegister(), dbgs(), DefMI, DisableX86LEAOpt, llvm::MachineInstr::dump(), E, llvm::SmallVectorTemplateCommon< T, typename >::end(), llvm::SmallVectorImpl< T >::erase(), llvm::MachineBasicBlock::erase(), llvm::MachineInstr::eraseFromParent(), llvm::MachineInstr::getDebugExpression(), llvm::MachineInstr::getDebugLoc(), llvm::MachineInstr::getDebugVariable(), llvm::MachineInstr::getDesc(), llvm::MachineFunction::getFunction(), llvm::MachineOperand::getImm(), getMemOpKey(), llvm::X86II::getMemoryOperandNo(), llvm::MachineInstr::getNumOperands(), llvm::MachineOperand::getOffset(), llvm::MachineInstr::getOperand(), llvm::X86II::getOperandBias(), llvm::MachineBasicBlock::getParent(), llvm::MachineOperand::getParent(), llvm::MachineInstr::getParent(), getParent(), llvm::MachineOperand::getReg(), llvm::MachineFunction::getRegInfo(), llvm::MachineFunction::getSubtarget(), I, llvm::MachineInstr::isDebugValue(), isIdenticalOp(), llvm::MachineOperand::isImm(), llvm::MachineInstr::isIndirectDebugValue(), isInt< 32 >(), isInt< 8 >(), llvm::MachineOperand::isJTI(), isLEA(), isSimilarDispOp(), List, LLVM_DEBUG, llvm::MachineInstr::mayLoadOrStore(), MI, MRI, llvm::DIExpression::NoDeref, llvm::DIExpression::prepend(), llvm::MachineInstr::removeFromParent(), llvm::MachineOperand::setImm(), llvm::MachineOperand::setOffset(), llvm::MachineOperand::setReg(), TII, TRI, llvm::MCInstrDesc::TSFlags, and llvm::DIExpression::WithStackValue.

Referenced by llvm::X86TargetMachine::createPassConfig().

◆ createX86PadShortFunctions()

FunctionPass * llvm::createX86PadShortFunctions ( )

◆ createX86RetpolineThunksPass()

FunctionPass * llvm::createX86RetpolineThunksPass ( )

This pass creates the thunks for the retpoline feature.

Definition at line 82 of file X86RetpolineThunks.cpp.

References llvm::AttrBuilder::addAttribute(), llvm::Function::addAttributes(), llvm::MachineBasicBlock::addLiveIn(), llvm::MachineInstrBuilder::addReg(), addRegOffset(), llvm::MachineBasicBlock::addSuccessor(), assert(), B, llvm::MachineBasicBlock::back(), llvm::MachineFunction::begin(), BuildMI(), llvm::MachineBasicBlock::clear(), llvm::BasicBlock::Create(), llvm::Function::Create(), llvm::MachineFunction::CreateMachineBasicBlock(), llvm::IRBuilder< T, Inserter >::CreateRetVoid(), llvm::MCContext::createTempSymbol(), dbgs(), llvm::N86::EAX, EAXThunkName, llvm::N86::ECX, ECXThunkName, llvm::N86::EDI, EDIThunkName, llvm::N86::EDX, EDXThunkName, llvm::MachineFunction::end(), llvm::MachineFunction::erase(), llvm::N86::ESP, F(), llvm::MachineFunction::front(), llvm::AttributeList::FunctionIndex, llvm::FunctionType::get(), llvm::MachineBasicBlock::getBasicBlock(), llvm::Module::getContext(), llvm::MachineFunction::getContext(), llvm::MachineFunction::getName(), llvm::Module::getOrInsertComdat(), llvm::MachineFunction::getProperties(), llvm::MachineFunction::getSubtarget(), llvm::MachineFunction::getTarget(), llvm::Type::getVoidTy(), llvm::GlobalValue::HiddenVisibility, llvm::MachineFunction::insert(), llvm::GlobalValue::LinkOnceODRLinkage, LLVM_DEBUG, llvm_unreachable, llvm::Attribute::Naked, Name, llvm::Attribute::NoUnwind, llvm::MachineFunctionProperties::NoVRegs, llvm::MachineFunction::push_back(), Reg, llvm::MachineFunctionProperties::set(), llvm::MachineBasicBlock::setAlignment(), llvm::GlobalObject::setComdat(), llvm::MachineBasicBlock::setHasAddressTaken(), llvm::MachineInstr::setPreInstrSymbol(), llvm::GlobalValue::setVisibility(), llvm::MachineFunction::size(), llvm::StringRef::startswith(), TII, llvm::SystemZISD::TM, and llvm::Triple::x86_64.

Referenced by llvm::X86TargetMachine::createPassConfig().

◆ createX86SpeculativeLoadHardeningPass()

X86 speculative load false FunctionPass * llvm::createX86SpeculativeLoadHardeningPass ( )

◆ createX86WinAllocaExpander()

FunctionPass * llvm::createX86WinAllocaExpander ( )

Return a pass that expands WinAlloca pseudo-instructions.

Definition at line 75 of file X86WinAllocaExpander.cpp.

Referenced by llvm::X86TargetMachine::createPassConfig().

◆ createX86WinCOFFObjectWriter()

std::unique_ptr< MCObjectTargetWriter > llvm::createX86WinCOFFObjectWriter ( bool  Is64Bit)

Construct an X86 Win COFF object writer.

Definition at line 112 of file X86WinCOFFObjectWriter.cpp.

Referenced by getRelaxedOpcode().

◆ createX86WinCOFFStreamer()

MCStreamer * llvm::createX86WinCOFFStreamer ( MCContext C,
std::unique_ptr< MCAsmBackend > &&  AB,
std::unique_ptr< MCObjectWriter > &&  OW,
std::unique_ptr< MCCodeEmitter > &&  CE,
bool  RelaxAll,
bool  IncrementalLinkerCompatible 
)

Construct an X86 Windows COFF machine code streamer which will generate PE/COFF format object files.

Takes ownership of AB and CE.

Definition at line 63 of file X86WinCOFFStreamer.cpp.

Referenced by LLVMInitializeX86TargetMC().

◆ createX86WinEHStatePass()

FunctionPass * llvm::createX86WinEHStatePass ( )

Return an IR pass that inserts EH registration stack objects and explicit EH state updates.

This pass must run after EH preparation, which does Windows-specific but architecture-neutral preparation.

Definition at line 116 of file X86WinEHState.cpp.

Referenced by llvm::X86TargetMachine::createPassConfig().

◆ createXCoreFrameToArgsOffsetEliminationPass()

FunctionPass * llvm::createXCoreFrameToArgsOffsetEliminationPass ( )

◆ createXCoreISelDag()

FunctionPass * llvm::createXCoreISelDag ( XCoreTargetMachine TM,
CodeGenOpt::Level  OptLevel 
)

◆ createXCoreLowerThreadLocalPass()

ModulePass* llvm::createXCoreLowerThreadLocalPass ( )

◆ dbgs()

raw_ostream & llvm::dbgs ( )

dbgs() - This returns a reference to a raw_ostream for debugging messages.

dbgs - Return a circular-buffered debug stream.

If debugging is disabled it returns errs(). Use it like: dbgs() << "foo" << "bar";

Definition at line 133 of file Debug.cpp.

References llvm::sys::AddSignalHandler(), debug_user_sig_handler(), DebugFlag, EnableDebugBuffering, and errs().

Referenced by llvm::InstCombineWorklist::Add(), llvm::orc::CtorDtorRunner::add(), llvm::SSAUpdaterBulk::AddAvailableValue(), addData(), addDiscriminators(), addEdge(), addForcedAttributes(), llvm::ExecutionEngine::addGlobalMapping(), llvm::InstCombineWorklist::AddInitialGroup(), llvm::TargetPassConfig::addIRPasses(), llvm::TargetPassConfig::addISelPrepare(), llvm::PMDataManager::addLowerLevelRequiredPass(), AddMACCandidate(), llvm::TargetPassConfig::addMachinePasses(), llvm::orc::OrcMCJITReplacement::addModule(), addNonNullAttrs(), llvm::TargetPassConfig::addPrintPass(), AddReachableCodeToWorklist(), llvm::mca::RegisterFile::addRegisterWrite(), llvm::LoopAccessInfo::addRuntimeChecks(), addSegmentsWithValNo(), llvm::DIEHash::addSLEB128(), llvm::DIEHash::addULEB128(), llvm::SIScheduleBlock::addUnit(), llvm::SSAUpdaterBulk::AddUse(), llvm::IVUsers::AddUsersImpl(), llvm::SSAUpdaterBulk::AddVariable(), adjCycles(), llvm::BlockFrequencyInfoImplBase::adjustLoopHeaderMass(), AdjustStackOffset(), llvm::HexagonHazardRecognizer::AdvanceCycle(), llvm::AggressiveAntiDepBreaker::AggressiveAntiDepBreaker(), llvm::RegAllocBase::allocatePhysRegs(), llvm::AllocationOrder::AllocationOrder(), llvm::LoopVectorizeHints::allowVectorization(), allPhiOperandsUndefined(), alwaysAvailable(), llvm::GISelCSEInfo::analyze(), llvm::HexagonInstrInfo::analyzeBranch(), llvm::CCState::AnalyzeCallOperands(), llvm::CCState::AnalyzeCallResult(), llvm::CCState::AnalyzeFormalArguments(), llvm::InterleavedAccessInfo::analyzeInterleaving(), analyzeLoopUnrollCost(), analyzeParsePointLiveness(), llvm::CCState::AnalyzeReturn(), annotateAllFunctions(), AppendEndToFunction(), llvm::mca::Pipeline::appendStage(), llvm::A57ChainingConstraint::apply(), llvm::LegalizeRuleSet::apply(), llvm::RegisterBankInfo::applyDefaultMapping(), llvm::RuntimeDyldImpl::applyExternalSymbolRelocations(), llvm::MemorySSAUpdater::applyInsertUpdates(), llvm::DomTreeBuilder::SemiNCAInfo< DomTreeT >::ApplyNextUpdate(), applyPPChighesta(), llvm::DomTreeBuilder::SemiNCAInfo< DomTreeT >::ApplyUpdates(), AreAliased(), areCandidatesToMergeOrPair(), llvm::MemoryDepChecker::areDepsSafe(), areLoopExitPHIsSupported(), AreSequentialAccesses(), areStridedAccessesIndependent(), asmClobbersCTR(), assertBranchOrSelectConditionHoisted(), llvm::LiveRegMatrix::assign(), llvm::ARCFrameLowering::assignCalleeSavedSpillSlots(), llvm::HexagonFrameLowering::assignCalleeSavedSpillSlots(), AssignProtectedObjSet(), atomicSizeSupported(), llvm::DomTreeBuilder::SemiNCAInfo< DomTreeT >::attachNewSubtree(), BadConditionCode(), BBIsJumpedOver(), bitTrackingDCE(), llvm::LoopVectorizationLegality::blockNeedsPredication(), bothUsedInPHI(), llvm::BranchFolder::BranchFolder(), branchMaxOffsets(), BreakUpSubtract(), BUCompareLatency(), llvm::CFGMST< Edge, BBInfo >::buildEdges(), buildExtractionBlockSet(), llvm::VPlanSlp::buildGraph(), llvm::VPlanHCFGBuilder::buildHierarchicalCFG(), buildMultiplyTree(), llvm::ScheduleDAGInstrs::buildSchedGraph(), llvm::SchedBoundary::bumpCycle(), llvm::SchedBoundary::bumpNode(), BURRSort(), CalcNodeSethiUllmanNumber(), llvm::MachineBlockFrequencyInfo::calculate(), llvm::BlockFrequencyInfo::calculate(), llvm::BranchProbabilityInfo::calculate(), llvm::BlockFrequencyInfoImpl< llvm::BitTracker >::calculate(), calculateCXXStateNumbers(), llvm::DomTreeBuilder::SemiNCAInfo< DomTreeT >::CalculateFromScratch(), calculateOffsetDiff(), llvm::LiveRangeEdit::calculateRegClassAndHint(), llvm::LoopVectorizationCostModel::calculateRegisterUsage(), calculateSEHStateNumbers(), calculateSpillWeightsAndHints(), calculateUnswitchCostMultiplier(), llvm::DomTreeBuilder::CalculateWithUpdates(), callHasRegMask(), llvm::orc::remote::OrcRemoteTargetClient::callIntVoid(), llvm::orc::remote::OrcRemoteTargetClient::callMain(), callsiteIsHot(), llvm::orc::remote::OrcRemoteTargetClient::callVoidVoid(), canClobberPhysRegDefs(), canCreateAliasFor(), canEnableCoalescing(), canFoldInAddressingMode(), canFoldIVIncExpr(), llvm::LoopVectorizationLegality::canFoldTailByMasking(), llvm::slpvectorizer::BoUpSLP::canMapToVector(), llvm::RegBankSelect::EdgeInsertPoint::canMaterialize(), canMoveInstsAcrossMemOp(), llvm::HexagonPacketizerList::canPromoteToDotCur(), CanPropagatePredecessorsForPHIs(), canRenameComdat(), canSafelyUnrollMultiExitLoop(), llvm::MachineBasicBlock::canSplitCriticalEdge(), llvm::TailDuplicator::canTailDuplicate(), canTurnIntoCOPY(), llvm::LoopVectorizationLegality::canVectorize(), llvm::Evaluator::castCallResultIfNeeded(), CC_Lanai32_VarArg(), CC_MipsO32_FP64(), CC_RISCV(), changeFCMPPredToAArch64CC(), llvm::RuntimeDyldCheckerImpl::check(), llvm::GenericScheduler::checkAcyclicLatency(), llvm::TargetRegisterInfo::checkAllSuperRegsMarked(), checkBiasedBranch(), checkBiasedSelect(), checkDependencies(), CheckForCanReleaseCFGHazard(), checkForCyclesHelper(), llvm::SchedBoundary::checkHazard(), checkHoistValue(), CheckMACMemory(), checkRegOnlyPHIInputs(), clampStackAlignment(), llvm::HexagonPacketizerList::cleanUpDotCur(), llvm::SplitAnalysis::clear(), llvm::AnalysisManager< IRUnitT, ExtraArgTs >::clear(), llvm::objcarc::PtrState::ClearKnownPositiveRefCount(), cloneConstantExprWithNewAddressSpace(), CloneLoop(), llvm::FunctionComparator::cmpConstants(), llvm::rdf::DeadCodeElimination::collect(), llvm::sampleprof::SampleProfileReader::collectFuncsToUse(), collectFunctionUsers(), llvm::LoopVectorizationCostModel::collectInstsToScalarize(), llvm::ScalarEvolution::collectParametricTerms(), collectPHIs(), colorEHFunclets(), combineInstructionsOverFunction(), llvm::Combiner::combineMachineInstrs(), CompareMBBNumbers(), llvm::LTOCodeGenerator::compile(), completeEphemeralValues(), llvm::HexagonEvaluator::composeWithSubRegIndex(), llvm::ObjectSizeOffsetVisitor::compute(), llvm::ObjectSizeOffsetEvaluator::compute(), llvm::ScalarEvolution::computeAccessFunctions(), computeBranchTargetAndInversion(), ComputeCrossModuleImport(), ComputeCrossModuleImportForModule(), llvm::ScheduleDAGMILive::computeCyclicCriticalPath(), llvm::HexagonBlockRanges::computeDeadMap(), computeDeadSymbols(), computeImportForFunction(), ComputeImportForModule(), computeImportForReferencedGlobals(), llvm::DivergencePropagator::computeJoinPoints(), llvm::safestack::StackLayout::computeLayout(), llvm::rdf::Liveness::computeLiveIns(), llvm::HexagonBlockRanges::computeLiveMap(), computeLiveOuts(), llvm::BlockFrequencyInfoImplBase::computeLoopScale(), llvm::LoopVectorizationCostModel::computeMaxVF(), computePeelCount(), llvm::rdf::Liveness::computePhiInfo(), ComputePostOrders(), llvm::mca::computeProcResourceMasks(), llvm::DomTreeBuilder::SemiNCAInfo< DomTreeT >::ComputeUnreachableDominators(), computeUnrollAndJamCount(), computeUnrollCount(), computeWeight(), ConstantBuildVector(), constrainSelectedInstRegOperands(), llvm::sys::UnicodeCharSet::contains(), containsNewBackedge(), containsSafePHI(), ConvertDebugDeclareToDebugValue(), convertFloatingToInteger(), convertToDeclaration(), llvm::PPCInstrInfo::convertToImmediateForm(), ConvertToSInt(), copyDebugInfoToPredecessor(), copyDebugInfoToSuccessor(), llvm::HexagonInstrInfo::copyPhysReg(), llvm::X86InstrInfo::copyPhysReg(), llvm::SchedBoundary::countResource(), createAArch64ConditionOptimizerPass(), createAndInstr(), createBBSelectReg(), createBlockExtractorPass(), createBreakFalseDeps(), createCallInst(), createCast(), createCodeGenPreparePass(), createConstantHoistingPass(), createCopyConstrainDAGMutation(), createFalkorMarkStridedAccessesPass(), createGenericSchedPostRA(), createGreedyRegisterAllocator(), createHexagonHardwareLoops(), createHWAddressSanitizerPass(), createIrreducibleLoop(), createLICMPass(), CreateLoadIns(), createLoopDeletionPass(), createMergeFunctionsPass(), createObjCARCOptPass(), createPGOIndirectCallPromotionLegacyPass(), createPGOInstrumentationUseLegacyPass(), createRdxShuffleMask(), createRegUsageInfoCollector(), createSegmentsForValues(), createSIFixWWMLivenessPass(), createSIWholeQuadModePass(), CreateWrapper(), createX86CondBrFolding(), createX86FixupBWInsts(), createX86FixupLEAs(), createX86OptimizeLEAs(), createX86RetpolineThunksPass(), CriticalPathStep(), llvm::X86Disassembler::Debug(), debug_user_sig_handler(), debugAssign(), decodeFRMArg(), DecodeGPR32RegisterClass(), DecodeLdLImmInstruction(), DecodeLdRLImmInstruction(), DecodeMoveHRegInstruction(), DecodeStLImmInstruction(), llvm::VPBlockBase::deleteCFG(), deleteDeadInstruction(), llvm::DomTreeBuilder::SemiNCAInfo< DomTreeT >::DeleteEdge(), deleteIfDead(), deleteLoopIfDead(), llvm::DomTreeBuilder::SemiNCAInfo< DomTreeT >::DeleteReachable(), llvm::DomTreeBuilder::SemiNCAInfo< DomTreeT >::DeleteUnreachable(), llvm::ScalarEvolution::delinearize(), llvm::DependenceInfo::depends(), llvm::Constant::destroyConstant(), llvm::ARCFrameLowering::determineCalleeSaves(), llvm::ARMFrameLowering::determineCalleeSaves(), llvm::AArch64FrameLowering::determineCalleeSaves(), llvm::HexagonFrameLowering::determineCalleeSaves(), llvm::mca::Scheduler::dispatch(), llvm::orc::ExecutionSession::dispatchMaterialization(), llvm::BlockFrequencyInfoImplBase::distributeMass(), doCandidateWalk(), llvm::LoopVectorizationRequirements::doesNotMeet(), doPromotion(), llvm::SelectionDAGBuilder::dropDanglingDebugInfo(), llvm::MCLabel::dump(), llvm::Comdat::dump(), llvm::cfg::Update< NodePtr >::dump(), llvm::LiveDebugVariables::dump(), llvm::DbgValueHistoryMap::dump(), llvm::RegisterPressure::dump(), llvm::MCValue::dump(), llvm::ILPValue::dump(), llvm::MachineLoop::dump(), llvm::RegisterBankInfo::PartialMapping::dump(), llvm::BranchProbability::dump(), llvm::GCNRegPressure::dump(), llvm::DebugLocEntry::Value::dump(), llvm::RegisterBank::dump(), llvm::MCParsedAsmOperand::dump(), llvm::LatencyPriorityQueue::dump(), llvm::PHITransAddr::dump(), llvm::mca::RetireControlUnit::dump(), llvm::object::WasmSymbol::dump(), llvm::Trace::dump(), llvm::CallGraph::dump(), llvm::LiveVariables::VarInfo::dump(), llvm::Metadata::dump(), llvm::WebAssemblyException::dump(), llvm::DominanceFrontierBase< BasicBlock, false >::dump(), llvm::Pass::dump(), llvm::LexicalScope::dump(), llvm::opt::Arg::dump(), llvm::DebugCounter::dump(), llvm::sampleprof::LineLocation::dump(), llvm::DebugLoc::dump(), llvm::SubtargetFeatures::dump(), llvm::DIEAbbrev::dump(), llvm::MachineJumpTableInfo::dump(), llvm::Type::dump(), llvm::AsmToken::dump(), llvm::GVNExpression::Expression::dump(), llvm::MCAsmMacroParameter::dump(), llvm::bfi_detail::BlockMass::dump(), llvm::SCEV::dump(), llvm::ValueEnumerator::dump(), llvm::MCOperand::dump(), llvm::MCAsmMacro::dump(), llvm::AccelTableBase::HashData::dump(), llvm::GraphDiff< llvm::BasicBlock *, IsPostDom >::dump(), llvm::PMStack::dump(), llvm::LivePhysRegs::dump(), llvm::MachineConstantPool::dump(), llvm::MemoryAccess::dump(), llvm::IVUsers::dump(), llvm::SlotIndex::dump(), llvm::PressureDiff::dump(), llvm::mca::LSUnit::dump(), llvm::RegisterBankInfo::ValueMapping::dump(), llvm::DominanceFrontierWrapperPass::dump(), llvm::VirtRegMap::dump(), llvm::DomTreeUpdater::dump(), llvm::AccelTableBase::dump(), llvm::LiveRange::Segment::dump(), llvm::sampleprof::SampleRecord::dump(), llvm::mca::WriteState::dump(), llvm::mca::Scheduler::dump(), llvm::MCInst::dump(), llvm::CallGraphNode::dump(), llvm::opt::Option::dump(), llvm::PredicateInfo::dump(), llvm::Value::dump(), llvm::sampleprof::FunctionSamples::dump(), llvm::mca::RegisterFile::dump(), llvm::AliasSet::dump(), llvm::AppleAccelTableData::Atom::dump(), llvm::SDep::dump(), llvm::GCOVFile::dump(), llvm::RegisterBankInfo::InstructionMapping::dump(), llvm::mca::ResourceState::dump(), llvm::AttributeSet::dump(), llvm::coverage::CounterMappingContext::dump(), llvm::GCOVFunction::dump(), dump(), llvm::MachineOperand::dump(), llvm::ConstantRange::dump(), llvm::opt::ArgList::dump(), llvm::GCOVBlock::dump(), llvm::RegisterBankInfo::OperandsMapper::dump(), llvm::SlotIndexes::dump(), llvm::CallGraphWrapperPass::dump(), llvm::MCSymbol::dump(), llvm::AliasSetTracker::dump(), llvm::ScaledNumberBase::dump(), llvm::RegionBase< RegionTraits< Function > >::dump(), llvm::NodeSet::dump(), llvm::Twine::dump(), llvm::DIEValue::dump(), llvm::ScheduleDAGMILive::dump(), llvm::PBQP::RegAlloc::PBQPRAGraph::dump(), llvm::SplitEditor::dump(), llvm::BlockFrequencyInfoImplBase::dump(), llvm::RegPressureTracker::dump(), llvm::mca::WriteRef::dump(), llvm::Loop::dump(), llvm::ReadyQueue::dump(), llvm::MachineFunction::dump(), llvm::SMSchedule::dump(), llvm::LiveRange::dump(), llvm::ScheduleDAGInstrs::Value2SUsMap::dump(), llvm::AttributeList::dump(), llvm::LiveInterval::SubRange::dump(), llvm::ConstantUniqueMap< llvm::ConstantExpr >::dump(), llvm::MemorySSA::dump(), llvm::MachineBasicBlock::dump(), llvm::MachineFrameInfo::dump(), llvm::DIE::dump(), llvm::LiveInterval::dump(), llvm::Module::dump(), llvm::RegionInfoBase< RegionTraits< Function > >::dump(), llvm::SDNode::dump(), llvm::APFloat::dump(), llvm::ModuleSummaryIndex::dump(), llvm::NamedMDNode::dump(), llvm::MachineInstr::dump(), llvm::APInt::dump(), dump_registers(), llvm::PMTopLevelManager::dumpArguments(), llvm::SUnit::dumpAttributes(), llvm::SystemZHazardRecognizer::dumpCurrGroup(), llvm::vfs::RedirectingFileSystem::dumpEntry(), dumpImportListForModule(), dumpIR(), llvm::PMDataManager::dumpLastUses(), dumpMachineInstrRangeWithSlotIndex(), llvm::ScheduleDAGSDNodes::dumpNode(), llvm::ScheduleDAGInstrs::dumpNode(), llvm::ScheduleDAG::dumpNodeAll(), llvm::ScheduleDAG::dumpNodeName(), llvm::PMDataManager::dumpPassArguments(), llvm::PMDataManager::dumpPassInfo(), llvm::Pass::dumpPassStructure(), llvm::FPPassManager::dumpPassStructure(), llvm::GenericScheduler::dumpPolicy(), llvm::SystemZHazardRecognizer::dumpProcResourceCounters(), llvm::TargetRegisterInfo::dumpReg(), dumpRegSetPressure(), llvm::RuntimeDyldMachO::dumpRelocationToResolve(), dumpRelocs(), llvm::Twine::dumpRepr(), llvm::ScheduleDAGSDNodes::dumpSchedule(), llvm::ScheduleDAGMI::dumpSchedule(), llvm::SchedBoundary::dumpScheduledState(), dumpScopes(), dumpSectionMemory(), dumpSmallBitVector(), llvm::SystemZHazardRecognizer::dumpState(), dumpSUList(), llvm::PMDataManager::dumpUsedSet(), llvm::Loop::dumpVerbose(), llvm::JumpThreadingPass::DuplicateCondBranchOnPHIIntoPred(), llvm::ARCFrameLowering::eliminateCallFramePseudoInstr(), eliminateDeadStores(), eliminateDeadSwitchCases(), llvm::ARCRegisterInfo::eliminateFrameIndex(), eliminateNoopStore(), llvm::DIEAbbrev::Emit(), llvm::RuntimeDyldImpl::emitCommonSymbols(), llvm::ARCFrameLowering::emitEpilogue(), llvm::PPCDispatchGroupSBHazardRecognizer::EmitInstruction(), llvm::WebAssemblyAsmPrinter::EmitInstruction(), llvm::HexagonHazardRecognizer::EmitInstruction(), llvm::SystemZHazardRecognizer::EmitInstruction(), llvm::TargetLowering::EmitInstrWithCustomInserter(), llvm::ARCFrameLowering::emitPrologue(), llvm::RuntimeDyldImpl::emitSection(), llvm::LazyValueInfo::enableDT(), llvm::HexagonMCCodeEmitter::encodeInstruction(), llvm::HexagonMCCodeEmitter::EncodeSingleInstruction(), llvm::HexagonPacketizerList::endPacket(), llvm::VLIWPacketizerList::endPacket(), ensurePromotedGV(), llvm::SplitEditor::enterIntvAfter(), llvm::SplitEditor::enterIntvBefore(), llvm::SystemZPostRASchedStrategy::enterMBB(), llvm::rdf::DeadCodeElimination::erase(), eraseDeadBBsAndChildren(), llvm::InstCombiner::eraseInstFromFunction(), llvm::LiveRangeEdit::eraseVirtReg(), llvm::BitTracker::MachineEvaluator::evaluate(), llvm::Evaluator::EvaluateBlock(), llvm::Evaluator::EvaluateFunction(), EvaluateStaticConstructor(), llvm::VPBasicBlock::execute(), llvm::VPRegionBlock::execute(), executeCmpInst(), llvm::orc::JITCompileCallbackManager::executeCompileCallback(), executeFAddInst(), executeFCMP_OEQ(), executeFCMP_OGE(), executeFCMP_OGT(), executeFCMP_OLE(), executeFCMP_OLT(), executeFCMP_ONE(), executeFDivInst(), executeFMulInst(), executeFRemInst(), executeFSubInst(), executeICMP_EQ(), executeICMP_NE(), executeICMP_SGE(), executeICMP_SGT(), executeICMP_SLE(), executeICMP_SLT(), executeICMP_UGE(), executeICMP_UGT(), executeICMP_ULE(), executeICMP_ULT(), llvm::InstructionSelector::executeMatchTable(), expandBounds(), ExpandBVWithShuffles(), llvm::ARMBaseInstrInfo::expandPostRAPseudo(), extractInteger(), extractVector(), fdbgs(), llvm::AccelTableBase::finalize(), llvm::SchedDFSImpl::finalize(), llvm::orc::remote::OrcRemoteTargetClient::RemoteRTDyldMemoryManager::finalizeMemory(), llvm::GCNScheduleDAGMILive::finalizeSchedule(), llvm::RuntimeDyldMachOI386::finalizeSection(), llvm::RuntimeDyldMachOARM::finalizeSection(), find_best(), findArgumentCopyElisionCandidates(), llvm::ScalarEvolution::findArrayDimensions(), llvm::SSAUpdaterImpl< UpdaterT >::FindAvailableVals(), findBaseDefiningValueCached(), findBasePointer(), findCalledFunction(), findGCD(), findGluedUser(), FindIDom(), findInitTrampoline(), findInnerReductionPhi(), llvm::CodeExtractor::findInputsOutputs(), findIrreducibleHeaders(), llvm::SchedBoundary::findMaxLatency(), findPartitions(), FindPredecessorAutoreleaseWithSafePath(), findProfitablePHIs(), findReturnsToZap(), llvm::DomTreeBuilder::SemiNCAInfo< DomTreeT >::FindRoots(), findSingleRegDef(), findStartOfTree(), findUncondBrI(), llvm::RegScavenger::FindUnusedReg(), fixupGlobalSaddr(), llvm::ScheduleDAGInstrs::fixupKills(), fixupRegionExits(), llvm::AMDGPULibCalls::fold(), foldBlockIntoPredecessor(), FoldBranchToCommonDest(), foldMaskedShiftToBEXTR(), llvm::X86InstrInfo::foldMemoryOperandImpl(), foldReturnAndProcessPred(), llvm::InstCombiner::FoldShiftByConstant(), FoldTwoEntryPHINode(), formDedicatedExitBlocks(), llvm::ARMTargetLowering::functionArgumentNeedsConsecutiveRegisters(), llvm::StackSafetyInfo::FunctionInfo::FunctionInfo(), fuseInstructionPair(), llvm::GCNScheduleDAGMILive::GCNScheduleDAGMILive(), llvm::HexagonInstrInfo::genAllInsnTimingClasses(), llvm::ARMAsmBackendDarwin::generateCompactUnwindEncoding(), llvm::RuntimeDyldCOFFX86_64::generateRelocationStub(), generateStackAdjustment(), genLoopLimit(), llvm::DomTreeBuilder::SemiNCAInfo< DomTreeT >::ChildrenGetter< Inverse >::Get(), llvm::LegalizerInfo::getAction(), llvm::LegalizerInfo::getActionDefinitionsIdx(), llvm::RegBankSelect::getAnalysisUsage(), llvm::FunctionLoweringInfo::getArgumentFrameIndex(), getBlockName(), getBoundsCheckCond(), getBranchHint(), getBranchInsertPoint(), llvm::HexagonRegisterInfo::getCallerSavedRegs(), getChainID(), llvm::MemorySSA::ClobberWalkerBase::getClobberingMemoryAccessBase(), getCmpForPseudo(), getCombinerObjective(), getCompoundInsn(), getConstantPart(), llvm::legacy::FunctionPassManagerImpl::getContainedManager(), llvm::coverage::CoverageMapping::getCoverageForExpansion(), llvm::coverage::CoverageMapping::getCoverageForFile(), llvm::coverage::CoverageMapping::getCoverageForFunction(), getDIEStringAttr(), getDPPOp(), llvm::HexagonMCInstrInfo::getDuplexPossibilties(), getEdgeValueLocal(), getExpandedMinMaxOps(), getFalkorUnrollingPreferences(), getFilename(), llvm::StackMaps::getFnInfos(), llvm::Evaluator::getFormalParams(), GetFPLibCall(), getFPReg(), llvm::AArch64FrameLowering::getFrameIndexReferencePreferSP(), getFromRangeMetadata(), llvm::ExecutionEngine::getGlobalValueAtAddress(), llvm::HexagonHazardRecognizer::getHazardType(), llvm::ScoreboardHazardRecognizer::getHazardType(), getInductionVariable(), getInlineCost(), getInstrVecReg(), getIPMConversion(), getLAScore(), getLayoutSuccessorProbThreshold(), llvm::VNCoercion::getLoadValueForLoad(), GetLoopInvariantInsertPosition(), llvm::RegPressureTracker::getMaxUpwardPressureDelta(), llvm::orc::IRMaterializationUnit::getName(), getNarrowIntrinsic(), getNewAlignment(), getNewAlignmentDiff(), getNewSource(), getNewValueJumpOpcode(), llvm::DOTGraphTraits< BoUpSLP * >::getNodeAttributes(), getNotRelocatableInstructions(), getNumAllocatableRegsForConstraints(), getOffsetFromIndices(), getOModValue(), getOnlyLiveSuccessor(), llvm::SchedBoundary::getOtherResourceCount(), getPHIDestReg(), GetPointerOperand(), llvm::HexagonInstrInfo::getPredReg(), getPromotedVectorElementType(), GetPromotionOpcode(), getPtrStride(), GetQuadraticEquation(), getReassignedChan(), getRegClassForUnfoldedLoad(), getRegClassFromGRPhysReg(), llvm::CCState::getRemainingRegParmsForType(), getRetComponentType(), getSchedRegions(), getSelectsInScope(), getShiftAmountTyForConstant(), getSignature(), llvm::slpvectorizer::BoUpSLP::getSpillCost(), llvm::DependenceInfo::getSplitIteration(), getStartOrEndSlot(), getStoreOffset(), getSuccState(), llvm::object::WasmObjectFile::getSymbolFlags(), getTag(), llvm::slpvectorizer::BoUpSLP::getTreeCost(), getTypePartition(), getUnconditionalBrDisp(), getUnderlyingArgReg(), llvm::SelectionDAGISel::getUninvalidatedNodeId(), llvm::AMDGPUTTIImpl::getUnrollingPreferences(), llvm::ARMTTIImpl::getUnrollingPreferences(), llvm::MachineSSAUpdater::GetValueInMiddleOfBlock(), llvm::SSAUpdater::GetValueInMiddleOfBlock(), GetVBR(), GetVRegRenameMap(), getWeightFromBranchProb(), giveUpWithRemarks(), greaterWithBias(), handleADRP(), handleEndBlock(), handleFree(), handleNormalInst(), llvm::objcarc::BottomUpPtrState::HandlePotentialAlterRefCount(), llvm::objcarc::TopDownPtrState::HandlePotentialAlterRefCount(), llvm::objcarc::BottomUpPtrState::HandlePotentialUse(), llvm::objcarc::TopDownPtrState::HandlePotentialUse(), llvm::GISelCSEInfo::handleRecordedInst(), llvm::VPRecipeBuilder::handleReplication(), HasArgumentDef(), hasAtLeastTwoBiasedBranches(), hasDataDependencyPred(), hasOneExitNode(), hasOneNonDBGUseInst(), hasOnlyUniformBranches(), hasOutsideLoopUser(), hasProfileData(), llvm::DomTreeBuilder::SemiNCAInfo< DomTreeT >::HasProperSupport(), hasTiedDef(), hasUndefContents(), hasUsesOutsideLoop(), hasValueBeenRAUWed(), hasVRegCycleUse(), hasVulnerableLoad(), hasZeroSignBit(), HexagonMCShuffle(), hoist(), hoistAndMergeSGPRInits(), hoistRegion(), hoistValue(), llvm::ICallPromotionAnalysis::ICallPromotionAnalysis(), ignoreDependence(), llvm::FunctionImporter::importFunctions(), incorporateNewSCCRange(), inferAttrsFromFunctionBodies(), llvm::objcarc::BottomUpPtrState::InitBottomUp(), llvm::GenericScheduler::initCandidate(), llvm::GCNMaxOccupancySchedStrategy::initialize(), INITIALIZE_PASS(), INITIALIZE_PASS_END(), llvm::ExecutionEngine::InitializeMemory(), llvm::mca::initializeUsedResources(), llvm::AMDGPULibCalls::initNativeFuncs(), llvm::ScheduleDAGMILive::initRegPressure(), initVRegCycle(), inlineCallsImpl(), llvm::DivergenceAnalysis::inRegion(), llvm::SMSchedule::insert(), llvm::HexagonInstrInfo::insertBranch(), insertCopy(), insertDeleteInstructions(), llvm::po_iterator_storage< LoopBounds, true >::insertEdge(), llvm::DomTreeBuilder::SemiNCAInfo< DomTreeT >::InsertEdge(), insertInteger(), insertNopBeforeInstruction(), InsertPreheaderForLoop(), llvm::DomTreeBuilder::SemiNCAInfo< DomTreeT >::InsertReachable(), insertTrivialPHIs(), insertUndefLaneMask(), insertUniqueBackedgeBlock(), llvm::DomTreeBuilder::SemiNCAInfo< DomTreeT >::InsertUnreachable(), insertVector(), InstructionStoresToFI(), instrumentMaskedLoadOrStore(), instrumentOneFunc(), llvm::InternalizePass::internalizeModule(), intersect(), llvm::MachineTraceMetrics::Ensemble::invalidate(), llvm::MachineTraceMetrics::invalidate(), llvm::AnalysisManager< IRUnitT, ExtraArgTs >::invalidate(), llvm::InterleavedAccessInfo::invalidateGroupsRequiringScalarEpilogue(), inversePermutation(), llvm::HexagonInstrInfo::invertAndChangeJumpTarget(), llvm::IRTranslator::IRTranslator(), isACalleeSavedRegister(), isAlwaysFoldable(), llvm::LazyCallGraph::SCC::isAncestorOf(), isAnyConstantBuildVector(), isAtomic(), llvm::mca::RegisterFile::isAvailable(), isBitfieldExtractOpFromAnd(), isBitfieldExtractOpFromShr(), isBroadcastShuffle(), isCallerPreservedOrConstPhysReg(), isCallPromotable(), llvm::CoalescerPair::isCoalescable(), isCopyFeedingInvariantStore(), IsCPSRDead< MCInst >(), isCrossCopy(), isDataInvariant(), isDataInvariantLoad(), isDebug(), isDefInSubRange(), isEFLAGSLive(), isExplicitVecOuterLoop(), llvm::MemoryDepChecker::Dependence::isForward(), llvm::AArch64TargetLowering::isFPImmLegal(), isFpMulInstruction(), isFullCopyOf(), isFullUndefDef(), isFuncOrderCorrect(), isFunctionEntryBlock(), llvm::HexagonTargetObjectFile::isGlobalInSmallSection(), isIgnorableInst(), isImmValidForOpcode(), isIndirectBrTarget(), llvm::InductionDescriptor::isInductionPHI(), isInRage(), isInSymtab(), isIntegerLoopHeaderPHI(), isIntersect(), isKnownBaseResult(), isKnownTypeIdMember(), llvm::HexagonInstrInfo::isLateInstrFeedsEarlyInstr(), isLEASimpleIncOrDec(), llvm::AArch64TargetLowering::isLegalAddImmediate(), isLegalArithImmed(), llvm::X86Subtarget::isLegalToCallImmediateAddr(), isLiveOut(), isLoadConditional(), llvm::ScalarEvolution::isLoopBackedgeGuardedByCond(), llvm::ScalarEvolution::isLoopEntryGuardedByCond(), isLoopIncrement(), isLoopInvariant(), isMergeableLdStUpdate(), isMinSize(), IsMovepDestinationRegPair(), isMustExecuteIn(), IsNarrowSequence(), IsNonLocalValue(), isNopCopy(), isNoWrap(), isObjectDereferencedInBlock(), isOnlyReachableViaThisEdge(), isOperandOf(), isOverwrite(), isPCRel(), isPermutation(), isPHIRegionIndex(), isProfitableChain(), isProfitableForVectorization(), isPromotedInstructionLegal(), IsPseudoCallIndirect(), isReassociableOp(), llvm::RecurrenceDescriptor::isReductionPHI(), isRegUsedByPhiNodes(), isReInterleaveMask(), isRemainderZero(), IsSafeAndProfitableToMove(), isSafeAndProfitableToSpeculateAroundPHI(), isSafeToPromoteArgument(), isSafeToSpeculatePHIUsers(), isSafeToUnrollAndJam(), isSETCCorConvertedSETCC(), isSink(), llvm::FullDependence::isSplitable(), isTargetConstant(), isTerminalReg(), isThunkProfitable(), isTrivialLoopExitBlock(), isUnconditionalBranch(), llvm::LoopVectorizationLegality::isUniform(), isUniformLoop(), llvm::GCNUpwardRPTracker::isValid(), isValidEncoding(), llvm::SMSchedule::isValidSchedule(), isVectorReductionOp(), isVirtualRegisterOperand(), isWrapperOnlyCall(), iterativelySinkInstructions(), KnuthDiv(), llvm::LazyCallGraph::LazyCallGraph(), llvm::SplitEditor::leaveIntvAfter(), llvm::SplitEditor::leaveIntvBefore(), llvm::SystemZPostRASchedStrategy::leaveMBB(), llvm::LegalizerHelper::legalizeInstrStep(), LinearizeExprTree(), llvm_unreachable_internal(), llvm::coverage::CoverageMapping::load(), llvm::RuntimeDyldELF::loadObject(), llvm::ARCInstrInfo::loadRegFromStackSlot(), lookForCompound(), lookupCandidateBaseReg(), LoopIsOuterMostWithPredecessor(), llvm::LoopVectorizeHints::LoopVectorizeHints(), llvm::HexagonTargetLowering::LowerBITCAST(), llvm::HexagonTargetLowering::LowerCall(), llvm::HexagonTargetLowering::LowerDYNAMIC_STACKALLOC(), llvm::AArch64TargetLowering::LowerOperation(), llvm::ARMTargetLowering::LowerOperation(), makeBitReverse(), makeCombineInst(), mapBinOpcode(), llvm::SparseSolver< LatticeKey, LatticeVal, KeyInfo >::MarkBlockExecutable(), MarkBlocksLiveIn(), markTails(), llvm::HexagonEvaluator::mask(), MatchParallelMACSequences(), matchPassManager(), MatchReductions(), matchSwap(), llvm::gvn::AvailableValue::MaterializeAdjustedValue(), mayLoopAccessLocation(), MaySpeculate(), mayTailCallThisCC(), mayUseP9Setb(), mayUsePostIncMode(), llvm::LoopVectorizationCostModel::memoryInstructionCanBeWidened(), mergeCleanupPad(), mergeConstants(), mergeInlinedArrayAllocas(), mergeOperations(), minAPInt(), MoveAndTeeForMultiUse(), MoveForSingleUse(), moveLCSSAPhis(), llvm::object::MachORebaseEntry::moveNext(), llvm::object::MachOBindEntry::moveNext(), moveSpillUsesAfterCoroBegin(), moveUp(), nearest_common_dominator(), needsFP(), llvm::TargetRegisterInfo::needsStackRealignment(), NewSDValueDbgMsg(), node_eq(), normalizePBQPSpillWeight(), llvm::mca::ExecuteStage::notifyInstructionExecuted(), llvm::mca::ExecuteStage::notifyInstructionIssued(), llvm::mca::ExecuteStage::notifyInstructionReady(), llvm::mca::RetireStage::notifyInstructionRetired(), llvm::orc::remote::OrcRemoteTargetClient::RemoteRTDyldMemoryManager::notifyObjectLoaded(), llvm::mca::ExecuteStage::notifyResourceAvailable(), numVectorEltsOrZero(), llvm::AggressiveAntiDepBreaker::Observe(), okayForPHIOfOps(), llvm::mca::LSUnit::onInstructionExecuted(), operator new(), false::IntervalSorter::operator()(), llvm::bfi_detail::BlockEdgesAdder< BT >::operator()(), llvm::Expected< T >::operator*(), operator<<(), operator<<(), llvm::LazyCallGraph::operator=(), llvm::OProfileWrapper::OProfileWrapper(), OptimizeAwayTrappingUsesOfLoads(), optimizeCall(), llvm::slpvectorizer::BoUpSLP::optimizeGatherSequence(), optimizeGlobalCtorsList(), llvm::MemorySSA::OptimizeUses::OptimizeUses(), optimizeVcndVcmpPair(), llvm::OptLevelChanger::OptLevelChanger(), llvm::BlockFrequencyInfoImplBase::packageLoop(), packCmovGroup(), llvm::VLIWPacketizerList::PacketizeMIs(), parseCond(), patchAndReplaceAllUsesWith(), PeepholePPC64ZExtGather(), false::LibCallsShrinkWrap::perform(), performBitcastCombine(), performConcatVectorsCombine(), llvm::MipsSETargetLowering::PerformDAGCombine(), llvm::AArch64TargetLowering::PerformDAGCombine(), PerformHeapAllocSRoA(), performMaskedAtomicOp(), PerformSHLSimplify(), performSink(), llvm::GCNMaxOccupancySchedStrategy::pickNode(), llvm::R600SchedStrategy::pickNode(), llvm::SystemZPostRASchedStrategy::pickNode(), llvm::ConvergingVLIWScheduler::pickNode(), llvm::GenericScheduler::pickNode(), llvm::PostGenericScheduler::pickNode(), llvm::GenericScheduler::pickNodeBidirectional(), llvm::ConvergingVLIWScheduler::pickNodeBidrectional(), llvm::LoopVectorizationPlanner::plan(), llvm::LoopVectorizationPlanner::planInVPlanNativePath(), pointerInvalidatedByLoop(), populateCandidates(), populateDependencyMatrix(), llvm::RuntimeDyldMachO::populateIndirectSymbolPointersSection(), populateWorklist(), llvm::HexagonInstrInfo::PredicateInstruction(), PrepareCall(), llvm::HexagonDAGToDAGISel::PreprocessISelDAG(), llvm::TimePassesHandler::print(), llvm::PassManagerPrettyStackEntry::print(), llvm::GISelCSEInfo::print(), llvm::MemoryDepChecker::Dependence::print(), llvm::LiveIntervals::print(), llvm::BitTracker::print_cells(), llvm::SIScheduleBlock::printDebug(), printExtendedName(), printLivesAt(), PrintOps(), llvm::AlignmentFromAssumptionsPass::processAssumption(), llvm::JumpThreadingPass::ProcessBlock(), llvm::ARCFrameLowering::processFunctionBeforeFrameFinalized(), processInternalGlobal(), llvm::LoopVectorizePass::processLoop(), processLoopInVPlanNativePath(), processPHI(), llvm::RuntimeDyldCOFFI386::processRelocationRef(), llvm::RuntimeDyldCOFFThumb::processRelocationRef(), llvm::RuntimeDyldELF::processRelocationRef(), llvm::RuntimeDyldCOFFX86_64::processRelocationRef(), llvm::JumpThreadingPass::ProcessThreadableEdges(), ProfitableToMerge(), profitImm(), promoteArguments(), promoteIndirectCalls(), promoteLoopAccessesToScalars(), propagateMetadata(), pruneCache(), llvm::rdf::DataFlowGraph::pushAllDefs(), pushDepHeight(), llvm::CFLAndersAAResult::query(), llvm::CFLSteensAAResult::query(), llvm::GVNHoist::rank(), readInstruction32(), readSection(), readsVCCZ(), llvm::ConvergingVLIWScheduler::readyQueueVerboseDump(), llvm::RuntimeDyldImpl::reassignSectionAddress(), llvm::AArch64TargetLowering::ReconstructShuffle(), llvm::GISelCSEInfo::recordNewInstruction(), llvm::StackMaps::recordStatepoint(), llvm::ScheduleDAGInstrs::reduceHugeMemNodeMaps(), RedzoneSizeForScale(), RefineErrorLoc(), registerDefinedBetween(), llvm::GenericScheduler::registerRoots(), llvm::PostGenericScheduler::registerRoots(), regOverlapsSet(), llvm::R600SchedStrategy::releaseBottomNode(), llvm::ConvergingVLIWScheduler::releaseBottomNode(), llvm::LazyMachineBlockFrequencyInfoPass::releaseMemory(), llvm::DemandedBitsWrapperPass::releaseMemory(), llvm::ScheduleDAGMI::releasePred(), llvm::ScheduleDAGMI::releaseSucc(), llvm::R600SchedStrategy::releaseTopNode(), RematerializeCheapDef(), llvm::safestack::StackColoring::removeAllMarkers(), llvm::HexagonInstrInfo::removeBranch(), RemoveDeadAddBetweenLEAAndJT(), llvm::PMDataManager::removeDeadPasses(), removeExternalCFGEdges(), llvm::PMDataManager::removeNotPreservedAnalysis(), removeRedundantBlockingStores(), llvm::DomTreeBuilder::SemiNCAInfo< DomTreeT >::RemoveRedundantRoots(), removeUndefIntroducingPredecessor(), llvm::SlotIndexes::renumberIndexes(), replace(), llvm::orc::MaterializationResponsibility::replace(), llvm::SCEVExpander::replaceCongruentIVs(), ReplaceDominatedUses(), replaceDominatedUsesWith(), ReplaceFrameIndex(), llvm::InstCombiner::replaceInstUsesWith(), llvm::scc_iterator< GraphT, GT >::ReplaceNode(), replaceSymbolicStrideSCEV(), ReplaceUsesOfWith(), reportLoadElim(), reportMayClobberedLoad(), reportMismatch(), rescheduleCanonically(), rescheduleLexographically(), llvm::GenericScheduler::reschedulePhysReg(), llvm::orc::remote::OrcRemoteTargetClient::RemoteRTDyldMemoryManager::reserveAllocationSpace(), llvm::VLIWResourceModel::reserveResources(), llvm::HexagonHazardRecognizer::Reset(), llvm::ScoreboardHazardRecognizer::Reset(), llvm::cl::ResetAllOptionOccurrences(), llvm::rdf::Liveness::resetKills(), llvm::objcarc::PtrState::ResetSequenceProgress(), llvm::MipsTargetMachine::resetSubtarget(), llvm::orc::MaterializationResponsibility::resolve(), llvm::SelectionDAGBuilder::resolveDanglingDebugInfo(), llvm::RuntimeDyldImpl::resolveLocalRelocations(), llvm::RuntimeDyldELFMips::resolveMIPSO32Relocation(), llvm::RuntimeDyldELFMips::resolveRelocation(), llvm::RuntimeDyldCOFFI386::resolveRelocation(), llvm::RuntimeDyldCOFFThumb::resolveRelocation(), llvm::RuntimeDyldELF::resolveRelocation(), llvm::ARCFrameLowering::restoreCalleeSavedRegisters(), llvm::AArch64FrameLowering::restoreCalleeSavedRegisters(), RetagMask(), llvm::HexagonInstrInfo::reversePredSense(), llvm::SSAUpdaterBulk::RewriteAllUses(), rewriteDebugUsers(), RewriteP2Align(), llvm::IRCEPass::run(), llvm::LoopPredicationPass::run(), llvm::LoopDataPrefetchPass::run(), llvm::LoopDeletionPass::run(), llvm::rdf::CopyPropagation::run(), llvm::BitTracker::run(), llvm::SimpleLoopUnswitchPass::run(), llvm::BitcodeWriterPass::run(), llvm::DeadArgumentEliminationPass::run(), llvm::TruncInstCombine::run(), llvm::ThinLTOCodeGenerator::run(), llvm::InlinerPass::run(), llvm::PrintFunctionPass::run(), llvm::VerifierAnalysis::run(), llvm::Interpreter::run(), llvm::InstCombiner::run(), llvm::ModuleToPostOrderCGSCCPassAdaptor< CGSCCPassT >::run(), llvm::PassManager< Function >::run(), llvm::CGSCCToFunctionPassAdaptor< FunctionPassT >::run(), llvm::DevirtSCCRepeatedPass< PassT >::run(), llvm::Float2IntPass::runImpl(), llvm::SpeculativeExecutionPass::runImpl(), llvm::SLPVectorizerPass::runImpl(), llvm::JumpThreadingPass::runImpl(), runIPSCCP(), runOnBasicBlock(), llvm::LegacyDivergenceAnalysis::runOnFunction(), llvm::RGPassManager::runOnFunction(), llvm::PredicateInfoPrinterLegacyPass::runOnFunction(), llvm::MemorySSAPrinterLegacyPass::runOnFunction(), llvm::InstructionSelect::runOnMachineFunction(), llvm::Legalizer::runOnMachineFunction(), llvm::BreakFalseDeps::runOnMachineFunction(), llvm::SelectionDAGISel::runOnMachineFunction(), llvm::Localizer::runOnMachineFunction(), llvm::ReachingDefAnalysis::runOnMachineFunction(), llvm::RegisterClassInfo::runOnMachineFunction(), llvm::WebAssemblyExceptionInfo::runOnMachineFunction(), llvm::ExecutionDomainFix::runOnMachineFunction(), llvm::SlotIndexes::runOnMachineFunction(), llvm::RegBankSelect::runOnMachineFunction(), runSCCP(), salvageDebugInfo(), llvm::SelectionDAG::salvageDebugInfo(), salvageDebugInfoFromEmptyBlock(), llvm::sampleprof::SampleProfileReader::SampleProfileReader(), scaleCaseProbality(), scaleWeights(), scavengeFrameVirtualRegs(), llvm::RegScavenger::scavengeRegister(), llvm::RegScavenger::scavengeRegisterBackwards(), scavengeStackSlot(), llvm::R600SchedStrategy::schedNode(), llvm::SystemZPostRASchedStrategy::schedNode(), llvm::GCNIterativeScheduler::schedule(), llvm::VLIWMachineScheduler::schedule(), llvm::GCNScheduleDAGMILive::schedule(), llvm::SIScheduleBlock::schedule(), llvm::SwingSchedulerDAG::schedule(), llvm::GCNIterativeScheduler::OverrideLegacyStrategy::schedule(), llvm::ScheduleDAGMI::schedule(), llvm::SIScheduleDAGMI::schedule(), llvm::ScheduleDAGMILive::schedule(), llvm::GCNIterativeScheduler::scheduleILP(), llvm::GCNIterativeScheduler::scheduleLegacyMaxOccupancy(), llvm::ScheduleDAGMILive::scheduleMI(), llvm::GCNIterativeScheduler::scheduleMinReg(), llvm::PMTopLevelManager::schedulePass(), llvm::GCNIterativeScheduler::scheduleRegion(), llvm::SchedDFSResult::scheduleTree(), llvm::ConvergingVLIWScheduler::SchedulingCost(), llvm::ScoreboardHazardRecognizer::ScoreboardHazardRecognizer(), llvm::mca::Scheduler::select(), llvm::SelectionDAGISel::SelectCodeCommon(), selectCopy(), selectI64Imm(), llvm::LoopVectorizationCostModel::selectInterleaveCount(), llvm::FastISel::selectIntrinsicCall(), llvm::SplitEditor::selectIntv(), llvm::HvxSelector::selectShuffle(), llvm::LoopVectorizationCostModel::selectVectorizationFactor(), separateNestedLoop(), llvm::FaultMaps::serializeToFaultMapSection(), llvm::StackMaps::serializeToStackMapSection(), llvm::LoopVectorizationPlanner::setBestPlan(), llvm::BlockFrequencyInfoImpl< llvm::BitTracker >::setBlockFreq(), setBranchWeights(), llvm::InnerLoopVectorizer::setDebugLocFromInst(), llvm::BranchProbabilityInfo::setEdgeProbability(), setFastFlags(), llvm::SelectionDAG::setGraphColor(), llvm::objcarc::PtrState::SetKnownPositiveRefCount(), llvm::GenericSchedulerBase::setPolicy(), setProfMetadata(), llvm::objcarc::PtrState::SetSeq(), llvm::DwarfDebug::shareAcrossDWOCUs(), llvm::ARMBaseRegisterInfo::shouldCoalesce(), shouldConvert(), shouldFixMainFunction(), shouldInline(), shouldRotateLoopExitingLatch(), shouldSplit(), llvm::LiveIntervals::shrinkToUses(), llvm::HexagonShuffler::shuffle(), simplifyAllocaArraySize(), SimplifyBranchOnICmpChain(), SimplifyCondBranchToCondBranch(), SimplifyCondBranchToTwoReturns(), simplifyDivRem(), simplifyOneLoop(), sink(), sinkAndCmp0Expression(), SinkCommonCodeFromPredecessors(), SinkInstruction(), sinkInstruction(), sinkRegion(), llvm::SIScheduleBlockScheduler::SIScheduleBlockScheduler(), llvm::BasicBlockPass::skipBasicBlock(), llvm::FunctionPass::skipFunction(), llvm::LoopPass::skipLoop(), llvm::RegionPass::skipRegion(), AllocaSlices::SliceBuilder::SliceBuilder(), llvm::InstCombiner::SliceUpIllegalIntegerPHI(), llvm::SparseSolver< LatticeKey, LatticeVal, KeyInfo >::Solve(), SolveQuadraticAddRecExact(), SolveQuadraticAddRecRange(), llvm::APIntOps::SolveQuadraticEquationWrap(), SortBlocks(), SortCallTargets(), speculatePHINodeLoads(), speculatePHIs(), speculateSelectInstLoads(), SpeculativelyExecuteBB(), llvm::ARCFrameLowering::spillCalleeSavedRegisters(), llvm::AArch64FrameLowering::spillCalleeSavedRegisters(), split(), splitBlock(), splitCallSite(), llvm::MachineBasicBlock::SplitCriticalEdge(), splitEdge(), splitMBB(), llvm::LiveIntervals::splitSeparateComponents(), SRAGlobal(), StackMallocSizeClass(), llvm::DbgValueHistoryMap::startInstrRange(), llvm::ARCInstrInfo::storeRegToStackSlot(), llvm::ExecutionEngine::StoreValueToMemory(), false::Chain::str(), subRangeLiveAt(), swapMIOperands(), llvm::TailDuplicator::tailDuplicateBlocks(), thinLTOResolvePrevailingInModule(), llvm::JumpThreadingPass::ThreadEdge(), llvm::JumpThreadingPass::ThreadGuard(), llvm::ConvergingVLIWScheduler::traceCandidate(), llvm::GenericSchedulerBase::traceCandidate(), tracePick(), truncateIVUse(), llvm::LegalizationArtifactCombiner::tryCombineAnyExt(), llvm::CombinerHelper::tryCombineExtendingLoads(), llvm::LegalizationArtifactCombiner::tryCombineSExt(), llvm::LegalizationArtifactCombiner::tryCombineZExt(), llvm::HexagonMCInstrInfo::tryCompound(), llvm::mca::RegisterFile::tryEliminateMove(), llvm::LegalizationArtifactCombiner::tryFoldImplicitDef(), tryFoldInst(), tryLowerToSLI(), llvm::GCNIterativeScheduler::tryMaximizeOccupancy(), tryPromoteAllocaToVector(), llvm::VPRecipeBuilder::tryToCreateRecipe(), tryToElideArgumentCopy(), tryToReplaceWithConstant(), tryToShorten(), TryToShrinkGlobalToBoolean(), TryToSimplifyUncondBranchFromEmptyBlock(), TryToSinkInstruction(), tryToSpeculatePHIs(), tryToUnrollAndJamLoop(), tryToUnrollLoop(), tryToVectorizeHorReductionOrInstOperands(), turnGuardIntoBranch(), TypeSizeToSizeIndex(), llvm::LiveRegMatrix::unassign(), UnrollAndJamLoop(), UnrollLoop(), UnrollRuntimeLoopRemainder(), unsupportedBinOp(), unswitchBestCondition(), unswitchTrivialBranch(), unswitchTrivialSwitch(), unwrapLoop(), llvm::LiveIntervals::HMEditor::updateAllRanges(), llvm::InnerLoopVectorizer::updateAnalysis(), llvm::MachineTraceMetrics::Ensemble::updateDepth(), llvm::DomTreeBuilder::SemiNCAInfo< DomTreeT >::UpdateInsertion(), llvm::DomTreeBuilder::SemiNCAInfo< DomTreeT >::UpdateLevelsAfterInsertion(), updateOperand(), updateOperandRegConstraints(), updatePredecessorProfileMetadata(), llvm::ScheduleDAGMILive::updatePressureDiffs(), llvm::DomTreeBuilder::SemiNCAInfo< DomTreeT >::UpdateRootsAfterUpdate(), llvm::DomTreeBuilder::SemiNCAInfo< DomTreeT >::UpdateRootsBeforeInsertion(), llvm::ScheduleDAGMILive::updateScheduledPressure(), llvm::MipsSubtarget::useConstantIslands(), usedAsAddr(), llvm::AMDGPULibCalls::useNative(), useSinCos(), llvm::ValueHandleBase::ValueIsDeleted(), llvm::ValueHandleBase::ValueIsRAUWd(), llvm::LoopVectorizeHints::vectorizeAnalysisPassName(), llvm::slpvectorizer::BoUpSLP::vectorizeTree(), Verify(), llvm::LegalizerInfo::verify(), llvm::LoopInfoBase< BasicBlock, Loop >::verify(), llvm::ScalarEvolution::verify(), verifyCTRBranch(), llvm::VPlanVerifier::verifyHierarchicalCFG(), llvm::LoopBase< BasicBlock, Loop >::verifyLoop(), verifyModule(), llvm::mca::verifyOperands(), llvm::DomTreeBuilder::SemiNCAInfo< DomTreeT >::verifyParentProperty(), VerifyPHIs(), llvm::ScheduleDAG::VerifyScheduledDAG(), VerifySDNode(), llvm::LegalizeRuleSet::verifyTypeIdxsCoverage(), llvm::sroa::AllocaSliceRewriter::visit(), llvm::Interpreter::visitAllocaInst(), llvm::InstCombiner::visitAllocaInst(), llvm::Interpreter::visitBinaryOperator(), llvm::Interpreter::visitExtractElementInst(), llvm::Interpreter::visitFCmpInst(), llvm::Interpreter::visitICmpInst(), llvm::DomTreeBuilder::SemiNCAInfo< DomTreeT >::VisitInsertion(), llvm::Interpreter::visitInsertValueInst(), llvm::ObjectSizeOffsetVisitor::visitInstruction(), llvm::ObjectSizeOffsetEvaluator::visitInstruction(), llvm::Interpreter::visitLoadInst(), llvm::InstCombiner::visitSExt(), llvm::Interpreter::visitStoreInst(), llvm::InstCombiner::visitTrunc(), llvm::Interpreter::visitVAArgInst(), llvm::InstCombiner::visitZExt(), warnAboutLeftoverTransformations(), llvm::InnerLoopVectorizer::widenInstruction(), X86SelectAddress(), llvm::DebugCounter::~DebugCounter(), llvm::LiveDebugVariables::~LiveDebugVariables(), llvm::OptLevelChanger::~OptLevelChanger(), llvm::orc::remote::OrcRemoteTargetClient::RemoteRTDyldMemoryManager::~RemoteRTDyldMemoryManager(), llvm::Value::~Value(), and llvm::ValueSymbolTable::~ValueSymbolTable().

◆ deallocate_buffer()

void llvm::deallocate_buffer ( void *  Ptr,
size_t  Size,
size_t  Alignment 
)
inline

Deallocate a buffer of memory with the given size and alignment.

If supported, this will used the sized delete operator. Also if supported, this will pass the alignment to the delete operator.

The pointer must have been allocated with the corresponding new operator, most likely using the above helper.

Definition at line 549 of file Compiler.h.

Referenced by llvm::unique_function< ReturnT(ParamTs...)>::~unique_function().

◆ decDigitValue()

static unsigned int llvm::decDigitValue ( unsigned int  c)
inlinestatic

◆ declareSanitizerInitFunction()

Function * llvm::declareSanitizerInitFunction ( Module M,
StringRef  InitName,
ArrayRef< Type *>  InitArgTypes 
)

◆ DecodeBLENDMask()

void llvm::DecodeBLENDMask ( unsigned  NumElts,
unsigned  Imm,
SmallVectorImpl< int > &  ShuffleMask 
)

Decode a BLEND immediate mask into a shuffle mask.

Definition at line 329 of file X86ShuffleDecode.cpp.

References llvm::tgtok::Bit, and llvm::SmallVectorTemplateBase< T, bool >::push_back().

Referenced by EmitAnyX86InstComments(), and getTargetShuffleMask().

◆ DecodeEXTRQIMask()

void llvm::DecodeEXTRQIMask ( unsigned  NumElts,
unsigned  EltSize,
int  Len,
int  Idx,
SmallVectorImpl< int > &  ShuffleMask 
)

Decode a SSE4A EXTRQ instruction as a shuffle mask.

Definition at line 415 of file X86ShuffleDecode.cpp.

References llvm::SmallVectorImpl< T >::append(), llvm::SmallVectorTemplateBase< T, bool >::push_back(), SM_SentinelUndef, and SM_SentinelZero.

Referenced by EmitAnyX86InstComments(), and getTargetShuffleMask().

◆ DecodeInsertElementMask()

void llvm::DecodeInsertElementMask ( unsigned  NumElts,
unsigned  Idx,
unsigned  Len,
SmallVectorImpl< int > &  ShuffleMask 
)

◆ DecodeINSERTPSMask()

void llvm::DecodeINSERTPSMask ( unsigned  Imm,
SmallVectorImpl< int > &  ShuffleMask 
)

Decode a 128-bit INSERTPS instruction as a v4f32 shuffle mask.

Definition at line 24 of file X86ShuffleDecode.cpp.

References llvm::SmallVectorTemplateBase< T, bool >::push_back(), and SM_SentinelZero.

Referenced by EmitAnyX86InstComments(), and getTargetShuffleMask().

◆ DecodeINSERTQIMask()

void llvm::DecodeINSERTQIMask ( unsigned  NumElts,
unsigned  EltSize,
int  Len,
int  Idx,
SmallVectorImpl< int > &  ShuffleMask 
)

Decode a SSE4A INSERTQ instruction as a shuffle mask.

Definition at line 452 of file X86ShuffleDecode.cpp.

References llvm::SmallVectorImpl< T >::append(), llvm::SmallVectorTemplateBase< T, bool >::push_back(), and SM_SentinelUndef.

Referenced by EmitAnyX86InstComments(), and getTargetShuffleMask().

◆ DecodeMOVDDUPMask()

void llvm::DecodeMOVDDUPMask ( unsigned  NumElts,
SmallVectorImpl< int > &  ShuffleMask 
)

◆ DecodeMOVHLPSMask()

void llvm::DecodeMOVHLPSMask ( unsigned  NElts,
SmallVectorImpl< int > &  ShuffleMask 
)

Decode a MOVHLPS instruction as a v2f64/v4f32 shuffle mask.

i.e. <3,1> or <6,7,2,3>

Definition at line 58 of file X86ShuffleDecode.cpp.

References llvm::SmallVectorTemplateBase< T, bool >::push_back().

Referenced by EmitAnyX86InstComments(), and getTargetShuffleMask().

◆ DecodeMOVLHPSMask()

void llvm::DecodeMOVLHPSMask ( unsigned  NElts,
SmallVectorImpl< int > &  ShuffleMask 
)

Decode a MOVLHPS instruction as a v2f64/v4f32 shuffle mask.

i.e. <0,2> or <0,1,4,5>

Definition at line 67 of file X86ShuffleDecode.cpp.

References llvm::SmallVectorTemplateBase< T, bool >::push_back().

Referenced by EmitAnyX86InstComments(), and getTargetShuffleMask().

◆ DecodeMOVSHDUPMask()

void llvm::DecodeMOVSHDUPMask ( unsigned  NumElts,
SmallVectorImpl< int > &  ShuffleMask 
)

◆ DecodeMOVSLDUPMask()

void llvm::DecodeMOVSLDUPMask ( unsigned  NumElts,
SmallVectorImpl< int > &  ShuffleMask 
)

◆ DecodePALIGNRMask()

void llvm::DecodePALIGNRMask ( unsigned  NumElts,
unsigned  Imm,
SmallVectorImpl< int > &  ShuffleMask 
)

◆ DecodePSHUFBMask() [1/2]

void llvm::DecodePSHUFBMask ( const Constant C,
unsigned  Width,
SmallVectorImpl< int > &  ShuffleMask 
)

◆ DecodePSHUFBMask() [2/2]

void llvm::DecodePSHUFBMask ( ArrayRef< uint64_t >  RawMask,
const APInt UndefElts,
SmallVectorImpl< int > &  ShuffleMask 
)

Decode a PSHUFB mask from a raw array of constants such as from BUILD_VECTOR.

Definition at line 307 of file X86ShuffleDecode.cpp.

References llvm::SmallVectorTemplateBase< T, bool >::push_back(), llvm::ArrayRef< T >::size(), SM_SentinelUndef, and SM_SentinelZero.

Referenced by llvm::X86AsmPrinter::EmitInstruction(), and getTargetShuffleMask().

◆ DecodePSHUFHWMask()

void llvm::DecodePSHUFHWMask ( unsigned  NumElts,
unsigned  Imm,
SmallVectorImpl< int > &  ShuffleMask 
)

Decodes the shuffle masks for pshufhw.

VT indicates the type of the vector allowing it to handle different datatypes and vector widths.

Definition at line 164 of file X86ShuffleDecode.cpp.

References llvm::SmallVectorTemplateBase< T, bool >::push_back().

Referenced by EmitAnyX86InstComments(), and getTargetShuffleMask().

◆ DecodePSHUFLWMask()

void llvm::DecodePSHUFLWMask ( unsigned  NumElts,
unsigned  Imm,
SmallVectorImpl< int > &  ShuffleMask 
)

Decodes the shuffle masks for pshuflw.

VT indicates the type of the vector allowing it to handle different datatypes and vector widths.

Definition at line 178 of file X86ShuffleDecode.cpp.

References llvm::SmallVectorTemplateBase< T, bool >::push_back().

Referenced by EmitAnyX86InstComments(), and getTargetShuffleMask().

◆ DecodePSHUFMask()

void llvm::DecodePSHUFMask ( unsigned  NumElts,
unsigned  ScalarBits,
unsigned  Imm,
SmallVectorImpl< int > &  ShuffleMask 
)

DecodePSHUFMask - This decodes the shuffle masks for pshufw, pshufd, and vpermilp*.

Decodes the shuffle masks for pshufd/pshufw/vpermilpd/vpermilps.

VT indicates the type of the vector allowing it to handle different datatypes and vector widths.

Definition at line 148 of file X86ShuffleDecode.cpp.

References llvm::SmallVectorTemplateBase< T, bool >::push_back(), and Size.

Referenced by EmitAnyX86InstComments(), and getTargetShuffleMask().

◆ DecodePSLLDQMask()

void llvm::DecodePSLLDQMask ( unsigned  NumElts,
unsigned  Imm,
SmallVectorImpl< int > &  ShuffleMask 
)

◆ DecodePSRLDQMask()

void llvm::DecodePSRLDQMask ( unsigned  NumElts,
unsigned  Imm,
SmallVectorImpl< int > &  ShuffleMask 
)

◆ DecodePSWAPMask()

void llvm::DecodePSWAPMask ( unsigned  NumElts,
SmallVectorImpl< int > &  ShuffleMask 
)

Decodes a PSWAPD 3DNow! instruction.

Definition at line 192 of file X86ShuffleDecode.cpp.

References llvm::SmallVectorTemplateBase< T, bool >::push_back().

Referenced by EmitAnyX86InstComments().

◆ DecodeScalarMoveMask()

void llvm::DecodeScalarMoveMask ( unsigned  NumElts,
bool  IsLoad,
SmallVectorImpl< int > &  Mask 
)

Decode a scalar float move instruction as a shuffle mask.

Definition at line 406 of file X86ShuffleDecode.cpp.

References llvm::SmallVectorTemplateBase< T, bool >::push_back(), and SM_SentinelZero.

Referenced by EmitAnyX86InstComments(), and getTargetShuffleMask().

◆ DecodeSHUFPMask()

void llvm::DecodeSHUFPMask ( unsigned  NumElts,
unsigned  ScalarBits,
unsigned  Imm,
SmallVectorImpl< int > &  ShuffleMask 
)

DecodeSHUFPMask - This decodes the shuffle masks for shufp*.

Decodes the shuffle masks for shufp*.

VT indicates the type of the vector allowing it to handle different datatypes and vector widths.

Definition at line 204 of file X86ShuffleDecode.cpp.

References llvm::SmallVectorTemplateBase< T, bool >::push_back().

Referenced by EmitAnyX86InstComments(), and getTargetShuffleMask().

◆ decodeSLEB128()

int64_t llvm::decodeSLEB128 ( const uint8_t *  p,
unsigned n = nullptr,
const uint8_t *  end = nullptr,
const char **  error = nullptr 
)
inline

Utility function to decode a SLEB128 value.

Definition at line 162 of file LEB128.h.

References llvm::sys::path::end(), error, getSLEB128Size(), and getULEB128Size().

Referenced by llvm::object::MachOBindEntry::moveNext(), nextLEB(), and readLEB128().

◆ DecodeSubVectorBroadcast()

void llvm::DecodeSubVectorBroadcast ( unsigned  DstNumElts,
unsigned  SrcNumElts,
SmallVectorImpl< int > &  ShuffleMask 
)

Decodes a broadcast of a subvector to a larger vector type.

Definition at line 266 of file X86ShuffleDecode.cpp.

References llvm::SmallVectorTemplateBase< T, bool >::push_back().

Referenced by EmitAnyX86InstComments().

◆ decodeULEB128()

uint64_t llvm::decodeULEB128 ( const uint8_t *  p,
unsigned n = nullptr,
const uint8_t *  end = nullptr,
const char **  error = nullptr 
)
inline

◆ DecodeUNPCKHMask()

void llvm::DecodeUNPCKHMask ( unsigned  NumElts,
unsigned  ScalarBits,
SmallVectorImpl< int > &  ShuffleMask 
)

DecodeUNPCKHMask - This decodes the shuffle masks for unpckhps/unpckhpd and punpckh*.

Decodes the shuffle masks for unpckhps/unpckhpd and punpckh*.

VT indicates the type of the vector allowing it to handle different datatypes and vector widths.

Definition at line 224 of file X86ShuffleDecode.cpp.

References llvm::SmallVectorTemplateBase< T, bool >::push_back().

Referenced by EmitAnyX86InstComments(), and getTargetShuffleMask().

◆ DecodeUNPCKLMask()

void llvm::DecodeUNPCKLMask ( unsigned  NumElts,
unsigned  ScalarBits,
SmallVectorImpl< int > &  ShuffleMask 
)

DecodeUNPCKLMask - This decodes the shuffle masks for unpcklps/unpcklpd and punpckl*.

Decodes the shuffle masks for unpcklps/unpcklpd and punpckl*.

VT indicates the type of the vector allowing it to handle different datatypes and vector widths.

Definition at line 243 of file X86ShuffleDecode.cpp.

References llvm::SmallVectorTemplateBase< T, bool >::push_back().

Referenced by EmitAnyX86InstComments(), and getTargetShuffleMask().

◆ DecodeVALIGNMask()

void llvm::DecodeVALIGNMask ( unsigned  NumElts,
unsigned  Imm,
SmallVectorImpl< int > &  ShuffleMask 
)

◆ DecodeVectorBroadcast()

void llvm::DecodeVectorBroadcast ( unsigned  NumElts,
SmallVectorImpl< int > &  ShuffleMask 
)

Decodes a broadcast of the first element of a vector.

Definition at line 260 of file X86ShuffleDecode.cpp.

References llvm::SmallVectorImpl< T >::append().

Referenced by getTargetShuffleMask().

◆ DecodeVPERM2X128Mask()

void llvm::DecodeVPERM2X128Mask ( unsigned  NumElts,
unsigned  Imm,
SmallVectorImpl< int > &  ShuffleMask 
)

◆ DecodeVPERMIL2PMask() [1/2]

void llvm::DecodeVPERMIL2PMask ( const Constant C,
unsigned  M2Z,
unsigned  ElSize,
unsigned  Width,
SmallVectorImpl< int > &  ShuffleMask 
)

◆ DecodeVPERMIL2PMask() [2/2]

void llvm::DecodeVPERMIL2PMask ( unsigned  NumElts,
unsigned  ScalarBits,
unsigned  M2Z,
ArrayRef< uint64_t >  RawMask,
const APInt UndefElts,
SmallVectorImpl< int > &  ShuffleMask 
)

Decode a VPERMIL2PD/VPERMIL2PS variable mask from a raw array of constants.

Definition at line 514 of file X86ShuffleDecode.cpp.

References assert(), llvm::SmallVectorTemplateBase< T, bool >::push_back(), llvm::ArrayRef< T >::size(), SM_SentinelUndef, and SM_SentinelZero.

Referenced by llvm::X86AsmPrinter::EmitInstruction(), and getTargetShuffleMask().

◆ DecodeVPERMILPMask() [1/2]

void llvm::DecodeVPERMILPMask ( const Constant C,
unsigned  ElSize,
unsigned  Width,
SmallVectorImpl< int > &  ShuffleMask 
)

◆ DecodeVPERMILPMask() [2/2]

void llvm::DecodeVPERMILPMask ( unsigned  NumElts,
unsigned  ScalarBits,
ArrayRef< uint64_t >  RawMask,
const APInt UndefElts,
SmallVectorImpl< int > &  ShuffleMask 
)

Decode a VPERMILPD/VPERMILPS variable mask from a raw array of constants.

Definition at line 492 of file X86ShuffleDecode.cpp.

References assert(), llvm::SmallVectorTemplateBase< T, bool >::push_back(), llvm::ArrayRef< T >::size(), and SM_SentinelUndef.

Referenced by llvm::X86AsmPrinter::EmitInstruction(), and getTargetShuffleMask().

◆ DecodeVPERMMask()

void llvm::DecodeVPERMMask ( unsigned  NumElts,
unsigned  Imm,
SmallVectorImpl< int > &  ShuffleMask 
)

DecodeVPERMMask - this decodes the shuffle masks for VPERMQ/VPERMPD.

Decodes the shuffle masks for VPERMQ/VPERMPD.

Definition at line 379 of file X86ShuffleDecode.cpp.

References llvm::SmallVectorTemplateBase< T, bool >::push_back().

Referenced by EmitAnyX86InstComments(), and getTargetShuffleMask().

◆ DecodeVPERMV3Mask() [1/2]

void llvm::DecodeVPERMV3Mask ( const Constant C,
unsigned  ElSize,
unsigned  Width,
SmallVectorImpl< int > &  ShuffleMask 
)

◆ DecodeVPERMV3Mask() [2/2]

void llvm::DecodeVPERMV3Mask ( ArrayRef< uint64_t >  RawMask,
const APInt UndefElts,
SmallVectorImpl< int > &  ShuffleMask 
)

Decode a VPERMT2 W/D/Q/PS/PD mask from a raw array of constants.

Definition at line 574 of file X86ShuffleDecode.cpp.

References llvm::SmallVectorTemplateBase< T, bool >::push_back(), llvm::ArrayRef< T >::size(), and SM_SentinelUndef.

Referenced by getTargetShuffleMask().

◆ DecodeVPERMVMask() [1/2]

void llvm::DecodeVPERMVMask ( const Constant C,
unsigned  ElSize,
unsigned  Width,
SmallVectorImpl< int > &  ShuffleMask 
)

◆ DecodeVPERMVMask() [2/2]

void llvm::DecodeVPERMVMask ( ArrayRef< uint64_t >  RawMask,
const APInt UndefElts,
SmallVectorImpl< int > &  ShuffleMask 
)

Decode a VPERM W/D/Q/PS/PD mask from a raw array of constants.

Definition at line 560 of file X86ShuffleDecode.cpp.

References llvm::SmallVectorTemplateBase< T, bool >::push_back(), llvm::ArrayRef< T >::size(), and SM_SentinelUndef.

Referenced by getTargetShuffleMask().

◆ DecodeVPPERMMask() [1/2]

void llvm::DecodeVPPERMMask ( const Constant C,
unsigned  Width,
SmallVectorImpl< int > &  ShuffleMask 
)

◆ DecodeVPPERMMask() [2/2]

void llvm::DecodeVPPERMMask ( ArrayRef< uint64_t >  RawMask,
const APInt UndefElts,
SmallVectorImpl< int > &  ShuffleMask 
)

Decode a VPPERM mask from a raw array of constants such as from BUILD_VECTOR.

This can only basic masks (permutes + zeros), not any of the other operations that VPPERM can perform.

Definition at line 339 of file X86ShuffleDecode.cpp.

References assert(), llvm::SmallVectorImpl< T >::clear(), llvm::SmallVectorTemplateBase< T, bool >::push_back(), llvm::ArrayRef< T >::size(), SM_SentinelUndef, and SM_SentinelZero.

Referenced by llvm::X86AsmPrinter::EmitInstruction(), and getTargetShuffleMask().

◆ decodeVSHUF64x2FamilyMask()

void llvm::decodeVSHUF64x2FamilyMask ( unsigned  NumElts,
unsigned  ScalarSize,
unsigned  Imm,
SmallVectorImpl< int > &  ShuffleMask 
)

Decode a shuffle packed values at 128-bit granularity (SHUFF32x4/SHUFF64x2/SHUFI32x4/SHUFI64x2) immediate mask into a shuffle mask.

Decode a shuffle packed values at 128-bit granularity immediate mask into a shuffle mask.

Definition at line 278 of file X86ShuffleDecode.cpp.

References llvm::SmallVectorTemplateBase< T, bool >::push_back().

Referenced by EmitAnyX86InstComments(), and getTargetShuffleMask().

◆ DecodeZeroExtendMask()

void llvm::DecodeZeroExtendMask ( unsigned  SrcScalarBits,
unsigned  DstScalarBits,
unsigned  NumDstElts,
SmallVectorImpl< int > &  Mask 
)

Decode a zero extension instruction as a shuffle mask.

Definition at line 386 of file X86ShuffleDecode.cpp.

References assert(), llvm::SmallVectorTemplateBase< T, bool >::push_back(), and SM_SentinelZero.

Referenced by EmitAnyX86InstComments(), and getFauxShuffleMask().

◆ DecodeZeroMoveLowMask()

void llvm::DecodeZeroMoveLowMask ( unsigned  NumElts,
SmallVectorImpl< int > &  ShuffleMask 
)

Decode a move lower and zero upper instruction as a shuffle mask.

Definition at line 399 of file X86ShuffleDecode.cpp.

References llvm::SmallVectorTemplateBase< T, bool >::push_back(), and SM_SentinelZero.

Referenced by EmitAnyX86InstComments(), and getTargetShuffleMask().

◆ decomposeBitTestICmp()

bool llvm::decomposeBitTestICmp ( Value LHS,
Value RHS,
CmpInst::Predicate Pred,
Value *&  X,
APInt Mask,
bool  LookThroughTrunc = true 
)

◆ def_chain()

template<class T >
iterator_range<def_chain_iterator<T> > llvm::def_chain ( T  MA,
MemoryAccess UpTo = nullptr 
)
inline

Definition at line 1292 of file MemorySSA.h.

References assert(), find(), and make_range().

◆ DeleteContainerPointers()

template<typename Container >
void llvm::DeleteContainerPointers ( Container &  C)

For a container of pointers, deletes the pointers and then clears the container.

Definition at line 1149 of file STLExtras.h.

Referenced by llvm::WebAssemblyExceptionInfo::releaseMemory(), and llvm::WebAssemblyException::~WebAssemblyException().

◆ DeleteContainerSeconds()

template<typename Container >
void llvm::DeleteContainerSeconds ( Container &  C)

In a container of pairs (usually a map) whose second element is a pointer, deletes the second elements and then clears the container.

Definition at line 1158 of file STLExtras.h.

Referenced by usedAsAddr().

◆ DeleteDeadBlock()

void llvm::DeleteDeadBlock ( BasicBlock BB,
DomTreeUpdater DTU = nullptr 
)

◆ DeleteDeadBlocks()

void llvm::DeleteDeadBlocks ( SmallVectorImpl< BasicBlock *> &  BBs,
DomTreeUpdater DTU = nullptr 
)

Delete the specified blocks from BB.

The set of deleted blocks must have no predecessors that are not being deleted themselves. BBs must have no duplicating blocks. If there are loops among this set of blocks, all relevant loop info updates should be done before this function is called.

Definition at line 56 of file BasicBlockUtils.cpp.

References llvm::DomTreeUpdater::applyUpdates(), assert(), llvm::SmallVectorTemplateCommon< T, typename >::begin(), llvm::RegState::Dead, llvm::DominatorTreeBase< BasicBlock, false >::Delete, llvm::DomTreeUpdater::deleteBB(), llvm::SmallVectorTemplateCommon< T, typename >::end(), llvm::UndefValue::get(), llvm::Value::getType(), I, predecessors(), llvm::SmallVectorTemplateBase< T >::push_back(), llvm::Value::replaceAllUsesWith(), llvm::SmallVectorBase::size(), successors(), and llvm::Value::use_empty().

Referenced by DeleteDeadBlock().

◆ deleteDeadLoop()

void llvm::deleteDeadLoop ( Loop L,
DominatorTree DT = nullptr,
ScalarEvolution SE = nullptr,
LoopInfo LI = nullptr 
)

This function deletes dead loops.

The caller of this function needs to guarantee that the loop is infact dead. The function requires a bunch or prerequisites to be present:

  • The loop needs to be in LCSSA form
  • The loop needs to have a Preheader
  • A unique dedicated exit block must exist

This also updates the relevant analysis information in DT, SE, and LI if pointers to those are provided. It also updates the loop PM if an updater struct is provided.

Definition at line 446 of file LoopUtils.cpp.

References assert(), llvm::LoopBase< BlockT, LoopT >::block_begin(), llvm::LoopBase< BlockT, LoopT >::block_end(), llvm::LoopBase< BlockT, LoopT >::blocks(), llvm::LoopBase< BlockT, LoopT >::contains(), llvm::DomTreeUpdater::deleteEdge(), llvm::User::dropAllReferences(), dyn_cast(), E, llvm::DomTreeUpdater::Eager, llvm::detail::DenseSetImpl< ValueT, SmallDenseMap< ValueT, detail::DenseSetEmpty, InlineBuckets, ValueInfoT, detail::DenseSetPair< ValueT > >, ValueInfoT >::end(), llvm::detail::DenseSetImpl< ValueT, SmallDenseMap< ValueT, detail::DenseSetEmpty, InlineBuckets, ValueInfoT, detail::DenseSetPair< ValueT > >, ValueInfoT >::find(), llvm::UndefValue::get(), llvm::LoopBase< BlockT, LoopT >::getHeader(), llvm::LoopBase< BlockT, LoopT >::getLoopPreheader(), llvm::LoopBase< BlockT, LoopT >::getUniqueExitBlock(), llvm::Use::getUser(), llvm::LoopBase< BlockT, LoopT >::hasDedicatedExits(), I, llvm::detail::DenseSetImpl< ValueT, SmallDenseMap< ValueT, detail::DenseSetEmpty, InlineBuckets, ValueInfoT, detail::DenseSetPair< ValueT > >, ValueInfoT >::insert(), llvm::SmallPtrSetImpl< PtrType >::insert(), llvm::DomTreeUpdater::insertEdge(), llvm::Loop::isLCSSAForm(), P, llvm::SmallVectorTemplateBase< T >::push_back(), llvm::Use::set(), and llvm::RegState::Undef.

Referenced by deleteLoopIfDead().

◆ DeleteDeadPHIs()

bool llvm::DeleteDeadPHIs ( BasicBlock BB,
const TargetLibraryInfo TLI = nullptr 
)

Examine each PHI in the given block and delete it if it is dead.

Also recursively delete any operands that become dead as a result. This includes tracing the def-use list from the PHI to see if it is ultimately unused or if it reaches an unused cycle. Return true if any PHIs were deleted.

Definition at line 122 of file BasicBlockUtils.cpp.

References llvm::BasicBlock::phis(), llvm::SmallVectorTemplateBase< T >::push_back(), RecursivelyDeleteDeadPHINode(), and llvm::SmallVectorBase::size().

Referenced by asmClobbersCTR(), GetPointerOperand(), isIgnorableInst(), and ReduceLoopStrength().

◆ deleter()

template<class T >
void llvm::deleter ( T Ptr)
inline

Definition at line 154 of file STLExtras.h.

◆ DemotePHIToStack()

AllocaInst * llvm::DemotePHIToStack ( PHINode P,
Instruction AllocaPoint = nullptr 
)

This function takes a virtual register computed by a phi node and replaces it with a slot in the stack frame, allocated via alloca.

DemotePHIToStack - This function takes a virtual register computed by a PHI node and replaces it with a slot in the stack frame allocated via alloca.

The phi node is deleted and it returns the pointer to the alloca inserted.

The PHI node is deleted. It returns the pointer to the alloca inserted.

Definition at line 109 of file DemoteRegToStack.cpp.

References assert(), llvm::Instruction::eraseFromParent(), F(), llvm::BasicBlock::front(), llvm::DataLayout::getAllocaAddrSpace(), llvm::Module::getDataLayout(), llvm::Function::getEntryBlock(), llvm::PHINode::getIncomingBlock(), llvm::PHINode::getIncomingValue(), llvm::ilist_node_impl< OptionsT >::getIterator(), llvm::Instruction::getModule(), llvm::Value::getName(), llvm::PHINode::getNumIncomingValues(), llvm::Instruction::getParent(), llvm::BasicBlock::getParent(), llvm::BasicBlock::getTerminator(), llvm::Value::getType(), llvm::Value::replaceAllUsesWith(), and llvm::Value::use_empty().

Referenced by MarkBlocksLiveIn(), and llvm::SimplifyCFGOptions::setAssumptionCache().

◆ DemoteRegToStack()

AllocaInst * llvm::DemoteRegToStack ( Instruction I,
bool  VolatileLoads = false,
Instruction AllocaPoint = nullptr 
)

This function takes a virtual register computed by an Instruction and replaces it with a slot in the stack frame, allocated via alloca.

DemoteRegToStack - This function takes a virtual register computed by an Instruction and replaces it with a slot in the stack frame, allocated via alloca.

This allows the CFG to be changed around without fear of invalidating the SSA information for the value. It returns the pointer to the alloca inserted to create a stack slot for X.

This allows the CFG to be changed around without fear of invalidating the SSA information for the value. It returns the pointer to the alloca inserted to create a stack slot for I.

Definition at line 24 of file DemoteRegToStack.cpp.

References assert(), llvm::Instruction::eraseFromParent(), F(), llvm::BasicBlock::front(), llvm::DataLayout::getAllocaAddrSpace(), llvm::Module::getDataLayout(), llvm::Function::getEntryBlock(), llvm::BasicBlock::getFirstInsertionPt(), llvm::ilist_node_impl< OptionsT >::getIterator(), llvm::Value::getName(), llvm::InvokeInst::getNormalDest(), llvm::Instruction::getParent(), llvm::BasicBlock::getParent(), llvm::GlobalValue::getParent(), GetSuccessorNumber(), llvm::Value::getType(), I, isCriticalEdge(), llvm::Instruction::isTerminator(), llvm::User::replaceUsesOfWith(), SplitCriticalEdge(), llvm::Value::use_empty(), and llvm::Instruction::user_back().

Referenced by MarkBlocksLiveIn(), and llvm::SimplifyCFGOptions::setAssumptionCache().

◆ denormalizeForPostIncUse()

const SCEV * llvm::denormalizeForPostIncUse ( const SCEV S,
const PostIncLoopSet Loops,
ScalarEvolution SE 
)

Denormalize S to be post-increment for all loops present in Loops.

Definition at line 111 of file ScalarEvolutionNormalization.cpp.

References llvm::SmallPtrSetImpl< PtrType >::count(), Denormalize, and llvm::SCEVAddRecExpr::getLoop().

Referenced by llvm::IVUsers::AddUsersImpl(), and mayUsePostIncMode().

◆ depth_first()

template<class T >
iterator_range<df_iterator<T> > llvm::depth_first ( const T G)

◆ depth_first_ext()

template<class T , class SetTy >
iterator_range<df_ext_iterator<T, SetTy> > llvm::depth_first_ext ( const T G,
SetTy S 
)

◆ describeFuzzerAggregateOps()

void llvm::describeFuzzerAggregateOps ( std::vector< fuzzerop::OpDescriptor > &  Ops)

◆ describeFuzzerControlFlowOps()

void llvm::describeFuzzerControlFlowOps ( std::vector< fuzzerop::OpDescriptor > &  Ops)

◆ describeFuzzerFloatOps()

void llvm::describeFuzzerFloatOps ( std::vector< fuzzerop::OpDescriptor > &  Ops)

◆ describeFuzzerIntOps()

void llvm::describeFuzzerIntOps ( std::vector< fuzzerop::OpDescriptor > &  Ops)

◆ describeFuzzerPointerOps()

void llvm::describeFuzzerPointerOps ( std::vector< fuzzerop::OpDescriptor > &  Ops)

Definition at line 76 of file Operations.cpp.

References llvm::fuzzerop::gepDescriptor().

Referenced by llvm::InjectorIRStrategy::getDefaultOps().

◆ describeFuzzerVectorOps()

void llvm::describeFuzzerVectorOps ( std::vector< fuzzerop::OpDescriptor > &  Ops)

◆ df_begin()

template<class T >
df_iterator<T> llvm::df_begin ( const T G)

◆ df_end()

template<class T >
df_iterator<T> llvm::df_end ( const T G)

◆ df_ext_begin()

template<class T , class SetTy >
df_ext_iterator<T, SetTy> llvm::df_ext_begin ( const T G,
SetTy S 
)

◆ df_ext_end()

template<class T , class SetTy >
df_ext_iterator<T, SetTy> llvm::df_ext_end ( const T G,
SetTy S 
)

◆ DiffFilesWithTolerance()

int llvm::DiffFilesWithTolerance ( StringRef  NameA,
StringRef  NameB,
double  AbsTol,
double  RelTol,
std::string *  Error = nullptr 
)

DiffFilesWithTolerance - Compare the two files specified, returning 0 if the files match, 1 if they are different, and 2 if there is a file error.

This function allows you to specify an absolute and relative FP error that is allowed to exist. If you specify a string to fill in for the error option, it will set the string to an error message if an error occurs, or if the files are different.

This function differs from DiffFiles in that you can specify an absolete and relative FP error that is allowed to exist. If you specify a string to fill in for the error option, it will set the string to an error message if an error occurs, allowing the caller to distinguish between a failed diff and a file system error.

Definition at line 177 of file FileUtilities.cpp.

References BackupNumber(), CompareNumbers(), llvm::ErrorOr< T >::get(), llvm::MemoryBuffer::getBufferEnd(), llvm::MemoryBuffer::getBufferSize(), llvm::MemoryBuffer::getBufferStart(), llvm::ErrorOr< T >::getError(), llvm::MemoryBuffer::getFile(), isNumberChar(), and memcmp.

◆ discoverAndMapSubloop()

template<class BlockT , class LoopT >
static void llvm::discoverAndMapSubloop ( LoopT *  L,
ArrayRef< BlockT *>  Backedges,
LoopInfoBase< BlockT, LoopT > *  LI,
const DomTreeBase< BlockT > &  DomTree 
)
static

Stable LoopInfo Analysis - Build a loop tree using stable iterators so the result does / not depend on use list (block predecessor) order.

Discover a subloop with the specified backedges such that: All blocks within this loop are mapped to this loop or a subloop. And all subloops within this loop have their parent loop set to this loop or a subloop.

Definition at line 434 of file LoopInfoImpl.h.

References llvm::ArrayRef< T >::begin(), llvm::LoopInfoBase< BlockT, LoopT >::changeLoopFor(), children(), llvm::ArrayRef< T >::end(), llvm::LoopInfoBase< BlockT, LoopT >::getLoopFor(), and llvm::DominatorTreeBase< NodeT, IsPostDom >::isReachableFromEntry().

Referenced by llvm::LoopInfoBase< BasicBlock, Loop >::analyze().

◆ DisplayGraph()

bool llvm::DisplayGraph ( StringRef  Filename,
bool  wait = true,
GraphProgram::Name  program = GraphProgram::DOT 
)

◆ DistributeRange()

template<typename LiveRangeT , typename EqClassesT >
static void llvm::DistributeRange ( LiveRangeT &  LR,
LiveRangeT *  SplitLRs[],
EqClassesT  VNIClasses 
)
static

Helper function that distributes live range value numbers and the corresponding segments of a master live range LR to a list of newly created live ranges SplitLRs.

VNIClasses maps each value number in LR to 0 meaning it should stay or to 1..N meaning it should go to a specific live range in the SplitLRs array.

Definition at line 27 of file LiveRangeUtils.h.

References assert(), E, empty(), I, and llvm::VNInfo::id.

Referenced by llvm::ConnectedVNInfoEqClasses::Distribute().

◆ divideCeil()

uint64_t llvm::divideCeil ( uint64_t  Numerator,
uint64_t  Denominator 
)
inline

Returns the integer ceil(Numerator / Denominator).

Definition at line 699 of file MathExtras.h.

References alignTo().

Referenced by llvm::msf::bytesToBlocks(), llvm::msf::getFpmStreamLayout(), llvm::X86TTIImpl::getIntImmCost(), and llvm::msf::getNumFpmIntervals().

◆ djbHash()

uint32_t llvm::djbHash ( StringRef  Buffer,
uint32_t  H = 5381 
)
inline

◆ dlltoolDriverMain()

int llvm::dlltoolDriverMain ( llvm::ArrayRef< const char *>  ArgsArr)

◆ DoubleToBits()

uint64_t llvm::DoubleToBits ( double  Double)
inline

This function takes a double and returns the bit equivalent 64-bit integer.

Note that copying doubles around changes the bits of NaNs on some hosts, notably x86, so this routine cannot be used if these bits are needed.

Definition at line 591 of file MathExtras.h.

References llvm::tgtok::Bits, and llvm::Intrinsic::memcpy.

Referenced by llvm::APInt::doubleToBits(), getInlineImmVal64(), getLit64Encoding(), llvm::AMDGPU::isInlinableLiteral64(), llvm::AMDGPUInstPrinter::printRegOperand(), and llvm::support::endian::write< double >().

◆ drop_begin()

template<typename T >
iterator_range<decltype(adl_begin(std::declval<T>)))> llvm::drop_begin ( T &&  t,
int  n 
)

◆ dropDebugUsers()

void llvm::dropDebugUsers ( Instruction I)

Remove the debug intrinsic instructions for the given instruction.

Definition at line 2522 of file Local.cpp.

References findDbgUsers().

Referenced by getKnownAlignment(), and hoistAllInstructionsInto().

◆ dump()

template<unsigned ElementSize>
void llvm::dump ( const SparseBitVector< ElementSize > &  LHS,
raw_ostream out 
)

Definition at line 877 of file SparseBitVector.h.

References llvm::SparseBitVector< ElementSize >::begin(), and llvm::SparseBitVector< ElementSize >::end().

Referenced by llvm::DIE::addChild(), llvm::MCAssembler::addFileName(), llvm::DIEAbbrev::AddImplicitConstAttribute(), llvm::DWARFDebugLine::LineTable::appendSequence(), llvm::GCOVFunction::blocks(), llvm::coro::buildCoroutineFrame(), llvm::pdb::PDBContext::classof(), llvm::DWARFContext::classof(), computeBranchTargetAndInversion(), createBBSelectReg(), llvm::SelectionDAG::DbgLabelEnd(), DeleteTriviallyDeadInstructions(), despeculateCountZeros(), llvm::DWARFUnit::dies(), llvm::orc::ExecutionSession::dispatchMaterialization(), llvm::GCOVBlock::dsts(), llvm::Metadata::dump(), llvm::DWARFContext::dump(), llvm::DWARFDie::dump(), llvm::coverage::CounterMappingContext::dump(), llvm::PBQP::RegAlloc::PBQPRAGraph::dump(), llvm::LatencyPriorityQueue::empty(), llvm::PMStack::empty(), llvm::PressureDiff::end(), llvm::AttributeListImpl::end(), llvm::ScheduleDAGInstrs::finalizeSchedule(), llvm::DWARFListTableBase< DWARFDebugRnglist >::getAddrSize(), llvm::MemoryAccess::getBlock(), llvm::GCOVFile::getChecksum(), llvm::MachineConstantPool::getConstants(), llvm::sroa::AllocaSlices::getDeadOperands(), llvm::LiveRangeUpdater::getDest(), llvm::SubtargetFeatures::getFeatures(), llvm::DWARFListTableHeader::getFormat(), llvm::DWARFDebugLine::Prologue::getMaxLineIncrementForSpecialOpcode(), llvm::MemorySSA::getMemoryAccess(), llvm::MachineFunction::getNumBlockIDs(), getOnlyLiveSuccessor(), llvm::slpvectorizer::BoUpSLP::getORE(), getPHIDestReg(), llvm::MachineRegionInfoPass::getRegionInfo(), llvm::RegionInfoPass::getRegionInfo(), llvm::mca::Scheduler::getResourceID(), llvm::SDValue::getScalarValueSizeInBits(), llvm::ScheduleDAGMILive::getScheduledTrees(), getStartOrEndSlot(), llvm::ModuleSummaryIndex::getTypeIdSummary(), llvm::DWARFVerifier::handleDebugInfo(), llvm::RegPressureTracker::hasUntiedDef(), INITIALIZE_PASS(), isAlwaysFoldable(), isDbgValueDescribedByReg(), llvm::AttributeList::isEmpty(), llvm::SubMultiClassReference::isInvalid(), llvm::IVUsers::isIVUserOrOperand(), isKnownBaseResult(), isTerminalReg(), llvm::sampleprof::LineLocation::LineLocation(), llvm::opt::ArgList::MakeArgString(), mayUsePostIncMode(), llvm::sampleprof::SampleRecord::merge(), llvm::SlotIndex::operator bool(), llvm::ConstantRange::operator!=(), false::IntervalSorter::operator()(), llvm::LiveInterval::operator<(), llvm::LiveRange::Segment::operator==(), llvm::mca::WriteRef::operator==(), llvm::PBQP::RegAlloc::PBQPRAGraph::PBQPRAGraph(), llvm::ARMConstantPoolValue::print(), llvm::mca::ResourceState::releaseBuffer(), llvm::ReadyQueue::remove(), llvm::MachineJumpTableInfo::RemoveJumpTable(), llvm::MCSection::rend(), llvm::VLIWResourceModel::reserveResources(), llvm::VLIWMachineScheduler::schedule(), llvm::ScheduleDAGMI::schedule(), llvm::ScheduleDAGMILive::schedule(), llvm::coverage::CounterMappingContext::setCounts(), llvm::orc::JITDylib::setGenerator(), llvm::mca::WriteState::setPRF(), llvm::MachineFrameInfo::setRestorePoint(), llvm::LiveInterval::SubRange::SubRange(), llvm::APInt::tcDecrement(), llvm::APFloat::toString(), llvm::SDNode::value_end(), and llvm::SlotIndexes::~SlotIndexes().

◆ dumpAmdKernelCode()

void llvm::dumpAmdKernelCode ( const amd_kernel_code_t C,
raw_ostream OS,
const char tab 
)

◆ dumpBytes()

void llvm::dumpBytes ( ArrayRef< uint8_t >  Bytes,
raw_ostream OS 
)

Convert `Bytes' to a hex string and output to `OS'.

Definition at line 23 of file MCInstPrinter.cpp.

References llvm::MCInstPrinter::~MCInstPrinter().

◆ dumpRegSetPressure()

LLVM_DUMP_METHOD void llvm::dumpRegSetPressure ( ArrayRef< unsigned SetPressure,
const TargetRegisterInfo TRI 
)

◆ dumpSectionMemory()

static void llvm::dumpSectionMemory ( const SectionEntry S,
StringRef  State 
)
static

◆ DuplicateInstructionsInSplitBetween()

BasicBlock * llvm::DuplicateInstructionsInSplitBetween ( BasicBlock BB,
BasicBlock PredBB,
Instruction StopAt,
ValueToValueMapTy ValueMapping,
DomTreeUpdater DTU 
)

Split edge between BB and PredBB and duplicate all non-Phi instructions from BB between its beginning and the StopAt instruction into the split block.

Duplicate non-Phi instructions from the beginning of block up to StopAt instruction into a split block between BB and its predecessor.

Phi nodes are not duplicated, but their uses are handled correctly: we replace them with the uses of corresponding Phi inputs. ValueMapping is used to map the original instructions from BB to their newly-created copies. Returns the split block.

Definition at line 799 of file CloneFunction.cpp.

References llvm::DomTreeUpdater::applyUpdates(), assert(), llvm::BasicBlock::begin(), count(), llvm::DominatorTreeBase< BasicBlock, false >::Delete, dyn_cast(), llvm::ValueMap< KeyT, ValueT, Config >::end(), llvm::ValueMap< KeyT, ValueT, Config >::find(), llvm::PHINode::getIncomingValueForBlock(), llvm::Value::getName(), llvm::User::getNumOperands(), llvm::User::getOperand(), llvm::BasicBlock::getTerminator(), I, llvm::DominatorTreeBase< BasicBlock, false >::Insert, llvm::Instruction::insertBefore(), llvm::Value::setName(), llvm::User::setOperand(), SplitEdge(), and successors().

Referenced by llvm::InlineFunctionInfo::reset(), splitCallSite(), and llvm::JumpThreadingPass::ThreadGuard().

◆ dyn_cast() [1/3]

template<class X , class Y >
LLVM_NODISCARD std::enable_if<!is_simple_type<Y>::value, typename cast_retty<X, const Y>::ret_type>::type llvm::dyn_cast ( const Y Val)
inline

Definition at line 323 of file Casting.h.

Referenced by llvm::GEPOperator::accumulateConstantOffset(), llvm::GVN::ValueTable::add(), AddAliasScopeMetadata(), addArgumentAttrsFromCallsites(), AddCombineBUILD_VECTORToVPADDL(), llvm::ConstantPool::addEntry(), addIntrinsicToSummary(), addNoRecurseAttrsTopDown(), AddRuntimeUnrollDisableMetaData(), llvm::DivergenceAnalysis::addUniformOverride(), addVCallToSet(), adjustForFNeg(), llvm::X86FrameLowering::adjustForHiPEPrologue(), adjustForLTGFR(), adjustForRedundantAnd(), adjustForTestUnderMask(), adjustZeroCmp(), llvm::GlobalsAAResult::alias(), llvm::AliasSet::aliasesUnknownInst(), aliasSameBasePointerGEPs(), allSameBlock(), allUsersAreInFunction(), alwaysAvailable(), llvm::InterleavedAccessInfo::analyzeInterleaving(), llvm::VNCoercion::analyzeLoadFromClobberingMemInst(), analyzeLoopUnrollCost(), appendSpeculatableOperands(), appendToUsedList(), llvm::MemorySSAUpdater::applyInsertUpdates(), ApplyX86MaskOn1BitsVec(), llvm::SelectInst::areInvalidOperands(), areInverseVectorBitmasks(), llvm::SIInstrInfo::areLoadsFromSameBasePtr(), llvm::X86InstrInfo::areLoadsFromSameBasePtr(), areLoopExitPHIsLoopInvariant(), areLoopExitPHIsSupported(), AreSequentialAccesses(), areStridedAccessesIndependent(), llvm::Value::assertModuleIsMaterializedImpl(), atomicSizeSupported(), AVRDAGToDAGISel::select< ISD::STORE >(), llvm::DwarfCFIException::beginFragment(), llvm::WinException::beginFunction(), llvm::BTFDebug::beginFunctionImpl(), llvm::LoopVectorizationLegality::blockNeedsPredication(), BrPHIToSelect(), BuildConstantFromSCEV(), llvm::X86TargetLowering::BuildFILD(), buildMultiplyTree(), BuildSubAggregate(), cacheAnnotationFromMD(), calculateByteProvider(), llvm::LoopVectorizationCostModel::calculateRegisterUsage(), calculateSEHStateNumbers(), calculateStateNumbersForInvokes(), llvm::AAResults::callCapturesBefore(), callsShareTOCBase(), llvm::EHStreamer::callToNoUnwindFunction(), canBeCheaplyTransformed(), canEvaluateShifted(), canEvaluateShuffled(), canExpand(), canFoldInAddressingMode(), canFoldIVIncExpr(), llvm::slpvectorizer::BoUpSLP::canMapToVector(), canNarrowShiftAmt(), CannotBeNegativeZero(), cannotBeOrderedLessThanZeroImpl(), canonicalizeBitCastExtElt(), canonicalizeCmpWithConstant(), canonicalizeMetadataForValue(), canonicalizeSaturatedSubtract(), CanPropagatePredecessorsForPHIs(), CanProveNotTakenFirstIteration(), canRenameComdat(), canSinkInstructions(), canTransformToMemCmp(), canTrapImpl(), canTRE(), llvm::Evaluator::castCallResultIfNeeded(), llvm::CastInst::castIsValid(), castRequiresQueuePtr(), castToIncrementInst(), CC_Lanai32_VarArg(), CC_MipsO32_FP64(), chainLoadsAndStoresForMemcpy(), cheapToScalarize(), CheckAndImm(), checkBoolTestSetCCCombine(), CheckInteger(), CheckOrImm(), classifyEHPersonality(), llvm::AArch64Subtarget::classifyGlobalFunctionReference(), llvm::WasmYAML::DylinkSection::classof(), llvm::WasmYAML::NameSection::classof(), llvm::WasmYAML::LinkingSection::classof(), CleanupPointerRootUsers(), clearAssumptionsOfUsers(), ClearSubclassDataAfterReassociation(), CloneAliasScopeMetadata(), CloneAndPruneIntoFromInst(), cloneConstantExprWithNewAddressSpace(), CloneFunction(), CloneLoop(), cloneLoopBlocks(), CloneNodeWithValues(), cloneOrBuildODR(), llvm::DILocation::cloneWithDiscriminator(), llvm::FunctionComparator::cmpConstants(), llvm::FunctionComparator::cmpTypes(), llvm::FunctionComparator::cmpValues(), CollectAddOperandsWithScales(), collectHomogenousInstGraphLoopInvariants(), collectInsertionElements(), llvm::LoopVectorizationPlanner::collectTriviallyDeadInstructions(), collectValuesToDemote(), combineAddOrSubToADCOrSBB(), combineADDToADDZE(), CombineANDShift(), CombineBaseUpdate(), combineBVOfConsecutiveLoads(), combineBVOfVecSExt(), combineCCMask(), combineConcatVectorOfExtracts(), combineFAndFNotToFAndn(), combineLoadToOperationType(), combineMinNumMaxNum(), combineMul(), combineOr(), combineSelectOfTwoConstants(), combineSetCCAtomicArith(), combineShiftLeft(), combineShiftRightLogical(), combineShuffleOfScalars(), CombineVMOVDRRCandidateWithVecOp(), llvm::InstCombiner::commonCastTransforms(), llvm::DivergenceAnalysis::compute(), computeBytesPoppedByCalleeForSRet(), llvm::MCCodePaddingPolicy::computeFirstWindowPenaltyWeight(), computeFunctionSummary(), ComputeImportForModule(), llvm::SelectionDAG::computeKnownBits(), llvm::AMDGPUTargetLowering::computeKnownBitsForTargetNode(), computeKnownBitsFromOperator(), computeLiveOutSeed(), llvm::slpvectorizer::BoUpSLP::computeMinimumValueSizes(), ComputeMultiple(), llvm::SelectionDAG::ComputeNumSignBits(), llvm::AMDGPUTargetLowering::ComputeNumSignBitsForTargetNode(), ComputeNumSignBitsImpl(), computeNumSignBitsVectorConstant(), computePointerICmp(), computeUnlikelySuccessors(), computeUnsignedMinMaxValuesFromKnownBits(), llvm::JumpThreadingPass::ComputeValueKnownInPredecessorsImpl(), computeValueLLTs(), concatenateTwoVectors(), concatenateVectors(), ConnectEpilog(), ConstantBuildVector(), ConstantFoldGetElementPtr(), ConstantFoldInsertElementInstruction(), ConstantFoldInstruction(), ConstantFoldLoadFromConstPtr(), ConstantFoldLoadThroughBitcast(), ConstantFoldSelectInstruction(), ConstantFoldTerminator(), ConstHasGlobalValuePredicate(), contains(), containsSafePHI(), containsUndefs(), convert_i1_to_i8(), ConvertCarryFlagToBooleanCarry(), ConvertDoubleToBytes(), convertFPR32ToFPR64(), llvm::TypedInit::convertInitializerBitRange(), llvm::TypedInit::convertInitListSlice(), llvm::ScalarEvolution::convertSCEVToAddRecWithPredicates(), ConvertSelectToConcatVector(), ConvertToSInt(), copyBytesForDefRange(), copyFeaturesToFunction(), llvm::GlobalObject::copyMetadata(), copyMustTailReturn(), countToEliminateCompares(), createARCISelDag(), createCallInst(), createCodeGenPreparePass(), createDeadArgHackingPass(), createDwarfEHPass(), llvm::VPRecipeBuilder::createEdgeMask(), createEfficiencySanitizerPass(), createFalkorMarkStridedAccessesPass(), createFFSIntrinsic(), createGlobalFwdRef(), CreateLoadIns(), createLoopDataPrefetchPass(), createMemCpyLoopUnknownSize(), createObjCARCOptPass(), createPPCMCAsmInfo(), CreatePrologue(), createRdxShuffleMask(), createReplacementInstr(), createSampleProfileLoaderPass(), createScalarizerPass(), createSeparateConstOffsetFromGEPPass(), createShadowStackGCLoweringPass(), llvm::IRBuilder< TargetFolder >::CreateUnreachable(), createXCoreISelDag(), DecodeFixedType(), decomposeSimpleLinearExpr(), decrementVectorConstant(), deleteDeadLoop(), dependencies(), dependsOnLocalPhi(), despeculateCountZeros(), detectAVGPattern(), detectPMADDUBSW(), detectPopcountIdiom(), detectShiftUntilZeroIdiom(), llvm::HexagonDAGToDAGISel::DetectUseSxtw(), llvm::ModuleSummaryIndex::discoverNodes(), llvm::AMDGPUAsmPrinter::doFinalization(), llvm::NVPTXAsmPrinter::doFinalization(), llvm::AsmPrinter::doFinalization(), llvm::FunctionImportGlobalProcessing::doImportAsDefinition(), DoInitialMatch(), llvm::DominatorTree::dominates(), DominatesMergePoint(), llvm::Value::DoPHITranslation(), doPromotion(), llvm::GVNExpression::Expression::dump(), llvm::vfs::RedirectingFileSystem::dumpEntry(), dumpUUID(), llvm::JumpThreadingPass::DuplicateCondBranchOnPHIIntoPred(), DuplicateInstructionsInSplitBetween(), llvm::mdconst::dyn_extract(), llvm::mdconst::dyn_extract_or_null(), eliminateDeadStores(), EliminateDuplicatePHINodes(), eliminateNoopStore(), llvm::WebAssemblyAsmPrinter::EmitEndOfAsmFile(), llvm::XCoreTargetLowering::EmitInstrWithCustomInserter(), llvm::AsmPrinter::EmitSpecialLLVMGlobal(), llvm::BPFSelectionDAGInfo::EmitTargetCodeForMemcpy(), llvm::HexagonSelectionDAGInfo::EmitTargetCodeForMemcpy(), llvm::LanaiSelectionDAGInfo::EmitTargetCodeForMemcpy(), llvm::X86SelectionDAGInfo::EmitTargetCodeForMemcpy(), llvm::ARMSelectionDAGInfo::EmitTargetCodeForMemcpy(), llvm::AArch64SelectionDAGInfo::EmitTargetCodeForMemset(), llvm::SystemZSelectionDAGInfo::EmitTargetCodeForMemset(), llvm::X86SelectionDAGInfo::EmitTargetCodeForMemset(), EmitVectorComparison(), llvm::AsmPrinter::emitXRayTable(), llvm::ARMAsmPrinter::EmitXXStructor(), ensurePromotedGV(), EqualityPropUnSafe(), EraseTerminatorAndDCECond(), llvm::SetTheory::evaluate(), llvm::Evaluator::EvaluateBlock(), EvaluateConstantChrecAtConstant(), EvaluateExpression(), evaluateFCmpRelation(), llvm::Evaluator::EvaluateFunction(), evaluateGEPOffsetExpression(), evaluateICmpRelation(), expandBounds(), expandDivision(), llvm::ARMTargetLowering::ExpandInlineAsm(), llvm::X86TargetLowering::ExpandInlineAsm(), expandRemainder(), llvm::SCEVExpander::expandUnionPredicate(), ExposePointerBase(), llvm::AlignmentFromAssumptionsPass::extractAlignmentInfo(), ExtractConstantBytes(), ExtractEquivalentCondition(), extractMallocCall(), llvm::Instruction::extractProfMetadata(), llvm::Instruction::extractProfTotalWeight(), ExtractTypeInfo(), llvm::MachObjectWriter::findAliasedSymbol(), FindAllMemoryUses(), llvm::CodeExtractor::findAllocas(), findArgumentCopyElisionCandidates(), findBuildAggregate(), findBuildVector(), findDevirtualizableCallsForTypeCheckedLoad(), findIBRPredecessor(), findInitTrampoline(), findInitTrampolineFromAlloca(), llvm::CodeExtractor::findInputsOutputs(), FindLoopCounter(), llvm::SelectionDAGBuilder::FindMergedConditions(), findOptionMDForLoopID(), llvm::CodeExtractor::findOrCreateBlockForHoisting(), FindPHIForConditionForwarding(), FindPredecessorAutoreleaseWithSafePath(), findProfitablePHIs(), findRefEdges(), findSafeStoreForStoreStrongContraction(), findTRECandidate(), findUser(), llvm::DwarfCompileUnit::finishEntityDefinition(), llvm::symbolize::LLVMSymbolizer::flush(), llvm::AMDGPULibCalls::fold(), llvm::BinOpInit::Fold(), llvm::TernOpInit::Fold(), foldAddSubBoolOfMaskedVal(), foldAndOrOfEqualityCmpsWithConstants(), FoldBranchToCommonDest(), FoldCondBranchOnPHI(), llvm::SelectionDAG::FoldConstantArithmetic(), foldConstantInsEltIntoShuffle(), llvm::SelectionDAG::FoldConstantVectorArithmetic(), foldCtpop(), foldCttzCtlz(), foldFreeOpFromSelect(), foldICmpShlOne(), foldICmpWithMinMax(), foldICmpWithTruncSignExtendedVal(), foldInsSequenceIntoBroadcast(), FoldIntToFPToInt(), foldLogicCastConstant(), foldLogOpOfMaskedICmps(), foldLogOpOfMaskedICmps_NotAllZeros_BMask_Mixed(), foldOperationIntoPhiValue(), foldOperationIntoSelectOperand(), llvm::InstCombiner::FoldShiftByConstant(), foldSignedTruncationCheck(), llvm::SelectionDAG::FoldSymbolOffset(), FoldTwoEntryPHINode(), foldVectorXorShiftIntoCmp(), foldXor1SetCC(), followLCSSA(), forceRenaming(), forEachUser(), llvm::ScalarEvolution::forgetValue(), llvm::StackSafetyInfo::FunctionInfo::FunctionInfo(), FunctionNumber(), genLoopLimit(), GEPToVectorIndex(), llvm::GlobalValue::getAbsoluteSymbolRange(), getAddressAccessSCEV(), getAL(), getAllocaSizeInBytes(), llvm::AllocaInst::getAllocationSizeInBits(), getARClassRegisterMask(), getArrayElements(), getAsCarry(), getAsNonOpaqueConstant(), getAssociatedSymbol(), getAVX2GatherNode(), llvm::GlobalIndirectSymbol::getBaseObject(), llvm::DebugHandlerBase::getBaseTypeSize(), getBinOpsForFactorization(), getBlockName(), getBoundsCheckCond(), getBranchCondString(), getBranchInsertPoint(), llvm::InnerLoopVectorizer::getBroadcastInstrs(), getBuildPairElt(), llvm::CallSiteBase<>::getCalledFunction(), llvm::StatepointBase< Function, Instruction, Value, CallSite >::getCalledFunction(), getCalledFunction(), llvm::Evaluator::getCalleeWithFormalArgs(), getCastsForInductionPHI(), getChainID(), llvm::MemorySSA::ClobberWalkerBase::getClobberingMemoryAccessBase(), getCommonReturnValue(), getComparePred(), getConstantAt(), getConstantDataArrayInfo(), getConstantEvolvingPHI(), getConstantEvolvingPHIOperands(), GetConstantInt(), getConstantPart(), llvm::TargetTransformInfoImplBase::getConstantStrideStep(), getConstantValue(), llvm::ExecutionEngine::getConstantValue(), llvm::InductionDescriptor::getConstIntStepValue(), getContiguousRangeOfSetBits(), llvm::ScalarEvolution::getCouldNotCompute(), llvm::pdb::DataMemberLayoutItem::getDataMember(), llvm::ListInit::getElementAsRecord(), getEstimate(), getExactSDiv(), llvm::ConstrainedFPIntrinsic::getExceptionBehavior(), getExpandedMinMaxOps(), llvm::TargetLoweringObjectFileELF::getExplicitSectionGlobal(), getExtendTypeForNode(), getExtractIndex(), getFalkorUnrollingPreferences(), getFPTernOp(), getFromRangeMetadata(), getGatherNode(), llvm::X86TTIImpl::getGatherScatterOpCost(), llvm::TargetTransformInfoImplCRTPBase< AMDGPUTTIImpl >::getGEPCost(), getGEPSmallConstantIntOffsetV(), GetIfCondition(), getIndexedTypeInternal(), getInductionVariable(), llvm::CoroIdInst::getInfo(), getInitializer(), getInsertPointForUses(), llvm::BasicTTIImplBase< AMDGPUTTIImpl >::getInterleavedMemoryOpCost(), getIntOperandFromRegisterString(), llvm::MemoryDependenceResults::getInvariantGroupPointerDependency(), getIPMConversion(), llvm::SCEVExpander::getIVIncOperand(), getKnownConstant(), llvm::BasicBlock::getLandingPadInst(), getLit64Encoding(), getLoopEstimatedTripCount(), getLoopPhiForCounter(), getLoopTest(), llvm::HexagonTargetObjectFile::getLutUsedFunction(), getMad64_32(), getMaskedICmpType(), llvm::X86TTIImpl::getMaskedMemoryOpCost(), getMaxPointerSize(), getMemCmpLoad(), llvm::SelectionDAG::getMemcpy(), getMemcpyLoadsAndStores(), llvm::SelectionDAG::getMemmove(), getMemmoveLoadsAndStores(), llvm::SystemZTTIImpl::getMemoryOpCost(), llvm::SelectionDAG::getMemset(), getMemSetPatternValue(), getMemsetStores(), getMetadataTypeOrder(), getMinFromExprs(), getMinVisibility(), getMOVL(), llvm::ScalarEvolution::getMulExpr(), llvm::Mangler::getNameWithPrefix(), getNarrowIntrinsic(), getNaturalGEPRecursively(), getNegativeIsTrueBoolVec(), getNextRegister(), llvm::SelectionDAG::getNode(), llvm::DOTGraphTraits< BoUpSLP * >::getNodeAttributes(), getNoopInput(), getNotRelocatableInstructions(), GetOffsetFromIndex(), getOffsetFromIndices(), getOneTrueElt(), getOnlyLiveSuccessor(), getOpenCLAlignment(), llvm::ARMBaseInstrInfo::getOperandLatency(), llvm::AArch64TTIImpl::getOrCreateResultFromMemIntrinsic(), getOtherIncomingValue(), llvm::AArch64InstrInfo::getOutliningType(), getParentPad(), getPermuteMask(), llvm::memoryaccess_def_iterator_base< MemoryAccess >::getPhiArgBlock(), GetPointerOperand(), getPointerOperands(), llvm::HexagonTargetLowering::getPostIndexedAddressParts(), llvm::ARMTargetLowering::getPostIndexedAddressParts(), getPow(), getPowerOf2Factor(), getPredicateResult(), getPrefetchNode(), getPrefixes(), llvm::NVPTXTargetLowering::getPrototype(), getPtrStride(), GetQuadraticEquation(), getQualifiedNameComponents(), getRangeForAffineARHelper(), getRecurrenceVar(), getRelevantOperands(), llvm::objcarc::getreturnRVOperand(), llvm::ConstrainedFPIntrinsic::getRoundingMode(), getScalarIntrinsicDeclaration(), getScatterNode(), getShuffleAndOtherOprd(), getSignature(), llvm::MemoryDependenceResults::getSimplePointerDependencyFrom(), llvm::ScalarEvolution::getSmallConstantMaxTripCount(), llvm::ScalarEvolution::getSmallConstantTripCount(), llvm::ScalarEvolution::getSmallConstantTripMultiple(), llvm::slpvectorizer::BoUpSLP::getSpillCost(), getSplatValue(), getSqrtCall(), getStrideFromPointer(), getSuccPad(), getSummaryFromMD(), getSymbolValue(), getTargetConstantFromNode(), llvm::HexagonTargetLowering::getTargetNodeName(), llvm::BasicBlock::getTerminatingDeoptimizeCall(), llvm::BasicBlock::getTerminatingMustTailCall(), getTestBitOperand(), llvm::GCNTTIImpl::getTgtMemIntrinsic(), llvm::SITargetLowering::getTgtMemIntrinsic(), llvm::DenseMapInfo< SimpleValue >::getTombstoneKey(), getTrueOrFalseValue(), getTypePartition(), llvm::ScalarEvolution::getUDivExactExpr(), llvm::ScalarEvolution::getUDivExpr(), getUnderlyingArgReg(), getUniformBase(), getUniqueCastUse(), llvm::AMDGPUTTIImpl::getUnrollingPreferences(), GetUnrollMetadata(), getUnwindDestToken(), getUnwindDestTokenHelper(), llvm::X86TTIImpl::getUserCost(), llvm::HexagonTTIImpl::getUserCost(), getVal(), getValueFromConditionImpl(), getVCmpInst(), getVectorCompareInfo(), getVFSEntries(), getVShiftImm(), llvm::ScalarEvolution::getWrapPredicate(), GlobalWasGeneratedByCompiler(), handleBrSelExpect(), HandleCallsInBlockInlinedThroughInvoke(), HandleInlinedEHPad(), llvm::MCCodePadder::handleInstructionEnd(), handlePhiDef(), handleSwitchExpect(), llvm::Function::hasAddressTaken(), HasAnyUnrollPragma(), hasChangeableCC(), hasComputableBounds(), hasConcreteDefImpl(), hasConflictingReferenceFlags(), hasDefinedInitializer(), hasOnlyOneNonZeroIndex(), hasOnlySelectUsers(), hasOnlyUniformBranches(), hasProfileData(), hasReturnsTwiceAttr(), hasSameExtUse(), llvm::ARMConstantPoolConstant::hasSameValue(), llvm::ARMConstantPoolSymbol::hasSameValue(), llvm::ARMConstantPoolMBB::hasSameValue(), HasSecRelSymbolRef(), hasSingleUsesFromRoot(), hasStoreUsersOnly(), llvm::FastISel::hasTrivialKill(), hasUndefContents(), hasUsesOutsideLoop(), hasValueBeenRAUWed(), hasZeroSignBit(), haveEfficientBuildVectorPattern(), hoistInsEltConst(), HoistThenElseCodeToIf(), llvm::SCEVEqualPredicate::implies(), llvm::SCEVWrapPredicate::implies(), incrementLoc(), llvm::CompositeType::indexValid(), INITIALIZE_PASS(), InlineFunction(), llvm::DivergenceAnalysis::inRegion(), llvm::RuntimePointerChecking::insert(), insertDAGNode(), insertRelocationStores(), InsertRootInitializers(), insertSinCosCall(), insertVector(), instIsBreakpoint(), llvm::SSAUpdaterTraits< SSAUpdater >::InstrIsPHI(), instructionClobbersQuery(), InstructionDereferencesPointer(), instrumentMaskedLoadOrStore(), inversePermutation(), llvm::GlobalValue::isAbsoluteSymbolRef(), isAddOfNonZero(), isAllConstantBuildVector(), isAllOnesConstant(), isAlwaysFoldable(), isBLACompatibleAddress(), isBooleanFlip(), isBSwapHWordElement(), isBytewiseValue(), isCalleeLoad(), isCallPromotable(), llvm::LoopVectorizationLegality::isCastedInductionVariable(), isChainSelectCmpBranch(), isClampZeroToOne(), llvm::RecurrenceDescriptor::isConditionalRdxPattern(), isConsecutiveAccess(), isConstantIntVector(), IsConstantOffsetFromGlobal(), IsConstantOne(), isConstantOrConstantVector(), llvm::ISD::isConstantSplatVector(), llvm::Constant::isConstantUsed(), llvm::TargetLowering::isConstFalseVal(), isConstOrDemandedConstSplat(), isContiguous(), isContractable(), IsCPSRDead< MCInst >(), isDirectCall(), isEmptyXXStructor(), llvm::DenseMapInfo< VTableSlot >::isEqual(), isExtendedBUILD_VECTOR(), llvm::TargetLowering::isExtendedTrueVal(), llvm::RecurrenceDescriptor::isFirstOrderRecurrence(), isFormingBranchFromSelectProfitable(), llvm::InductionDescriptor::isFPInductionPHI(), isFreeCall(), isFuncOrArgAttr(), isGEPBasedOnPointerToString(), llvm::ConstantExpr::isGEPWithNoNotionalOverIndexing(), llvm::HexagonTargetObjectFile::isGlobalInSmallSection(), llvm::LanaiTargetObjectFile::isGlobalInSmallSection(), llvm::MipsTargetObjectFile::IsGlobalInSmallSection(), isGOTEquivalentCandidate(), isHighCostExpansion(), isIgnorableInst(), isImageOrSamplerVal(), llvm::X86Operand::isImmSExti16i8(), llvm::X86Operand::isImmSExti32i8(), llvm::X86Operand::isImmSExti64i32(), llvm::X86Operand::isImmSExti64i8(), llvm::X86Operand::isImmUnsignedi8(), isImpliedCondition(), IsIncrementNUW(), llvm::InductionDescriptor::isInductionPHI(), isInstrUniform(), isInSymtab(), isInTailCallPosition(), isIntegerLoopHeaderPHI(), isIntrinsicCall(), isKeyValuePair(), isKnownNeverNaN(), IsKnownPredicateViaAddRecStart(), isKnownTypeIdMember(), isLegalMaskCompare(), llvm::SelectionDAGISel::IsLegalToFold(), llvm::CodeExtractor::isLegalToShrinkwrapLifetimeMarkers(), llvm::Instruction::isLifetimeStartOrEnd(), isLoadConditional(), isLoadInvariantInLoop(), isLoadOrStore(), isLocallyOpenedFile(), llvm::ScalarEvolution::isLoopBackedgeGuardedByCond(), llvm::ScalarEvolution::isLoopEntryGuardedByCond(), isLoopIncrement(), isLoopInvariant(), llvm::ScalarEvolution::isLoopInvariantPredicate(), llvm::AArch64TargetLowering::isMaskAndCmp0FoldingBeneficial(), isMatchingOrAlias(), isMathLibCallNoop(), IsMaxConsistingOf(), isMemOPCandidate(), llvm::RecurrenceDescriptor::isMinMaxSelectCmpPattern(), isMulPowOf2(), IsNarrowSequence(), isNaturalMemoryOperand(), llvm::SCEV::isNonConstantNegative(), isNonEscapingGlobalNoAliasWithLoad(), llvm::DataLayout::isNonIntegralPointerType(), llvm::ISD::isNormalLoad(), llvm::ISD::isNormalStore(), isNoWrapAddRec(), isNullConstant(), isNullFPConstant(), isObjectDereferencedInBlock(), isObjectSizeLessThanOrEq(), isOneConstant(), isOneOf(), isOnlyCopiedFromConstantGlobal(), isOnlyReachableViaThisEdge(), llvm::LoopVectorizationCostModel::isOptimizableIVTruncate(), llvm::SelectionDAGISel::isOrEquivalentToAdd(), isPerfectIncrement(), IsPointerOffset(), isPointerValueDeadOnEntryToFunction(), llvm::PHITransAddr::IsPotentiallyPHITranslatable(), llvm::objcarc::IsPotentialRetainableObjPtr(), isPowerOf2Constant(), isProfitableChain(), isProfitableForVectorization(), isProfitableToFoldUnconditional(), isPromotedInstructionLegal(), llvm::DominatorTree::isReachableFromEntry(), isReassociableOp(), isReInterleaveMask(), isRelocScattered(), isRemainderZero(), isReportingError(), isReturnNonNull(), isSafeAndProfitableToSinkLoad(), isSafeAndProfitableToSpeculateAroundPHI(), isSafePHIToSpeculate(), isSafeSelectToSpeculate(), isSafeSROAElementUse(), isSafeSROAGEP(), isSafeToExecuteUnconditionally(), isSafeToSpeculatePHIUsers(), isSafeToSpeculateStore(), isSafeToSpeculativelyExecute(), isSameCompare(), isSameUnderlyingObjectInLoop(), llvm::AMDGPUTargetLowering::isSDNodeAlwaysUniform(), isSetCC(), isSExtLoad(), isShuffle(), isShuffleEquivalent(), llvm::PPCInstrInfo::isSignOrZeroExtended(), isSimpleCastedPHI(), isSimpleEnoughPointerToCommit(), isSimpleIVUser(), isSimpleShift(), IsSingleInstrConstant(), llvm::SelectionDAG::isSplatValue(), llvm::FullDependence::isSplitable(), isStackPtrRelative(), llvm::Value::isSwiftError(), isTargetConstant(), isTruncateOf(), isTypeCongruent(), isUnconditionalBranch(), isUndefShift(), llvm::LoopVectorizationLegality::isUniform(), isUniformLoop(), llvm::AMDGPUInstrInfo::isUniformMMO(), llvm::Value::isUsedInBasicBlock(), llvm::Instruction::isUsedOutsideOfBlock(), llvm::ShuffleVectorInst::isValidOperands(), isVectorAllOnes(), isVectorReductionOp(), llvm::symbolize::SymbolizableObjectFile::isWin32Module(), isWorthFoldingADDlow(), isWorthFoldingSHL(), isZero(), isZeroLengthArray(), IVUseShouldUsePostIncValue(), likeBitCastFromVector(), LLVMIsATerminatorInst(), llvm::PredicateInfoClasses::ValueDFS_Compare::localComesBefore(), log2(), lookThroughCast(), lowerAddrSpaceCast(), llvm::AVRTargetLowering::LowerAsmOperandForConstraint(), llvm::ARMTargetLowering::LowerAsmOperandForConstraint(), llvm::PPCTargetLowering::LowerAsmOperandForConstraint(), llvm::TargetLowering::LowerAsmOperandForConstraint(), llvm::HexagonTargetLowering::LowerBITCAST(), LowerBUILD_VECTORAsVariablePermute(), llvm::NVPTXTargetLowering::LowerCall(), llvm::AsmPrinter::lowerConstant(), llvm::HexagonTargetLowering::LowerDYNAMIC_STACKALLOC(), lowerExpectIntrinsic(), LowerF128Load(), LowerF128Store(), lowerFCMPIntrinsic(), llvm::SITargetLowering::LowerFormalArguments(), lowerICMPIntrinsic(), LowerINTRINSIC_W_CHAIN(), lowerLoadRelative(), llvm::LanaiTargetLowering::LowerMUL(), LowerMUL(), lowerObjCCall(), llvm::HexagonTargetLowering::LowerSETCC(), LowerShift(), llvm::IntrinsicLowering::LowerToByteSwap(), lowerVectorShuffleAsBroadcast(), LowerXOR(), MaintainNoSignedWrap(), makeBitReverse(), llvm::LTOModule::makeBuffer(), llvm::object::ObjectFile::makeTriple(), mapBinOpcode(), MarkBlocksLiveIn(), MarkEHGuard(), MarkEHRegistrationNode(), markTails(), maskIsAllOneOrUndef(), maskIsAllZeroOrUndef(), maskMatters(), llvm::PatternMatch::cst_pred_ty< Predicate >::match(), llvm::PatternMatch::cstfp_pred_ty< Predicate >::match(), llvm::PatternMatch::is_zero::match(), llvm::PatternMatch::specific_intval::match(), llvm::PatternMatch::FNeg_match< Op_t >::match(), llvm::PatternMatch::MaxMin_match< CmpInst_t, LHS_t, RHS_t, Pred_t, Commutable >::match(), MatchBinaryOp(), llvm::ISD::matchBinaryPredicate(), llvm::SelectionDAG::matchBinOpReduction(), matchCondition(), MatchCoprocessorOperandName(), MatchingStackOffset(), llvm::Intrinsic::matchIntrinsicType(), MatchNotExpr(), matchPair(), matchPairwiseReduction(), matchPairwiseReductionAtLevel(), MatchParallelMACSequences(), matchPMADDWD(), matchPMADDWD_2(), MatchReductions(), matchSelectPattern(), matchSVEPredicateVectorRegName(), llvm::ISD::matchUnaryPredicate(), matchVectorSplittingReduction(), llvm::gvn::AvailableValueInBlock::MaterializeAdjustedValue(), maybeSetDSOLocal(), mayDivideByZero(), mayLoopAccessLocation(), mayTailCallThisCC(), llvm::WebAssembly::mayThrow(), mayUseP9Setb(), mayUsePostIncMode(), memAddrUsesCTR(), llvm::LoopVectorizationCostModel::memoryInstructionCanBeWidened(), MergeAliasResults(), mergeCleanupPad(), mergeEmptyReturnBlocks(), mergeInlinedArrayAllocas(), minAPInt(), minMaxOpcToMin3Max3Opc(), moveLCSSAPhis(), llvm::LoopInfo::movementPreservesLCSSAForm(), moveUp(), narrowExtractedVectorBinOp(), narrowExtractedVectorLoad(), needsLFTR(), llvm::Constant::needsRelocation(), false::next_type(), numVectorEltsOrZero(), okayForPHIOfOps(), onlyUsedByLifetimeMarkers(), llvm::vfs::RedirectingFileSystem::openFileForRead(), llvm::orc::CtorDtorIterator::operator*(), llvm::generic_gep_type_iterator< ItTy >::operator++(), llvm::BasicBlock::phi_iterator_impl< PHINodeT, BBIteratorT >::operator++(), llvm::LibCallSimplifier::optimizeCall(), optimizeDoubleFP(), OptimizeEmptyGlobalCXXDtors(), llvm::slpvectorizer::BoUpSLP::optimizeGatherSequence(), OptimizeGlobalAddressOfMalloc(), OptimizeGlobalAliases(), llvm::MemorySSA::OptimizeUses::OptimizeUses(), llvm::SymbolRewriter::RewriteMapParser::parse(), llvm::vfs::RedirectingFileSystemParser::parse(), parseCachePolicy(), llvm::TargetLowering::ParseConstraints(), parseTexFail(), passingValueIsAlwaysUndefined(), patchAndReplaceAllUsesWith(), patchReplacementInstruction(), peelLoop(), false::LibCallsShrinkWrap::perform(), performANDCombine(), PerformANDCombine(), PerformBFICombine(), llvm::ARMTargetLowering::PerformBRCONDCombine(), llvm::ARMTargetLowering::PerformCMOVCombine(), performCMovFPCombine(), llvm::ARMTargetLowering::PerformCMOVToBFICombine(), llvm::AMDGPUTargetLowering::performCtlz_CttzCombine(), llvm::R600TargetLowering::PerformDAGCombine(), llvm::AMDGPUTargetLowering::PerformDAGCombine(), performDSPShiftCombine(), performGlobalAddressCombine(), performMaskedAtomicOp(), PerformMULCombine(), PerformORCombine(), PerformORCombineToBFI(), performPostLD1Combine(), llvm::AMDGPUTargetLowering::performRcpCombine(), performSELECTCombine(), llvm::AMDGPUTargetLowering::performShlCombine(), PerformSHLSimplify(), llvm::AMDGPUTargetLowering::performSraCombine(), performSRACombine(), llvm::AMDGPUTargetLowering::performSrlCombine(), PerformVDUPCombine(), llvm::BasicBlock::phis(), llvm::PHITransAddr::PHITranslateWithInsertion(), pickOpcodeForVT(), PointerMayBeCaptured(), PrepareCall(), llvm::MemoryDepChecker::Dependence::print(), llvm::MachineInstr::print(), llvm::PredicatedScalarEvolution::print(), llvm::AArch64InstPrinter::printAlignedLabel(), printExpr(), printMetadataImpl(), llvm::X86InstPrinterCommon::printPCRelImm(), llvm::JumpThreadingPass::ProcessBlock(), processCallSite(), processCmp(), processDbgDeclares(), llvm::DebugInfoFinder::processDeclare(), processGlobal(), llvm::JumpThreadingPass::ProcessImpliedCondition(), processPHI(), processSelect(), processUGT_ADDCST_ADD(), processUMulZExtIdiom(), llvm::DebugInfoFinder::processValue(), llvm::xray::FileBasedRecordProducer::produce(), promoteExtBeforeAdd(), promoteLoopAccessesToScalars(), promoteSingleBlockAlloca(), promoteToConstantPool(), PropagateConstantReturn(), PropagateConstantsIntoArguments(), propagateIRFlags(), propagateMetadata(), PropagateParallelLoopAccessMetadata(), PushArgMD(), PushDefUseChildren(), QualifiedNameOfImplicitName(), readWideAPInt(), recognizeBSwapOrBitReverseIdiom(), recordCondition(), recoverFramePointer(), RecursivelyDeleteTriviallyDeadInstructions(), RedzoneSizeForScale(), RefineErrorLoc(), llvm::DemandedBitsWrapperPass::releaseMemory(), rematerializeLiveValues(), llvm::safestack::StackColoring::removeAllMarkers(), removeBitcastsFromLoadStoreOnMinMax(), llvm::Constant::removeDeadConstantUsers(), removeDeadUsersOfConstant(), removeEmptyCleanup(), RemoveInstInputs(), llvm::BasicBlock::removePredecessor(), ReorganizeVector(), replaceAllUsesOfWithIn(), llvm::SCEVExpander::replaceCongruentIVs(), replaceConstantExprOp(), replaceCreatedSSACopys(), replaceExtractElements(), replaceLoopInvariantUses(), llvm::LoopInfo::replacementPreservesLCSSAForm(), llvm::XCoreTargetLowering::ReplaceNodeResults(), replaceShuffleOfInsert(), replaceSplatVectorStore(), llvm::BasicBlock::replaceSuccessorsPhiUsesWith(), ReplaceUsesOfWith(), llvm::Value::replaceUsesOutsideBlock(), reportLoadElim(), llvm::ReplaceableMetadataImpl::resolveAllUses(), reuseTableCompare(), rewriteNonInstructionUses(), rewritePHIs(), RewriteUsesOfClonedInstructions(), llvm::LoopPredicationPass::run(), llvm::LoopDataPrefetchPass::run(), llvm::InstrProfiling::run(), llvm::WholeProgramDevirtPass::run(), llvm::SpeculativeExecutionPass::runImpl(), llvm::JumpThreadingPass::runImpl(), runIPSCCP(), llvm::StackProtector::runOnFunction(), runPartiallyInlineLibCalls(), llvm::ExecutionEngine::runStaticConstructorsDestructors(), llvm::HexagonMCInstrInfo::s27_2_reloc(), safeCxtI(), salvageDebugInfo(), scalarizeExtractedBinop(), scalarizeMaskedScatter(), llvm::HexagonDAGToDAGISel::SelectConstantFP(), llvm::FastISel::selectExtractValue(), selectI64Imm(), llvm::AVRDAGToDAGISel::SelectInlineAsmMemoryOperand(), llvm::FastISel::selectIntrinsicCall(), llvm::LoopVectorizationCostModel::setCostBasedWideningDecision(), setFastFlags(), llvm::Loop::setLoopAlreadyUnrolled(), setRequiredFeatureString(), llvm::DwarfDebug::shareAcrossDWOCUs(), shouldBeSls(), shouldConvertUse(), llvm::StackProtector::shouldEmitSDCheck(), shouldEmitUdt(), shouldFixMainFunction(), shouldKeepFDivF32(), shouldPromote(), llvm::HexagonTargetObjectFile::shouldPutJumpTableInFunctionSection(), llvm::AArch64TargetLowering::shouldReduceLoadWidth(), shouldReorderOperands(), shouldRotateLoopExitingLatch(), shouldSwapCmpOperands(), ShrinkDemandedConstant(), llvm::TargetLowering::ShrinkDemandedConstant(), shrinkFPConstantVector(), shrinkInsertElt(), ShrinkLoadReplaceStoreWithStore(), shrinkSplatShuffle(), simplifyAllocaArraySize(), simplifyAndOrOfCmps(), simplifyAssocCastAssoc(), SimplifyAssociativeBinOp(), SimplifyBranchOnICmpChain(), SimplifyCall(), llvm::TargetLowering::SimplifyDemandedBits(), llvm::TargetLowering::SimplifyDemandedVectorElts(), simplifyDivRem(), llvm::InstCombiner::simplifyDivRemOfSelectWithZeroOp(), SimplifyExtractValueInst(), simplifyICmpWithBinOp(), SimplifyIndirectBrOnSelect(), SimplifyInsertElementInst(), simplifyMaskedGather(), simplifyMaskedScatter(), simplifyMaskedStore(), simplifyNeonTbl1(), simplifyNeonVld1(), simplifyOneLoop(), llvm::InstCombiner::simplifyRangeCheck(), SimplifyRelativeLoad(), simplifyRelocatesOffABase(), SimplifyShuffleVectorInst(), simplifySuspendPoint(), SimplifySwitchOnSelect(), simplifyValueKnownNonZero(), SimplifyWithOpReplaced(), simplifyX86extrq(), simplifyX86immShift(), simplifyX86insertps(), simplifyX86MaskedLoad(), simplifyX86MaskedStore(), simplifyX86movmsk(), simplifyX86pack(), simplifyX86pshufb(), simplifyX86round(), simplifyX86varShift(), simplifyX86vpermilvar(), simplifyX86vpermv(), sinkAndCmp0Expression(), sinkLastInstruction(), llvm::InnerLoopVectorizer::sinkScalarOperands(), sinkSelectOperand(), SinkShiftAndTruncate(), AllocaSlices::SliceBuilder::SliceBuilder(), llvm::InstCombiner::SliceUpIllegalIntegerPHI(), SolveQuadraticAddRecRange(), sortPtrAccesses(), speculatePHIs(), SpeculativelyExecuteBB(), splitAddExpr(), splitAndLowerVectorShuffle(), SplitCriticalSideEffectEdges(), splitGlobal(), SplitIndirectBrCriticalEdges(), splitMergedValStore(), stripGetElementPtr(), stripModuloOnShift(), supportedAddressingMode(), switchToSelect(), llvm::AArch64TargetLowering::targetShrinkDemandedConstant(), llvm::ARMTargetLowering::targetShrinkDemandedConstant(), llvm::X86TargetLowering::targetShrinkDemandedConstant(), ThreadBinOpOverSelect(), llvm::JumpThreadingPass::ThreadEdge(), truncateIVUse(), llvm::InnerLoopVectorizer::truncateToMinimalBitwidths(), tryAdvSIMDModImmFP(), tryBitfieldInsertOpFromOr(), tryCombineCRC32(), tryCombineToBSL(), tryLowerToSLI(), TryMULWIDECombine(), tryPromoteAllocaToVector(), llvm::VPRecipeBuilder::tryToBlend(), llvm::VPRecipeBuilder::tryToCreateRecipe(), tryToElideArgumentCopy(), TryToMergeLandingPad(), tryToMoveFreeBeforeNullTest(), tryToOptimizeStoreOfMallocToGlobal(), tryToReplaceWithConstant(), llvm::JumpThreadingPass::TryToUnfoldSelect(), llvm::JumpThreadingPass::TryToUnfoldSelectInCurrBB(), tryToVectorizeHorReductionOrInstOperands(), llvm::VPRecipeBuilder::tryToWiden(), tryUnmergingGEPsAcrossIndirectBr(), llvm::RecordRecTy::typeIsConvertibleTo(), TypeSizeToSizeIndex(), llvm::JumpThreadingPass::UnfoldSelectInstr(), UnrollAndJamLoop(), UnrollLoop(), UnrollVectorShift(), unswitchAllTrivialConditions(), unswitchBestCondition(), unswitchNontrivialInvariants(), UpdateCallGraphAfterInlining(), updateForIncomingValueLocation(), updatePredecessorProfileMetadata(), llvm::Instruction::updateProfWeight(), upgradeInstructionLoopAttachment(), llvm::yaml::MappingTraits< std::unique_ptr< ELFYAML::Section > >::validate(), validThroughout(), valueDominatesPHI(), llvm::ValueEnumerator::ValueEnumerator(), llvm::SSAUpdaterTraits< SSAUpdater >::ValueIsPHI(), vectorEltWillFoldAway(), llvm::LoopVectorizeHints::vectorizeAnalysisPassName(), llvm::InnerLoopVectorizer::vectorizeMemoryInstruction(), llvm::AMDGPU::HSAMD::V3::MetadataVerifier::verify(), llvm::InlineAsm::Verify(), llvm::ScalarEvolution::verify(), VerifySubExpr(), llvm::LoopVersioning::versionLoop(), llvm::InstCombiner::visitAdd(), llvm::InstCombiner::visitAllocaInst(), llvm::InstCombiner::visitAnd(), llvm::SelectionDAGBuilder::visitBitTestCase(), llvm::InstCombiner::visitCallInst(), llvm::ObjectSizeOffsetVisitor::visitCallSite(), llvm::InstCombiner::visitExtractElementInst(), llvm::InstCombiner::visitFPToSI(), llvm::InstCombiner::visitFPToUI(), llvm::InstCombiner::visitFPTrunc(), llvm::InstCombiner::visitGetElementPtrInst(), llvm::Interpreter::visitIndirectBrInst(), llvm::InstCombiner::visitInsertElementInst(), llvm::InstCombiner::visitInsertValueInst(), llvm::InstCombiner::visitLandingPadInst(), llvm::InstCombiner::visitLShr(), llvm::InstCombiner::visitMul(), llvm::InstCombiner::visitOr(), llvm::InstCombiner::visitPHINode(), visitPHIUsersAndDepsInPostOrder(), llvm::InstCombiner::visitShuffleVectorInst(), llvm::InstCombiner::visitStoreInst(), llvm::InstCombiner::visitXor(), llvm::InstCombiner::visitZExt(), llvm::VPlanHCFGTransforms::VPInstructionsToVPRecipes(), llvm::InnerLoopVectorizer::widenInstruction(), X86ChooseCmpImmediateOpcode(), and llvm::reassociate::XorOpnd::XorOpnd().

◆ dyn_cast() [2/3]

template<class X , class Y >
LLVM_NODISCARD cast_retty<X, Y>::ret_type llvm::dyn_cast ( Y Val)
inline

Definition at line 328 of file Casting.h.

◆ dyn_cast() [3/3]

template<class X , class Y >
LLVM_NODISCARD cast_retty<X, Y *>::ret_type llvm::dyn_cast ( Y Val)
inline

Definition at line 333 of file Casting.h.

References LLVM_NODISCARD.

◆ dyn_cast_or_null() [1/3]

template<class X , class Y >
LLVM_NODISCARD std::enable_if<!is_simple_type<Y>::value, typename cast_retty<X, const Y>::ret_type>::type llvm::dyn_cast_or_null ( const Y Val)
inline

Definition at line 344 of file Casting.h.

References LLVM_NODISCARD.

◆ dyn_cast_or_null() [2/3]

template<class X , class Y >
LLVM_NODISCARD std::enable_if<!is_simple_type<Y>::value, typename cast_retty<X, Y>::ret_type>::type llvm::dyn_cast_or_null ( Y Val)
inline

Definition at line 352 of file Casting.h.

References LLVM_NODISCARD.

◆ dyn_cast_or_null() [3/3]

template<class X , class Y >
LLVM_NODISCARD cast_retty<X, Y *>::ret_type llvm::dyn_cast_or_null ( Y Val)
inline

Definition at line 358 of file Casting.h.

◆ EliminateDuplicatePHINodes()

bool llvm::EliminateDuplicatePHINodes ( BasicBlock BB)

◆ EmitAnyX86InstComments()

bool llvm::EmitAnyX86InstComments ( const MCInst MI,
raw_ostream OS,
const MCInstrInfo MCII 
)

EmitAnyX86InstComments - This function decodes x86 instructions and prints newline terminated strings to the specified string if desired.

This information is shown in disassembly dumps when verbose assembly is enabled.

Definition at line 500 of file X86InstComments.cpp.

References CASE_AVX512_INS_COMMON, CASE_MOVDUP, CASE_PMOVZX, CASE_SHUF, CASE_UNPCK, CASE_VPERM, CASE_VPERMILPI, CASE_VSHUF, DecodeBLENDMask(), DecodeEXTRQIMask(), DecodeInsertElementMask(), DecodeINSERTPSMask(), DecodeINSERTQIMask(), DecodeMOVDDUPMask(), DecodeMOVHLPSMask(), DecodeMOVLHPSMask(), DecodeMOVSHDUPMask(), DecodeMOVSLDUPMask(), DecodePALIGNRMask(), DecodePSHUFHWMask(), DecodePSHUFLWMask(), DecodePSHUFMask(), DecodePSLLDQMask(), DecodePSRLDQMask(), DecodePSWAPMask(), DecodeScalarMoveMask(), DecodeSHUFPMask(), DecodeSubVectorBroadcast(), DecodeUNPCKHMask(), DecodeUNPCKLMask(), DecodeVALIGNMask(), DecodeVPERM2X128Mask(), DecodeVPERMMask(), decodeVSHUF64x2FamilyMask(), DecodeZeroExtendMask(), DecodeZeroMoveLowMask(), llvm::SmallVectorBase::empty(), llvm::X86ISD::EXTRQI, llvm::MCOperand::getImm(), llvm::MCInst::getNumOperands(), llvm::MCInst::getOpcode(), llvm::MCInst::getOperand(), llvm::MCOperand::getReg(), getRegName(), getRegOperandNumElts(), llvm::X86ISD::INSERTQI, llvm::MCOperand::isImm(), LLVM_FALLTHROUGH, llvm::X86ISD::MOVDDUP, llvm::X86ISD::MOVSHDUP, llvm::X86ISD::MOVSLDUP, llvm::X86ISD::PALIGNR, printFMA3Comments(), printMasking(), llvm::X86ISD::PSHUFD, llvm::X86ISD::PSHUFHW, llvm::X86ISD::PSHUFLW, llvm::SmallVectorBase::size(), SM_SentinelUndef, and SM_SentinelZero.

Referenced by llvm::X86ATTInstPrinter::printInst(), and llvm::X86IntelInstPrinter::printInst().

◆ emitAppleAccelTable()

template<typename DataT >
void llvm::emitAppleAccelTable ( AsmPrinter Asm,
AccelTable< DataT > &  Contents,
StringRef  Prefix,
const MCSymbol SecBegin 
)

Emit an Apple Accelerator Table consisting of entries in the specified AccelTable.

The DataT template parameter should be derived from AppleAccelTableData.

Definition at line 305 of file AccelTable.h.

References emitAppleAccelTableImpl(), and emitDWARF5AccelTable().

Referenced by llvm::DwarfDebug::endFunctionImpl().

◆ emitAppleAccelTableImpl()

void llvm::emitAppleAccelTableImpl ( AsmPrinter Asm,
AccelTableBase Contents,
StringRef  Prefix,
const MCSymbol SecBegin,
ArrayRef< AppleAccelTableData::Atom Atoms 
)

◆ emitARMRegPlusImmediate()

void llvm::emitARMRegPlusImmediate ( MachineBasicBlock MBB,
MachineBasicBlock::iterator MBBI,
const DebugLoc dl,
unsigned  DestReg,
unsigned  BaseReg,
int  NumBytes,
ARMCC::CondCodes  Pred,
unsigned  PredReg,
const ARMBaseInstrInfo TII,
unsigned  MIFlags = 0 
)

◆ emitBinaryFloatFnCall()

Value * llvm::emitBinaryFloatFnCall ( Value Op1,
Value Op2,
StringRef  Name,
IRBuilder<> &  B,
const AttributeList Attrs 
)

Emit a call to the binary function named 'Name' (e.g.

'fmin'). This function is known to take type matching 'Op1' and 'Op2' and return one value with the same type. If 'Op1/Op2' are long double, 'l' is added as the suffix of name, if 'Op1/Op2' are float, we add a 'f' suffix.

Definition at line 1004 of file BuildLibCalls.cpp.

References appendTypeSuffix(), assert(), Callee, llvm::IRBuilder< T, Inserter >::CreateCall(), F(), llvm::IRBuilderBase::GetInsertBlock(), llvm::BasicBlock::getModule(), llvm::Module::getOrInsertFunction(), llvm::Value::getType(), Name, llvm::CallBase::setAttributes(), llvm::CallBase::setCallingConv(), and llvm::Value::stripPointerCasts().

Referenced by optimizeDoubleFP().

◆ emitCalloc()

Value * llvm::emitCalloc ( Value Num,
Value Size,
const AttributeList Attrs,
IRBuilder<> &  B,
const TargetLibraryInfo TLI 
)

◆ emitDWARF5AccelTable() [1/2]

void llvm::emitDWARF5AccelTable ( AsmPrinter Asm,
AccelTable< DWARF5AccelTableData > &  Contents,
const DwarfDebug DD,
ArrayRef< std::unique_ptr< DwarfCompileUnit >>  CUs 
)

◆ emitDWARF5AccelTable() [2/2]

void llvm::emitDWARF5AccelTable ( AsmPrinter Asm,
AccelTable< DWARF5AccelTableStaticData > &  Contents,
ArrayRef< MCSymbol *>  CUs,
llvm::function_ref< unsigned(const DWARF5AccelTableStaticData &)>  getCUIndexForEntry 
)

Definition at line 586 of file AccelTable.cpp.

References llvm::HexStyle::Asm, and llvm::AccelTableBase::finalize().

◆ emitFGetCUnlocked()

Value * llvm::emitFGetCUnlocked ( Value File,
IRBuilder<> &  B,
const TargetLibraryInfo TLI 
)

◆ emitFGetSUnlocked()

Value * llvm::emitFGetSUnlocked ( Value Str,
Value Size,
Value File,
IRBuilder<> &  B,
const TargetLibraryInfo TLI 
)

◆ emitFPutC()

Value * llvm::emitFPutC ( Value Char,
Value File,
IRBuilder<> &  B,
const TargetLibraryInfo TLI 
)

◆ emitFPutCUnlocked()

Value * llvm::emitFPutCUnlocked ( Value Char,
Value File,
IRBuilder<> &  B,
const TargetLibraryInfo TLI 
)

◆ emitFPutS()

Value * llvm::emitFPutS ( Value Str,
Value File,
IRBuilder<> &  B,
const TargetLibraryInfo TLI 
)

◆ emitFPutSUnlocked()

Value * llvm::emitFPutSUnlocked ( Value Str,
Value File,
IRBuilder<> &  B,
const TargetLibraryInfo TLI 
)

◆ emitFrameOffset()

void llvm::emitFrameOffset ( MachineBasicBlock MBB,
MachineBasicBlock::iterator  MBBI,
const DebugLoc DL,
unsigned  DestReg,
unsigned  SrcReg,
int  Offset,
const TargetInstrInfo TII,
MachineInstr::MIFlag  Flag = MachineInstr::NoFlags,
bool  SetNZCV = false,
bool  NeedsWinCFI = false 
)

emitFrameOffset - Emit instructions as needed to set DestReg to SrcReg plus Offset.

This is intended to be used from within the prolog/epilog insertion (PEI) pass, where a virtual scratch register may be allocated if necessary, to be replaced by the scavenger at the end of PEI.

Definition at line 2878 of file AArch64InstrInfo.cpp.

References llvm::MachineInstrBuilder::addImm(), assert(), BuildMI(), llvm::MCInstrInfo::get(), llvm::AArch64_AM::getShifterImm(), llvm::AArch64_AM::LSL, and llvm::MachineInstrBuilder::setMIFlag().

Referenced by llvm::AArch64FrameLowering::eliminateCallFramePseudoInstr(), llvm::AArch64RegisterInfo::eliminateFrameIndex(), llvm::AArch64FrameLowering::emitEpilogue(), llvm::AArch64FrameLowering::emitPrologue(), and rewriteAArch64FrameIndex().

◆ emitFReadUnlocked()

Value * llvm::emitFReadUnlocked ( Value Ptr,
Value Size,
Value N,
Value File,
IRBuilder<> &  B,
const DataLayout DL,
const TargetLibraryInfo TLI 
)

◆ emitFWrite()

Value * llvm::emitFWrite ( Value Ptr,
Value Size,
Value File,
IRBuilder<> &  B,
const DataLayout DL,
const TargetLibraryInfo TLI 
)

◆ emitFWriteUnlocked()

Value * llvm::emitFWriteUnlocked ( Value Ptr,
Value Size,
Value N,
Value File,
IRBuilder<> &  B,
const DataLayout DL,
const TargetLibraryInfo TLI 
)

◆ EmitGEPOffset()

template<typename IRBuilderTy >
Value* llvm::EmitGEPOffset ( IRBuilderTy *  Builder,
const DataLayout DL,
User GEP,
bool  NoAssumptions = false 
)

◆ EmitImportsFiles()

std::error_code llvm::EmitImportsFiles ( StringRef  ModulePath,
StringRef  OutputFilename,
const std::map< std::string, GVSummaryMapTy > &  ModuleToSummariesForIndex 
)

Emit into OutputFilename the files module ModulePath will import from.

Emit the files ModulePath will import from into OutputFilename.

Definition at line 886 of file FunctionImport.cpp.

References llvm::sys::fs::F_None.

Referenced by llvm::ThinLTOCodeGenerator::emitImports(), and llvm::lto::getThinLTOOutputFile().

◆ EmitJSON()

void llvm::EmitJSON ( RecordKeeper RK,
raw_ostream OS 
)

Definition at line 188 of file JSONBackend.cpp.

Referenced by llvm::HasReferenceResolver::found().

◆ emitLinkerFlagsForGlobalCOFF()

void llvm::emitLinkerFlagsForGlobalCOFF ( raw_ostream OS,
const GlobalValue GV,
const Triple TT,
Mangler Mangler 
)

◆ emitLinkerFlagsForUsedCOFF()

void llvm::emitLinkerFlagsForUsedCOFF ( raw_ostream OS,
const GlobalValue GV,
const Triple T,
Mangler M 
)

◆ emitMalloc()

Value * llvm::emitMalloc ( Value Num,
IRBuilder<> &  B,
const DataLayout DL,
const TargetLibraryInfo TLI 
)

◆ emitMemChr()

Value * llvm::emitMemChr ( Value Ptr,
Value Val,
Value Len,
IRBuilder<> &  B,
const DataLayout DL,
const TargetLibraryInfo TLI 
)

◆ emitMemCmp()

Value * llvm::emitMemCmp ( Value Ptr1,
Value Ptr2,
Value Len,
IRBuilder<> &  B,
const DataLayout DL,
const TargetLibraryInfo TLI 
)

◆ emitMemCpyChk()

Value * llvm::emitMemCpyChk ( Value Dst,
Value Src,
Value Len,
Value ObjSize,
IRBuilder<> &  B,
const DataLayout DL,
const TargetLibraryInfo TLI 
)

◆ emitPutChar()

Value * llvm::emitPutChar ( Value Char,
IRBuilder<> &  B,
const TargetLibraryInfo TLI 
)

◆ emitPutS()

Value * llvm::emitPutS ( Value Str,
IRBuilder<> &  B,
const TargetLibraryInfo TLI 
)

◆ emitSourceFileHeader()

void llvm::emitSourceFileHeader ( StringRef  Desc,
raw_ostream OS 
)

emitSourceFileHeader - Output an LLVM style file header to the specified raw_ostream.

Definition at line 34 of file TableGenBackend.cpp.

References assert(), MAX_LINE_LEN, llvm::cl::Prefix, printLine(), llvm::StringRef::size(), and llvm::StringRef::substr().

◆ emitStrChr()

Value * llvm::emitStrChr ( Value Ptr,
char  C,
IRBuilder<> &  B,
const TargetLibraryInfo TLI 
)

◆ emitStrCpy()

Value * llvm::emitStrCpy ( Value Dst,
Value Src,
IRBuilder<> &  B,
const TargetLibraryInfo TLI,
StringRef  Name = "strcpy" 
)

◆ emitStrLen()

Value * llvm::emitStrLen ( Value Ptr,
IRBuilder<> &  B,
const DataLayout DL,
const TargetLibraryInfo TLI 
)

◆ emitStrNCmp()

Value * llvm::emitStrNCmp ( Value Ptr1,
Value Ptr2,
Value Len,
IRBuilder<> &  B,
const DataLayout DL,
const TargetLibraryInfo TLI 
)

◆ emitStrNCpy()

Value * llvm::emitStrNCpy ( Value Dst,
Value Src,
Value Len,
IRBuilder<> &  B,
const TargetLibraryInfo TLI,
StringRef  Name = "strncpy" 
)

◆ emitStrNLen()

Value* llvm::emitStrNLen ( Value Ptr,
Value MaxLen,
IRBuilder<> &  B,
const DataLayout DL,
const TargetLibraryInfo TLI 
)

Emit a call to the strnlen function to the builder, for the specified pointer.

Ptr is required to be some pointer type, MaxLen must be of size_t type, and the return value has 'intptr_t' type.

◆ emitT2RegPlusImmediate()

void llvm::emitT2RegPlusImmediate ( MachineBasicBlock MBB,
MachineBasicBlock::iterator MBBI,
const DebugLoc dl,
unsigned  DestReg,
unsigned  BaseReg,
int  NumBytes,
ARMCC::CondCodes  Pred,
unsigned  PredReg,
const ARMBaseInstrInfo TII,
unsigned  MIFlags = 0 
)

◆ emitThumbRegPlusImmediate()

void llvm::emitThumbRegPlusImmediate ( MachineBasicBlock MBB,
MachineBasicBlock::iterator MBBI,
const DebugLoc dl,
unsigned  DestReg,
unsigned  BaseReg,
int  NumBytes,
const TargetInstrInfo TII,
const ARMBaseRegisterInfo MRI,
unsigned  MIFlags = 0 
)

emitThumbRegPlusImmediate - Emits a series of instructions to materialize a destreg = basereg + immediate in Thumb code.

Tries a series of ADDs or SUBs first, and uses a constant pool value if the instruction sequence would be too long. This is allowed to modify the condition flags.

Definition at line 186 of file ThumbRegisterInfo.cpp.

References llvm::MachineInstrBuilder::add(), llvm::MachineInstrBuilder::addImm(), llvm::MachineInstrBuilder::addReg(), llvm::ARMCC::AL, alignTo(), assert(), BuildMI(), emitThumbRegPlusImmInReg(), llvm::MCInstrInfo::get(), isARMLowRegister(), llvm::RegState::Kill, predOps(), llvm::MachineInstrBuilder::setMIFlags(), t1CondCodeOp(), and Threshold.

Referenced by addExclusiveRegPair(), llvm::ThumbRegisterInfo::eliminateFrameIndex(), llvm::Thumb1FrameLowering::emitEpilogue(), emitSPUpdate(), isPushOpcode(), and llvm::ThumbRegisterInfo::rewriteFrameIndex().

◆ emitUnaryFloatFnCall() [1/2]

Value * llvm::emitUnaryFloatFnCall ( Value Op,
StringRef  Name,
IRBuilder<> &  B,
const AttributeList Attrs 
)

Emit a call to the unary function named 'Name' (e.g.

'floor'). This function is known to take a single of type matching 'Op' and returns one value with the same type. If 'Op' is a long double, 'l' is added as the suffix of name, if 'Op' is a float, we add a 'f' suffix.

Definition at line 985 of file BuildLibCalls.cpp.

References appendTypeSuffix(), and emitUnaryFloatFnCallHelper().

Referenced by getPow(), getSqrtCall(), optimizeDoubleFP(), and llvm::InstCombiner::visitFDiv().

◆ emitUnaryFloatFnCall() [2/2]

Value * llvm::emitUnaryFloatFnCall ( Value Op,
const TargetLibraryInfo TLI,
LibFunc  DoubleFn,
LibFunc  FloatFn,
LibFunc  LongDoubleFn,
IRBuilder<> &  B,
const AttributeList Attrs 
)

Emit a call to the unary function DoubleFn, FloatFn or LongDoubleFn, depending of the type of Op.

Definition at line 993 of file BuildLibCalls.cpp.

References emitUnaryFloatFnCallHelper(), llvm::Value::getType(), getUnaryFloatFn(), and Name.

◆ empty()

template<typename T >
constexpr bool llvm::empty ( const T RangeOrContainer)

Test whether RangeOrContainer is empty. Similar to C++17 std::empty.

Examples:
/home/cs6340/llvm-8.0.1.src/include/llvm/ADT/ilist_node.h.

Definition at line 210 of file STLExtras.h.

References adl_begin(), and adl_end().

Referenced by llvm::orc::CtorDtorRunner::add(), adjustDown(), alwaysAvailable(), llvm::RegisterBankInfo::applyDefaultMapping(), llvm::ArrayRef< llvm::irsymtab::storage::Comdat >::back(), llvm::MutableArrayRef< BitWord >::back(), llvm::DenseMapBase< DenseMap< const llvm::SCEV *, const llvm::SCEV *, DenseMapInfo< const llvm::SCEV *>, llvm::detail::DenseMapPair< const llvm::SCEV *, const llvm::SCEV *> >, const llvm::SCEV *, const llvm::SCEV *, DenseMapInfo< const llvm::SCEV *>, llvm::detail::DenseMapPair< const llvm::SCEV *, const llvm::SCEV *> >::begin(), llvm::LiveRange::beginIndex(), llvm::DwarfDebug::beginModule(), branchDiv(), callsiteIsHot(), llvm::StringMap< uint64_t >::clear(), llvm::LiveRange::covers(), DistributeRange(), llvm::MachineModuleInfo::doInitialization(), llvm::DWARFContext::dump(), llvm::DwarfDebug::endFunctionImpl(), llvm::LiveRange::endIndex(), llvm::MDAttachmentMap::erase(), llvm::AccelTableBase::finalize(), llvm::LiveRange::find(), llvm::ArrayRef< llvm::irsymtab::storage::Comdat >::front(), llvm::MutableArrayRef< BitWord >::front(), llvm::LegalizerInfo::getActionDefinitionsBuilder(), llvm::RegBankSelect::getAnalysisUsage(), llvm::TargetPassConfig::getLimitedCodeGenPipelineReason(), llvm::RegionBase< RegionTraits< Function > >::getNameStr(), llvm::InstrProfRecord::getNumValueKinds(), getReassignedChan(), getStartOrEndSlot(), llvm::SchedDFSResult::getSubtreeID(), hasProfileData(), llvm::MIBundleBuilder::insert(), llvm::iplist_impl< simple_ilist< MachineInstr, Options... >, ilist_traits< MachineInstr > >::insertAfter(), isDbgValueDescribedByReg(), isDebug(), llvm::MachineBasicBlock::isEHScopeReturnBlock(), llvm::InstructionSelector::isObviouslySafeToFold(), isOpcodeHandled(), isOperator(), llvm::LiveRegMatrix::isPhysRegUsed(), llvm::MachineBasicBlock::isReturnBlock(), llvm::LiveRange::join(), llvm::IntervalMap< SlotIndex, unsigned >::lookup(), llvm::iplist_impl< simple_ilist< MachineInstr, Options... >, ilist_traits< MachineInstr > >::max_size(), llvm::Triple::normalize(), llvm::BitVector::operator<<=(), llvm::BitVector::operator>>=(), llvm::LiveRange::overlaps(), llvm::LiveRange::overlapsFrom(), llvm::itanium_demangle::AbstractManglingParser< ManglingParser< Alloc >, Alloc >::parse(), llvm::itanium_demangle::AbstractManglingParser< ManglingParser< Alloc >, Alloc >::parseSpecialName(), patchAndReplaceAllUsesWith(), llvm::R600SchedStrategy::pickNode(), llvm::LatencyPriorityQueue::pop(), llvm::rdf::DataFlowGraph::DefStack::pop(), llvm::iplist_impl< simple_ilist< MachineInstr, Options... >, ilist_traits< MachineInstr > >::pop_back(), llvm::iplist_impl< simple_ilist< MachineInstr, Options... >, ilist_traits< MachineInstr > >::pop_front(), llvm::LiveRange::print(), PrintLLVMName(), llvm::PMStack::push(), llvm::R600SchedStrategy::releaseBottomNode(), llvm::LiveRange::removeValNo(), llvm::PPCInstrInfo::replaceInstrOperandWithImm(), llvm::AMDGPUAsmPrinter::runOnMachineFunction(), llvm::GCNScheduleDAGMILive::schedule(), llvm::SchedulingPriorityQueue::SchedulingPriorityQueue(), llvm::SparseSet< unsigned, llvm::VirtReg2IndexFunctor >::setUniverse(), llvm::IntervalMap< SlotIndex, unsigned >::start(), llvm::IntervalMap< SlotIndex, unsigned >::stop(), stripDebugLocFromLoopID(), llvm::LazyCallGraph::RefSCC::switchInternalEdgeToCall(), SwitchToLookupTable(), llvm::BitTracker::trace(), llvm::HexagonBlockRanges::RangeList::unionize(), and llvm::StringMap< uint64_t >::~StringMap().

◆ EnableMSSALoopDependency()

cl::opt<bool> llvm::EnableMSSALoopDependency ( "enable-mssa-loop-dependency"  ,
cl::Hidden  ,
cl::init(false ,
cl::desc("Enable MemorySSA dependency for loop pass manager")   
)

Enables memory ssa as a dependency for loop passes in legacy pass manager.

◆ EnablePrettyStackTrace()

void llvm::EnablePrettyStackTrace ( )

◆ EnableStatistics()

void llvm::EnableStatistics ( bool  PrintOnExit = true)

Enable the collection and printing of statistics.

Definition at line 129 of file Statistic.cpp.

References PrintOnExit.

Referenced by llvm::lto::LTO::run().

◆ encodeSLEB128() [1/2]

unsigned llvm::encodeSLEB128 ( int64_t  Value,
raw_ostream OS,
unsigned  PadTo = 0 
)
inline

◆ encodeSLEB128() [2/2]

unsigned llvm::encodeSLEB128 ( int64_t  Value,
uint8_t *  p,
unsigned  PadTo = 0 
)
inline

Utility function to encode a SLEB128 value to a buffer.

Returns the length in bytes of the encoded value.

Definition at line 53 of file LEB128.h.

◆ encodeULEB128() [1/2]

unsigned llvm::encodeULEB128 ( uint64_t  Value,
raw_ostream OS,
unsigned  PadTo = 0 
)
inline

◆ encodeULEB128() [2/2]

unsigned llvm::encodeULEB128 ( uint64_t  Value,
uint8_t *  p,
unsigned  PadTo = 0 
)
inline

Utility function to encode a ULEB128 value to a buffer.

Returns the length in bytes of the encoded value.

Definition at line 105 of file LEB128.h.

◆ enumerate()

template<typename R >
detail::enumerator<R> llvm::enumerate ( R &&  TheRange)

Given an input range, returns a new range whose values are are pair (A,B) such that A is the 0-based index of the item in the sequence, and B is the value from the original sequence.

Example:

std::vector<char> Items = {'A', 'B', 'C', 'D'}; for (auto X : enumerate(Items)) { printf("Item %d - %c\n", X.index(), X.value()); }

Output: Item 0 - A Item 1 - B Item 2 - C Item 3 - D

Definition at line 1517 of file STLExtras.h.

References F().

Referenced by llvm::AliasSetTracker::add(), emitDWARF5AccelTable(), llvm::AccelTableBase::finalize(), llvm::coverage::CoverageMapping::load(), and PointerMayBeCaptured().

◆ erase_if()

template<typename Container , typename UnaryPredicate >
void llvm::erase_if ( Container &  C,
UnaryPredicate  P 
)

Provide a container algorithm similar to C++ Library Fundamentals v2's erase_if which is equivalent to:

C.erase(remove_if(C, pred), C.end());

This version works for any container with an erase method call accepting two iterators.

Definition at line 1330 of file STLExtras.h.

References llvm::AMDGPU::HSAMD::Kernel::Key::Args, remove_if(), and T.

Referenced by addNonNullAttrs(), deleteDeadBlocksFromLoop(), filterDeadComdatFunctions(), hoistLoopToNewParent(), INITIALIZE_PASS(), isEFLAGSLive(), llvm::JumpThreadingPass::ProcessThreadableEdges(), rebuildLoopAfterUnswitch(), llvm::LoopFullUnrollPass::run(), llvm::AlwaysInlinerPass::run(), and llvm::LoopVectorizationPlanner::setBestPlan().

◆ errorCodeToError()

Error llvm::errorCodeToError ( std::error_code  EC)

Helper for converting an std::error_code to a Error.

Definition at line 88 of file Error.cpp.

Referenced by llvm::lto::Config::addSaveTemps(), llvm::RuntimeDyldImpl::computeTotalAllocSize(), llvm::FileOutputBuffer::create(), llvm::sys::fs::TempFile::create(), llvm::object::createBinary(), llvm::object::ObjectFile::createCOFFObjectFile(), createInMemoryBuffer(), llvm::object::ObjectFile::createObjectFile(), createOnDiskBuffer(), llvm::sys::fs::TempFile::discard(), llvm::DWARFYAML::EmitDebugSections(), llvm::orc::OrcAArch64::emitIndirectStubsBlock(), llvm::orc::OrcX86_64_Base::emitIndirectStubsBlock(), llvm::orc::OrcI386::emitIndirectStubsBlock(), llvm::orc::OrcMips32_Base::emitIndirectStubsBlock(), llvm::orc::OrcMips64::emitIndirectStubsBlock(), llvm::RuntimeDyldImpl::emitSection(), ErrorFromHResult(), errorOrToExpected(), llvm::coverage::CounterMappingContext::evaluate(), llvm::RuntimeDyldCOFFX86_64::finalizeLoad(), llvm::object::IRObjectFile::findBitcodeInMemBuffer(), llvm::object::IRObjectFile::findBitcodeInObject(), llvm::symbolize::LLVMSymbolizer::flush(), llvm::object::Archive::Child::getBuffer(), llvm::NewArchiveMember::getFile(), llvm::object::Archive::Symbol::getMember(), getModuleSummaryIndexForFile(), llvm::object::Elf_Sym_Impl< ELFT >::getName(), llvm::object::MachOObjectFile::getSection(), llvm::object::ObjectFile::getStartAddress(), llvm::object::COFFObjectFile::getSymbol(), llvm::object::COFFObjectFile::getSymbolAddress(), getSymbols(), llvm::object::COFFObjectFile::getSymbolSection(), llvm::lto::getThinLTOOutputFile(), llvm::InitLLVM::InitLLVM(), llvm::sys::fs::TempFile::keep(), llvm::coverage::CoverageMapping::load(), loadBinaryFormat(), llvm::pdb::loadDataForPDB(), loadObj(), llvm::RuntimeDyldELF::loadObject(), llvm::lto::localCache(), lookupSection(), llvm::object::ObjectFile::makeTriple(), llvm::WholeProgramDevirtPass::run(), llvm::lto::LTO::run(), selectJumpTableArmEncoding(), setupMemoryBuffer(), llvm::lto::setupOptimizationRemarks(), and llvm::object::SymbolicFile::SymbolicFile().

◆ errorOrToExpected()

template<typename T >
Expected<T> llvm::errorOrToExpected ( ErrorOr< T > &&  EO)

Convert an ErrorOr<T> to an Expected<T>.

Definition at line 1104 of file Error.h.

References errorCodeToError().

Referenced by llvm::WholeProgramDevirtPass::run(), and selectJumpTableArmEncoding().

◆ errorToBool()

bool llvm::errorToBool ( Error  Err)
inline

Helper for converting an Error to a bool.

This method returns true if Err is in an error state, or false if it is in a success state. Puts Err in a checked state in both cases (unlike Error::operator bool(), which only does this for success states).

Definition at line 991 of file Error.h.

Referenced by llvm::LTOModule::getProducerString(), llvm::LTOModule::isBitcodeFile(), and llvm::LTOModule::isBitcodeForTarget().

◆ errorToErrorCode()

std::error_code llvm::errorToErrorCode ( Error  Err)

◆ errorToErrorCodeAndEmitErrors()

std::error_code llvm::errorToErrorCodeAndEmitErrors ( LLVMContext Ctx,
Error  Err 
)

Definition at line 761 of file BitcodeReader.cpp.

Referenced by expectedToErrorOrAndEmitErrors().

◆ errs()

raw_ostream & llvm::errs ( )

This returns a reference to a raw_ostream for standard error.

errs() - This returns a reference to a raw_ostream for standard error.

Use it like: errs() << "foo" << "bar";

Definition at line 854 of file raw_ostream.cpp.

Referenced by addData(), AnalyzeReturnValues(), llvm::cl::basic_parser_impl::anchor(), llvm::SubtargetFeatures::ApplyFeatureFlag(), AVRDAGToDAGISel::select< ISD::BRIND >(), branchDiv(), llvm::Interpreter::callExternalFunction(), CC_Lanai32_VarArg(), llvm::RuntimeDyldCheckerImpl::checkAllRulesInBuffer(), CheckBitcodeOutputToConsole(), checkForCyclesHelper(), checkSanitizerInterfaceFunction(), llvm::raw_fd_ostream::clear_error(), llvm::SelectionDAG::clearGraphAttrs(), llvm::TargetSchedModel::computeOperandLatency(), CrashHandler(), llvm::EngineBuilder::create(), createGraphFilename(), llvm::Hexagon_MC::createHexagonMCSubtargetInfo(), CreateInfoOutputFile(), createMSP430ISelDag(), llvm::mca::RegisterFile::cycleStart(), dbgs(), DeleteTriviallyDeadInstructions(), llvm::LLVMContext::diagnose(), DisplayGraph(), dlltoolDriverMain(), llvm::PhysicalRegisterUsageInfo::doFinalization(), doImportingForModule(), DoInitialMatch(), llvm::ELFRelocationEntry::dump(), llvm::SubMultiClassReference::dump(), llvm::RecTy::dump(), llvm::MCFragment::dump(), llvm::DWARFDie::dump(), llvm::ARMConstantPoolValue::dump(), llvm::MCSection::dump(), llvm::Init::dump(), llvm::CallGraphWrapperPass::dump(), llvm::AliasSetTracker::dump(), llvm::MCAssembler::dump(), llvm::LiveRangeUpdater::dump(), llvm::RecordVal::dump(), llvm::Record::dump(), llvm::RecordKeeper::dump(), dumpDataAux(), llvm::RGPassManager::dumpPassStructure(), llvm::LPPassManager::dumpPassStructure(), dumpRelocs(), llvm::XCoreFrameLowering::eliminateCallFramePseudoInstr(), llvm::XCoreRegisterInfo::eliminateFrameIndex(), llvm::MipsRegisterInfo::eliminateFrameIndex(), llvm::ARMTargetLowering::EmitInstrWithCustomInserter(), llvm::ARMAsmPrinter::EmitJumpTableTBInst(), llvm::AMDGPU::HSAMD::MetadataStreamerV2::emitKernel(), emitNullTerminatedSymbolName(), llvm::CodeViewContext::encodeInlineLineTable(), llvm::WithColor::error(), ExecGraphViewer(), llvm::CodeExtractor::extractCodeRegion(), ferrs(), findBasePointers(), llvm::AMDGPULibCalls::fold(), getAccessVariant(), llvm::cl::Option::getExtraOptionNames(), llvm::SubtargetFeatures::getFeatureBits(), getGNUBinOpPrecedence(), llvm::SelectionDAG::getGraphAttrs(), llvm::sys::getHostCPUName(), getLoadStoreOffsetAlign(), getProcCpuinfoContent(), llvm::WebAssemblyAsmPrinter::getRegType(), getRetOpcode(), llvm::MCSubtargetInfo::getSchedModelForCPU(), getSchedRegions(), llvm::MipsTargetMachine::getTargetTransformInfo(), llvm::lto::getThinLTOOutputFile(), handleExecNameEncodedBEOpts(), handleExecNameEncodedOptimizerOpts(), HasSecRelSymbolRef(), Help(), HexagonLowerToMC(), INITIALIZE_PASS(), insertIfNamed(), insertParsePoints(), llvm::Mips16RegisterInfo::intRegClass(), isCallPromotable(), llvm::DomTreeBuilder::SemiNCAInfo< DomTreeT >::IsSameAsFreshTree(), llvm::LTOModule::isThinLTO(), llvm::MCAssembler::layout(), lle_X_sprintf(), LLVMDumpModule(), LLVMDumpType(), LLVMDumpValue(), LLVMSetLinkage(), LLVMVerifyFunction(), LLVMVerifyModule(), llvm::lto::localCache(), log2(), llvm::MSP430MCInstLower::Lower(), llvm::BPFMCInstLower::Lower(), llvm::LanaiMCInstLower::Lower(), llvm::WebAssemblyMCInstLower::Lower(), lowerCallResult(), LowerCallResult(), llvm::AVRMCInstLower::lowerInstruction(), llvm::IntrinsicLowering::LowerIntrinsicCall(), llvm::BPFTargetLowering::LowerOperation(), llvm::HexagonTargetLowering::LowerOperation(), llvm::AMDGPUTargetLowering::LowerOperation(), makeCombineInst(), matchPair(), mayUsePostIncMode(), llvm::MipsSubtarget::MipsSubtarget(), llvm::WithColor::note(), llvm::FileInfo::openCoveragePath(), openFile(), llvm::PluginLoader::operator=(), llvm::LTOCodeGenerator::optimize(), OptimizeGlobalAddressOfMalloc(), parseAndVerify(), parseCHRFilterFiles(), llvm::PassNameParser::passRegistered(), llvm::PPCHazardRecognizer970::PPCHazardRecognizer970(), PrepareCall(), llvm::ValueEnumerator::print(), llvm::detail::printBumpPtrAllocatorStats(), PrintLoadStoreResults(), llvm::SourceMgr::PrintMessage(), PrintModRefResults(), printPassMessage(), PrintPercent(), PrintRecyclerStats(), PrintResults(), llvm::DebugCounter::push_back(), llvm::FileCheck::ReadCheckFile(), llvm::GCOVFile::readGCDA(), llvm::GCOVFunction::readGCDA(), llvm::GCOVBuffer::readGCDAFormat(), llvm::GCOVFunction::readGCNO(), llvm::GCOVBuffer::readGCNOFormat(), llvm::GCOVBuffer::readGCOVVersion(), llvm::GCOVBuffer::readInt(), llvm::GCOVBuffer::readString(), llvm::GenericScheduler::registerRoots(), llvm::PostGenericScheduler::registerRoots(), llvm::WithColor::remark(), removeUseSoftFloat(), reportError(), reportOpenError(), llvm::cl::ResetAllOptionOccurrences(), llvm::RuntimeDyldCOFFX86_64::resolveRelocation(), llvm::IRCEPass::run(), llvm::AAEvaluator::run(), llvm::GVN::run(), llvm::ThinLTOCodeGenerator::run(), runFuzzerOnInputs(), llvm::DOTGraphTraitsPrinter< AnalysisT, IsSimple, GraphT, AnalysisGraphTraitsT >::runOnFunction(), llvm::DetectRoundChange::runOnMachineFunction(), llvm::DOTGraphTraitsModulePrinter< AnalysisT, IsSimple, GraphT, AnalysisGraphTraitsT >::runOnModule(), llvm::SelectionDAG::setGraphAttrs(), llvm::SelectionDAG::setGraphColor(), llvm::SelectionDAG::setSubgraphColor(), llvm::SubtargetFeatures::ToggleFeature(), llvm::OrcCBindingsStack::UnregisterJITEventListener(), UpgradeDebugInfo(), llvm::PHITransAddr::Verify(), llvm::MachineFunction::verify(), llvm::LegalizerInfo::verify(), llvm::MachineDominatorTree::verifyAnalysis(), llvm::DomTreeBuilder::SemiNCAInfo< DomTreeT >::VerifyDFSNumbers(), llvm::DomTreeBuilder::SemiNCAInfo< DomTreeT >::VerifyLevels(), VerifyLowRegs(), verifyModule(), llvm::DomTreeBuilder::SemiNCAInfo< DomTreeT >::verifyParentProperty(), llvm::DomTreeBuilder::SemiNCAInfo< DomTreeT >::verifyReachability(), llvm::DomTreeBuilder::SemiNCAInfo< DomTreeT >::verifyRoots(), llvm::DomTreeBuilder::SemiNCAInfo< DomTreeT >::verifySiblingProperty(), VerifySubExpr(), llvm::MachineRegisterInfo::verifyUseList(), llvm::MachineFunction::viewCFG(), llvm::MachineFunction::viewCFGOnly(), llvm::DominatorTree::viewGraph(), llvm::ScheduleDAGMI::viewGraph(), llvm::SelectionDAG::viewGraph(), llvm::ScheduleDAG::viewGraph(), llvm::Interpreter::visitInstruction(), llvm::WithColor::warning(), writeCFGToDotFile(), WriteGraph(), llvm::AAEvaluator::~AAEvaluator(), and llvm::ThreadPool::~ThreadPool().

◆ expandAtomicRMWToCmpXchg()

bool llvm::expandAtomicRMWToCmpXchg ( AtomicRMWInst AI,
CreateCmpXchgInstFun  CreateCmpXchg 
)

Expand an atomic RMW instruction into a loop utilizing cmpxchg.

You'll want to make sure your target machine likes cmpxchg instructions in the first place and that there isn't another, better, transformation available (for example AArch32/AArch64 have linked loads).

This is useful in passes which can't rewrite the more exotic RMW instructions directly into a platform specific intrinsics (because, say, those intrinsics don't exist). If such a pass is able to expand cmpxchg instructions directly however, then, with this function, it could avoid two extra module passes (avoiding passes by -atomic-expand and itself). A specific example would be PNaCl's RewriteAtomics pass.

Given: atomicrmw some_op iN* addr, iN incr ordering

The standard expansion we produce is: [...] init_loaded = load atomic iN* addr br label loop loop: loaded = phi iN [ init_loaded, entry ], [ new_loaded, loop ] new = some_op iN loaded, incr ; This is what -atomic-expand will produce using this function on i686 targets: pair = cmpxchg iN* addr, iN loaded, iN new_val new_loaded = extractvalue { iN, i1 } pair, 0 success = extractvalue { iN, i1 } pair, 1 ; End callback produced IR br i1 success, label atomicrmw.end, label loop atomicrmw.end: [...]

Returns true if the containing function was modified.

Definition at line 1405 of file AtomicExpandPass.cpp.

References llvm::Instruction::eraseFromParent(), llvm::AtomicRMWInst::getOperation(), llvm::AtomicRMWInst::getOrdering(), llvm::AtomicRMWInst::getPointerOperand(), llvm::Value::getType(), llvm::AtomicRMWInst::getValOperand(), performAtomicOp(), and llvm::Value::replaceAllUsesWith().

Referenced by GetRMWLibcall(), and performAtomicOp().

◆ expandDivision()

bool llvm::expandDivision ( BinaryOperator Div)

Generate code to divide two integers, replacing Div with the generated code.

This currently generates code similarly to compiler-rt's implementations, but future work includes generating more specialized code when more information about the operands are known. Implements both 32bit and 64bit scalar division.

Replace Div with generated code.

Definition at line 434 of file IntegerDivision.cpp.

References assert(), llvm::User::dropAllReferences(), dyn_cast(), llvm::Instruction::eraseFromParent(), generateSignedDivisionCode(), generateUnsignedDivisionCode(), llvm::IRBuilderBase::GetInsertPoint(), llvm::Type::getIntegerBitWidth(), llvm::ilist_node_impl< OptionsT >::getIterator(), llvm::BinaryOperator::getOpcode(), llvm::User::getOperand(), llvm::Value::getType(), llvm::Type::isVectorTy(), and llvm::Value::replaceAllUsesWith().

Referenced by expandDivisionUpTo32Bits(), expandDivisionUpTo64Bits(), and expandRemainder().

◆ expandDivisionUpTo32Bits()

bool llvm::expandDivisionUpTo32Bits ( BinaryOperator Div)

Generate code to divide two integers, replacing Div with the generated code.

Generate code to divide two integers of bitwidth up to 32 bits.

Uses ExpandDivision with a 32bit Div which makes it useful for targets with little or no support for less than 32 bit arithmetic.

Replace Rem with generated code.

Uses the above routines and extends the inputs/truncates the outputs to operate in 32 bits; that is, these routines are good for targets that have no or very little support for smaller than 32 bit integer arithmetic.

Replace Div with emulation code.

Definition at line 584 of file IntegerDivision.cpp.

References assert(), llvm::IRBuilder< T, Inserter >::CreateSDiv(), llvm::IRBuilder< T, Inserter >::CreateSExt(), llvm::IRBuilder< T, Inserter >::CreateTrunc(), llvm::IRBuilder< T, Inserter >::CreateUDiv(), llvm::IRBuilder< T, Inserter >::CreateZExt(), llvm::User::dropAllReferences(), llvm::Instruction::eraseFromParent(), expandDivision(), llvm::IRBuilderBase::getInt32Ty(), llvm::Type::getIntegerBitWidth(), llvm::BinaryOperator::getOpcode(), llvm::User::getOperand(), llvm::Value::getType(), Int32Ty, llvm::Type::isVectorTy(), and llvm::Value::replaceAllUsesWith().

◆ expandDivisionUpTo64Bits()

bool llvm::expandDivisionUpTo64Bits ( BinaryOperator Div)

Generate code to divide two integers, replacing Div with the generated code.

Generate code to divide two integers of bitwidth up to 64 bits.

Uses ExpandDivision with a 64bit Div.

Replace Rem with generated code.

Uses the above routines and extends the inputs/truncates the outputs to operate in 64 bits.

Replace Div with emulation code.

Definition at line 632 of file IntegerDivision.cpp.

References assert(), llvm::IRBuilder< T, Inserter >::CreateSDiv(), llvm::IRBuilder< T, Inserter >::CreateSExt(), llvm::IRBuilder< T, Inserter >::CreateTrunc(), llvm::IRBuilder< T, Inserter >::CreateUDiv(), llvm::IRBuilder< T, Inserter >::CreateZExt(), llvm::User::dropAllReferences(), llvm::Instruction::eraseFromParent(), expandDivision(), llvm::IRBuilderBase::getInt64Ty(), llvm::Type::getIntegerBitWidth(), llvm::BinaryOperator::getOpcode(), llvm::User::getOperand(), llvm::Value::getType(), llvm::Type::isVectorTy(), and llvm::Value::replaceAllUsesWith().

◆ expandMemCpyAsLoop()

void llvm::expandMemCpyAsLoop ( MemCpyInst MemCpy,
const TargetTransformInfo TTI 
)

◆ expandMemMoveAsLoop()

void llvm::expandMemMoveAsLoop ( MemMoveInst MemMove)

◆ expandMemSetAsLoop()

void llvm::expandMemSetAsLoop ( MemSetInst MemSet)

◆ expandRemainder()

bool llvm::expandRemainder ( BinaryOperator Rem)

Generate code to calculate the remainder of two integers, replacing Rem with the generated code.

This currently generates code using the udiv expansion, but future work includes generating more specialized code, e.g. when more information about the operands are known. Implements both 32bit and 64bit scalar division.

Replace Rem with generated code.

Definition at line 376 of file IntegerDivision.cpp.

References assert(), llvm::User::dropAllReferences(), dyn_cast(), llvm::Instruction::eraseFromParent(), expandDivision(), generatedUnsignedRemainderCode(), generateSignedRemainderCode(), llvm::IRBuilderBase::GetInsertPoint(), llvm::Type::getIntegerBitWidth(), llvm::ilist_node_impl< OptionsT >::getIterator(), llvm::BinaryOperator::getOpcode(), llvm::User::getOperand(), llvm::Value::getType(), llvm::Type::isVectorTy(), and llvm::Value::replaceAllUsesWith().

Referenced by expandRemainderUpTo32Bits(), and expandRemainderUpTo64Bits().

◆ expandRemainderUpTo32Bits()

bool llvm::expandRemainderUpTo32Bits ( BinaryOperator Rem)

Generate code to calculate the remainder of two integers, replacing Rem with the generated code.

Generate code to compute the remainder of two integers of bitwidth up to 32 bits.

Uses ExpandReminder with a 32bit Rem which makes it useful for targets with little or no support for less than 32 bit arithmetic.

Replace Rem with generated code.

Uses the above routines and extends the inputs/truncates the outputs to operate in 32 bits; that is, these routines are good for targets that have no or very little suppport for smaller than 32 bit integer arithmetic.

Replace Rem with emulation code.

Definition at line 486 of file IntegerDivision.cpp.

References assert(), llvm::IRBuilder< T, Inserter >::CreateSExt(), llvm::IRBuilder< T, Inserter >::CreateSRem(), llvm::IRBuilder< T, Inserter >::CreateTrunc(), llvm::IRBuilder< T, Inserter >::CreateURem(), llvm::IRBuilder< T, Inserter >::CreateZExt(), llvm::User::dropAllReferences(), llvm::Instruction::eraseFromParent(), expandRemainder(), llvm::IRBuilderBase::getInt32Ty(), llvm::Type::getIntegerBitWidth(), llvm::BinaryOperator::getOpcode(), llvm::User::getOperand(), llvm::Value::getType(), Int32Ty, llvm::Type::isVectorTy(), and llvm::Value::replaceAllUsesWith().

◆ expandRemainderUpTo64Bits()

bool llvm::expandRemainderUpTo64Bits ( BinaryOperator Rem)

Generate code to calculate the remainder of two integers, replacing Rem with the generated code.

Generate code to compute the remainder of two integers of bitwidth up to 64 bits.

Uses ExpandReminder with a 64bit Rem.

Replace Rem with generated code.

Uses the above routines and extends the inputs/truncates the outputs to operate in 64 bits.

Replace Rem with emulation code.

Definition at line 535 of file IntegerDivision.cpp.

References assert(), llvm::IRBuilder< T, Inserter >::CreateSExt(), llvm::IRBuilder< T, Inserter >::CreateSRem(), llvm::IRBuilder< T, Inserter >::CreateTrunc(), llvm::IRBuilder< T, Inserter >::CreateURem(), llvm::IRBuilder< T, Inserter >::CreateZExt(), llvm::User::dropAllReferences(), llvm::Instruction::eraseFromParent(), expandRemainder(), llvm::IRBuilderBase::getInt64Ty(), llvm::Type::getIntegerBitWidth(), llvm::BinaryOperator::getOpcode(), llvm::User::getOperand(), llvm::Value::getType(), llvm::Type::isVectorTy(), and llvm::Value::replaceAllUsesWith().

◆ expectedToErrorOr()

template<typename T >
ErrorOr<T> llvm::expectedToErrorOr ( Expected< T > &&  E)

Convert an Expected<T> to an ErrorOr<T>.

Definition at line 1111 of file Error.h.

◆ expectedToErrorOrAndEmitErrors()

template<typename T >
ErrorOr<T> llvm::expectedToErrorOrAndEmitErrors ( LLVMContext Ctx,
Expected< T Val 
)

◆ extractCallocCall() [1/2]

const CallInst * llvm::extractCallocCall ( const Value I,
const TargetLibraryInfo TLI 
)

extractCallocCall - Returns the corresponding CallInst if the instruction is a calloc call.

Definition at line 357 of file MemoryBuiltins.cpp.

References I, and isCallocLikeFn().

Referenced by extractCallocCall(), and extractMallocCall().

◆ extractCallocCall() [2/2]

CallInst* llvm::extractCallocCall ( Value I,
const TargetLibraryInfo TLI 
)
inline

Definition at line 129 of file MemoryBuiltins.h.

References extractCallocCall(), and isFreeCall().

◆ extractConstantMask()

static bool llvm::extractConstantMask ( const Constant C,
unsigned  MaskEltSizeInBits,
APInt UndefElts,
SmallVectorImpl< uint64_t > &  RawMask 
)
static

◆ extractMallocCall() [1/2]

const CallInst * llvm::extractMallocCall ( const Value I,
const TargetLibraryInfo TLI 
)

extractMallocCall - Returns the corresponding CallInst if the instruction is a malloc call.

Since CallInst::CreateMalloc() only creates calls, we ignore InvokeInst here.

Definition at line 270 of file MemoryBuiltins.cpp.

References dyn_cast(), I, and isMallocLikeFn().

Referenced by extractMallocCall(), and optimizeOnceStoredGlobal().

◆ extractMallocCall() [2/2]

CallInst* llvm::extractMallocCall ( Value I,
const TargetLibraryInfo TLI 
)
inline

◆ ExtractTypeInfo()

GlobalValue * llvm::ExtractTypeInfo ( Value V)

ExtractTypeInfo - Returns the type info, possibly bitcast, encoded in V.

Definition at line 118 of file Analysis.cpp.

References assert(), dyn_cast(), and llvm::Value::stripPointerCasts().

Referenced by ComputeLinearIndex(), getOffsetFromIndices(), and getUnderlyingArgReg().

◆ f64AssignAAPCS()

static bool llvm::f64AssignAAPCS ( unsigned ValNo,
MVT ValVT,
MVT LocVT,
CCValAssign::LocInfo LocInfo,
CCState State,
bool  CanFail 
)
static

◆ f64AssignAPCS()

static bool llvm::f64AssignAPCS ( unsigned ValNo,
MVT ValVT,
MVT LocVT,
CCValAssign::LocInfo LocInfo,
CCState State,
bool  CanFail 
)
static

◆ f64RetAssign()

static bool llvm::f64RetAssign ( unsigned ValNo,
MVT ValVT,
MVT LocVT,
CCValAssign::LocInfo LocInfo,
CCState State 
)
static

◆ Failed() [1/2]

template<typename InfoT >
testing::Matcher<const detail::ErrorHolder &> llvm::Failed ( )

◆ Failed() [2/2]

template<typename InfoT , typename M >
testing::Matcher<const detail::ErrorHolder &> llvm::Failed ( Matcher)

Definition at line 153 of file Error.h.

◆ fdbgs()

formatted_raw_ostream & llvm::fdbgs ( )

fdbgs() - This returns a reference to a formatted_raw_ostream for debug output.

fdbgs() - This returns a reference to a formatted_raw_ostream for the debug stream.

Use it like: fdbgs() << "foo" << "bar";

Definition at line 105 of file FormattedStream.cpp.

References dbgs().

Referenced by llvm::formatted_raw_ostream::is_displayed().

◆ ferrs()

formatted_raw_ostream & llvm::ferrs ( )

ferrs() - This returns a reference to a formatted_raw_ostream for standard error.

Use it like: ferrs() << "foo" << "bar";

Definition at line 98 of file FormattedStream.cpp.

References errs().

Referenced by llvm::formatted_raw_ostream::is_displayed().

◆ filterDeadComdatFunctions()

void llvm::filterDeadComdatFunctions ( Module M,
SmallVectorImpl< Function *> &  DeadComdatFunctions 
)

Filter out potentially dead comdat functions where other entries keep the entire comdat group alive.

This is designed for cases where functions appear to become dead but remain alive due to other live entries in their comdat group.

The DeadComdatFunctions container should only have pointers to Functions which are members of a comdat group and are believed to be dead.

After this routine finishes, the only remaining Functions in DeadComdatFunctions are those where every member of the comdat is listed and thus removing them is safe (provided all are removed).

Definition at line 220 of file ModuleUtils.cpp.

References llvm::Module::aliases(), assert(), C, llvm::DenseMapBase< SmallDenseMap< KeyT, ValueT, InlineBuckets, KeyInfoT, BucketT >, KeyT, ValueT, KeyInfoT, BucketT >::empty(), llvm::DenseMapBase< SmallDenseMap< KeyT, ValueT, InlineBuckets, KeyInfoT, BucketT >, KeyT, ValueT, KeyInfoT, BucketT >::end(), llvm::DenseMapBase< SmallDenseMap< KeyT, ValueT, InlineBuckets, KeyInfoT, BucketT >, KeyT, ValueT, KeyInfoT, BucketT >::erase(), erase_if(), F(), llvm::DenseMapBase< SmallDenseMap< KeyT, ValueT, InlineBuckets, KeyInfoT, BucketT >, KeyT, ValueT, KeyInfoT, BucketT >::find(), llvm::Module::functions(), llvm::GlobalValue::getComdat(), and llvm::Module::globals().

Referenced by llvm::LegacyInlinerBase::removeDeadFunctions(), and llvm::AlwaysInlinerPass::run().

◆ finalizeBundle() [1/2]

void llvm::finalizeBundle ( MachineBasicBlock MBB,
MachineBasicBlock::instr_iterator  FirstMI,
MachineBasicBlock::instr_iterator  LastMI 
)

finalizeBundle - Finalize a machine instruction bundle which includes a sequence of instructions starting from FirstMI to LastMI (exclusive).

This routine adds a BUNDLE instruction to represent the bundle, it adds IsInternalRead markers to MachineOperands which are defined inside the bundle, and it copies externally visible defs and uses to the BUNDLE instruction.

Definition at line 125 of file MachineInstrBundle.cpp.

References llvm::MachineInstrBuilder::addReg(), assert(), BuildMI(), llvm::SmallVectorImpl< T >::clear(), llvm::SmallSet< T, N, C >::count(), llvm::SmallSet< T, N, C >::erase(), llvm::MachineInstr::FrameDestroy, llvm::MachineInstr::FrameSetup, llvm::MCInstrInfo::get(), getDeadRegState(), getDebugLoc(), getDefRegState(), getImplRegState(), llvm::TargetSubtargetInfo::getInstrInfo(), getKillRegState(), llvm::MachineBasicBlock::getParent(), llvm::MachineOperand::getReg(), llvm::TargetSubtargetInfo::getRegisterInfo(), llvm::MachineFunction::getSubtarget(), getUndefRegState(), llvm::SmallSet< T, N, C >::insert(), llvm::MachineOperand::isDead(), llvm::MachineOperand::isDef(), llvm::MachineOperand::isKill(), llvm::TargetRegisterInfo::isPhysicalRegister(), llvm::MachineOperand::isReg(), llvm::MachineOperand::isUndef(), isUndef(), llvm::MCRegisterInfo::DiffListIterator::isValid(), llvm::MIBundleBuilder::prepend(), llvm::SmallVectorTemplateBase< T, bool >::push_back(), llvm::SmallVectorTemplateBase< T >::push_back(), Reg, llvm::MachineOperand::setIsInternalRead(), llvm::MachineInstrBuilder::setMIFlag(), llvm::SmallVectorBase::size(), SubReg, TII, and TRI.

Referenced by llvm::HexagonPacketizerList::endPacket(), llvm::VLIWPacketizerList::endPacket(), llvm::SIInstrInfo::expandPostRAPseudo(), finalizeBundle(), finalizeBundles(), isCopy(), and makeImplicit().

◆ finalizeBundle() [2/2]

finalizeBundle - Same functionality as the previous finalizeBundle except the last instruction in the bundle is not provided as an input.

This is used in cases where bundles are pre-determined by marking instructions with 'InsideBundle' marker. It returns the MBB instruction iterator that points to the end of the bundle.

Definition at line 245 of file MachineInstrBundle.cpp.

References E, finalizeBundle(), and llvm::MachineBasicBlock::instr_end().

◆ finalizeBundles()

bool llvm::finalizeBundles ( MachineFunction MF)

finalizeBundles - Finalize instruction bundles in the specified MachineFunction.

Return true if any bundles are finalized.

Definition at line 257 of file MachineInstrBundle.cpp.

References assert(), llvm::MachineFunction::begin(), E, llvm::MachineFunction::end(), finalizeBundle(), I, llvm::MachineBasicBlock::instr_begin(), and llvm::MachineBasicBlock::instr_end().

Referenced by INITIALIZE_PASS().

◆ find()

template<typename R , typename T >
auto llvm::find ( R &&  Range,
const T Val 
) -> decltype(adl_begin(Range))

Provide wrappers to std::find which take ranges instead of having to pass begin/end explicitly.

Definition at line 1207 of file STLExtras.h.

References adl_begin(), and adl_end().

Referenced by addLocIfNotPresent(), llvm::LiveRange::advanceTo(), canFoldIVIncExpr(), llvm::LoopInfoBase< BasicBlock, Loop >::changeTopLevelLoop(), llvm::ScheduleDAGInstrs::Value2SUsMap::clearList(), llvm::DominanceFrontierBase< BasicBlock, false >::compare(), computeUnlikelySuccessors(), llvm::MachineBasicBlock::copySuccessor(), llvm::SparseSet< unsigned, llvm::VirtReg2IndexFunctor >::count(), llvm::StringMap< uint64_t >::count(), llvm::SmallPtrSetImpl< const llvm::SCEV * >::count(), CreateGCRelocates(), createSeparateConstOffsetFromGEPPass(), def_chain(), llvm::DomTreeBuilder::SemiNCAInfo< DomTreeT >::DeleteEdge(), llvm::DomTreeBuilder::SemiNCAInfo< DomTreeT >::DeleteUnreachable(), llvm::ARMFrameLowering::determineCalleeSaves(), llvm::DWARFUnit::determineStringOffsetsTableContribution(), dropRegDescribedVar(), llvm::GVNExpression::Expression::dump(), emitBasicBlockLoopComments(), EmitCamlGlobal(), llvm::SparseSet< unsigned, llvm::VirtReg2IndexFunctor >::erase(), llvm::StringMap< uint64_t >::erase(), llvm::PriorityQueue< T, Sequence, Compare >::erase_one(), llvm::DomTreeBuilder::SemiNCAInfo< DomTreeT >::EraseNode(), llvm::mca::InstructionTables::execute(), ExpandCryptoAEK(), llvm::sys::DynamicLibrary::HandleSet::Find(), llvm::rdf::IndexedSet< const uint32_t *>::find(), llvm::LiveRange::find(), llvm::ReadyQueue::find(), llvm::LiveRange::FindSegmentContaining(), llvm::ScalarEvolution::forgetValue(), llvm::DomTreeBuilder::SemiNCAInfo< DomTreeT >::ChildrenGetter< Inverse >::Get(), llvm::DWARFDie::getAddressRanges(), llvm::DWARFDie::getAttributeValueAsReferencedDie(), llvm::DWARFDie::getCallerFrame(), llvm::DWARFUnit::getCompilationDir(), llvm::MachineBranchProbabilityInfo::getEdgeProbability(), llvm::DWARFDie::getHighPC(), llvm::rdf::LaneMaskIndex::getIndexForLaneMask(), getLayoutSuccessorProbThreshold(), llvm::GCOVBlock::getLineCount(), llvm::DWARFDie::getLowAndHighPC(), llvm::DOTGraphTraits< BoUpSLP * >::getNodeAttributes(), llvm::HexagonTargetLowering::getPreferredVectorAction(), llvm::DWARFDie::getRangesBaseAttribute(), getReassignedChan(), getReducedType(), getUnconditionalBrDisp(), GetVRegRenameMap(), hasProfileData(), llvm::cl::HideUnrelatedOptions(), llvm::GraphDiff< llvm::BasicBlock *, IsPostDom >::ignoreChild(), INITIALIZE_PASS(), llvm::rdf::IndexedSet< const uint32_t *>::insert(), llvm::IntervalMap< SlotIndex, unsigned >::insert(), is_contained(), llvm::PBQP::RegAlloc::NodeMetadata::isConservativelyAllocatable(), isCPUValid(), isDebug(), isImageOrSamplerVal(), llvm::HexagonPacketizerList::isLegalToPacketizeTogether(), llvm::LiveRange::isLiveAtIndexes(), llvm::LoopBase< BasicBlock, Loop >::isLoopLatch(), IsMaxConsistingOf(), llvm::DataLayout::isNonIntegralPointerType(), isProfitableChain(), IsSingleInstrConstant(), isUnconditionalBranch(), llvm::AMDGPULibCalls::isUnsafeMath(), isValidCandidateForColdCC(), llvm::LiveRange::liveAt(), llvm::StringMap< uint64_t >::lookup(), lowerV8I16GeneralSingleInputVectorShuffle(), lowerVectorShuffle(), MaySpeculate(), MergeBasicBlockIntoOnlyPred(), llvm::LegalizerInfo::moreToWiderTypesAndLessToWidest(), llvm::LiveRange::overlaps(), llvm::IntervalMap< SlotIndex, unsigned >::overlaps(), llvm::InlineAsm::ConstraintInfo::Parse(), llvm::InlineAsm::ParseConstraints(), llvm::LiveRange::Query(), rebuildLoopAfterUnswitch(), llvm::AArch64TargetLowering::ReconstructShuffle(), reduceBuildVecToShuffleWithZero(), llvm::OuterAnalysisManagerProxy< AnalysisManagerT, IRUnitT, ExtraArgTs >::Result::registerOuterAnalysisInvalidation(), llvm::StatepointLoweringState::relocCallVisited(), llvm::LatencyPriorityQueue::remove(), llvm::ResourcePriorityQueue::remove(), llvm::SetVector< llvm::SUnit *>::remove(), llvm::DominanceFrontierBase< BasicBlock, false >::removeBlock(), llvm::LoopBase< BasicBlock, Loop >::removeBlockFromLoop(), llvm::LoopBase< BasicBlock, Loop >::removeChildLoop(), RemoveInstInputs(), llvm::LiveVariables::VarInfo::removeKill(), llvm::GISelObserverWrapper::removeObserver(), llvm::SUnit::removePred(), llvm::BasicBlock::removePredecessor(), llvm::DomTreeBuilder::SemiNCAInfo< DomTreeT >::RemoveRedundantRoots(), llvm::PassRegistry::removeRegistrationListener(), llvm::MachineBasicBlock::removeSuccessor(), llvm::LoopBase< BasicBlock, Loop >::replaceChildLoopWith(), rescheduleCanonically(), reservePreviousStackSlotForValue(), llvm::InlinerPass::run(), runOnBasicBlock(), llvm::mca::Scheduler::sanityCheck(), llvm::SIScheduleBlock::schedule(), setBranchProb(), llvm::DomTreeNodeBase< VPBlockBase >::setIDom(), shouldReorderOperands(), SimplifyShuffleVectorInst(), llvm::InstCombiner::SliceUpIllegalIntegerPHI(), SplitCriticalEdge(), llvm::MachineBasicBlock::splitSuccessor(), TryToSimplifyUncondBranchFromEmptyBlock(), llvm::LegalityPredicates::typeInSet(), llvm::LegalityPredicates::typePairAndMemSizeInSet(), llvm::LegalityPredicates::typePairInSet(), llvm::GCOVBlock::unblock(), llvm::MCJIT::UnregisterJITEventListener(), llvm::OrcCBindingsStack::UnregisterJITEventListener(), llvm::AssumptionCache::updateAffectedValues(), UpdatePredRedefs(), llvm::DomTreeBuilder::SemiNCAInfo< DomTreeT >::UpdateRootsBeforeInsertion(), llvm::HexagonSubtarget::usePredicatedCalls(), usesOperand(), verifyBlocksInRegion(), llvm::MemorySSA::verifyDefUses(), and VerifySubExpr().

◆ find_if()

template<typename R , typename UnaryPredicate >
auto llvm::find_if ( R &&  Range,
UnaryPredicate  P 
) -> decltype(adl_begin(Range))

Provide wrappers to std::find_if which take ranges instead of having to pass begin/end explicitly.

Definition at line 1214 of file STLExtras.h.

References adl_begin(), adl_end(), and P.

Referenced by addRegLanes(), llvm::RegionBase< RegionTraits< Function > >::addSubRegion(), llvm::mca::WriteState::addUser(), areCFlagsAccessedBetweenInstrs(), canTurnIntoCOPY(), collectVirtualRegUses(), ConvertCostTableLookup(), CostTableLookup(), createBlockExtractorPass(), createControlHeightReductionLegacyPass(), llvm::pdb::SymbolCache::createGlobalsEnumerator(), llvm::mca::EntryStage::cycleEnd(), llvm::GCNIterativeScheduler::detachSchedule(), llvm::RegPressureTracker::discoverLiveInOrOut(), DoInitialMatch(), llvm::ArrayRef< llvm::irsymtab::storage::Comdat >::drop_until(), llvm::MutableArrayRef< BitWord >::drop_until(), llvm::orc::JITDylib::dump(), llvm::PMDataManager::emitInstrCountChangedRemark(), llvm::CodeViewContext::emitLineTableForFunction(), llvm::SwitchInst::findCaseValue(), llvm::ModuleSummaryIndex::findSummaryInModule(), findUncondBrI(), getAllocationDataForFunction(), llvm::AVRMCExpr::getKindByName(), llvm::AVRMCExpr::getName(), llvm::rdf::Liveness::getNearestAliasedRef(), getRegLanes(), getTargetIndexName(), INITIALIZE_PASS(), llvm::HexagonFrameLowering::insertCFIInstructions(), llvm::xray::Profile::internPath(), isEXTMask(), llvm::MachineBasicBlock::isLiveIn(), LLVMGetTargetFromName(), loadObj(), llvm::TargetRegistry::lookupTarget(), llvm::HexagonTargetLowering::LowerVECTOR_SHUFFLE(), lowerVectorShuffleAsElementInsertion(), lowerVectorShuffleWithSHUFPS(), llvm::simple_ilist< MachineInstr, Options... >::merge(), llvm::rdf::operator<<(), optimizeVcndVcmpPair(), parsePhysicalReg(), llvm::MCSectionMachO::ParseSectionSpecifier(), llvm::ValueEnumerator::print(), llvm::SMDiagnostic::print(), propagateSwiftErrorVRegs(), llvm::GVNHoist::rank(), llvm::RegPressureTracker::recede(), registerDefinedBetween(), llvm::orc::JITDylib::removeFromSearchOrder(), llvm::LazyCallGraph::RefSCC::removeInternalRefEdge(), llvm::MachineBasicBlock::removeLiveIn(), removeRegLanes(), llvm::RegionBase< RegionTraits< Function > >::removeSubRegion(), llvm::orc::JITDylib::replaceInSearchOrder(), rescheduleCanonically(), scavengeVReg(), selectCallee(), llvm::EngineBuilder::selectTarget(), setRegZero(), setRequiredFeatureString(), sinkRegion(), llvm::LazyCallGraph::RefSCC::switchInternalEdgeToRef(), llvm::ArrayRef< llvm::irsymtab::storage::Comdat >::take_until(), llvm::MutableArrayRef< BitWord >::take_until(), llvm::AMDGPUSymbolizer::tryAddingSymbolicOperand(), tryUnmergingGEPsAcrossIndirectBr(), and WindowsRequiresStackProbe().

◆ find_if_not()

template<typename R , typename UnaryPredicate >
auto llvm::find_if_not ( R &&  Range,
UnaryPredicate  P 
) -> decltype(adl_begin(Range))

◆ findAllNVVMAnnotation()

bool llvm::findAllNVVMAnnotation ( const GlobalValue gv,
const std::string &  prop,
std::vector< unsigned > &  retval 
)

◆ FindAvailableLoadedValue()

Value * llvm::FindAvailableLoadedValue ( LoadInst Load,
BasicBlock ScanBB,
BasicBlock::iterator ScanFrom,
unsigned  MaxInstsToScan = DefMaxInstsToScan,
AliasAnalysis AA = nullptr,
bool IsLoadCSE = nullptr,
unsigned NumScanedInst = nullptr 
)

Scan backwards to see if we have the value of the given load available locally within a small number of instructions.

You can use this function to scan across multiple blocks: after you call this function, if ScanFrom points at the beginning of the block, it's safe to continue scanning the predecessors.

Note that performing load CSE requires special care to make sure the metadata is set appropriately. In particular, aliasing metadata needs to be merged. (This doesn't matter for store-to-load forwarding because the only relevant load gets deleted.)

Parameters
LoadThe load we want to replace.
ScanBBThe basic block to scan.
[in,out]ScanFromThe location to start scanning from. When this function returns, it points at the last instruction scanned.
MaxInstsToScanThe maximum number of instructions to scan. If this is zero, the whole block will be scanned.
AAOptional pointer to alias analysis, to make the scan more precise.
[out]IsLoadCSEWhether the returned value is a load from the same location in memory, as opposed to the value operand of a store.
Returns
The found value, or nullptr if no value is found.

Definition at line 321 of file Loads.cpp.

References FindAvailablePtrLoadStore(), llvm::LoadInst::getPointerOperand(), llvm::Value::getType(), llvm::Instruction::isAtomic(), and llvm::LoadInst::isUnordered().

Referenced by isZero(), log2(), llvm::JumpThreadingPass::SimplifyPartiallyRedundantLoad(), and llvm::InstCombiner::visitLoadInst().

◆ FindAvailablePtrLoadStore()

Value * llvm::FindAvailablePtrLoadStore ( Value Ptr,
Type AccessTy,
bool  AtLeastAtomic,
BasicBlock ScanBB,
BasicBlock::iterator ScanFrom,
unsigned  MaxInstsToScan,
AliasAnalysis AA,
bool IsLoad,
unsigned NumScanedInst 
)

Scan backwards to see if we have the value of the given pointer available locally within a small number of instructions.

You can use this function to scan across multiple blocks: after you call this function, if ScanFrom points at the beginning of the block, it's safe to continue scanning the predecessors.

Parameters
PtrThe pointer we want the load and store to originate from.
AccessTyThe access type of the pointer.
AtLeastAtomicAre we looking for at-least an atomic load/store ? In case it is false, we can return an atomic or non-atomic load or store. In case it is true, we need to return an atomic load or store.
ScanBBThe basic block to scan.
[in,out]ScanFromThe location to start scanning from. When this function returns, it points at the last instruction scanned.
MaxInstsToScanThe maximum number of instructions to scan. If this is zero, the whole block will be scanned.
AAOptional pointer to alias analysis, to make the scan more precise.
[out]IsLoadWhether the returned value is a load from the same location in memory, as opposed to the value operand of a store.
Returns
The found value, or nullptr if no value is found.

Definition at line 336 of file Loads.cpp.

References AreEquivalentAddressValues(), llvm::BasicBlock::begin(), llvm::Module::getDataLayout(), llvm::AAResults::getModRefInfo(), llvm::BasicBlock::getModule(), llvm::DataLayout::getTypeStoreSize(), llvm::CastInst::isBitOrNoopPointerCastable(), isModSet(), llvm::Instruction::mayWriteToMemory(), llvm::LocationSize::precise(), SI, and llvm::Value::stripPointerCasts().

Referenced by FindAvailableLoadedValue(), and llvm::JumpThreadingPass::SimplifyPartiallyRedundantLoad().

◆ FindDbgAddrUses()

TinyPtrVector< DbgVariableIntrinsic * > llvm::FindDbgAddrUses ( Value V)

Finds all intrinsics declaring local variables as living in the memory that 'V' points to.

This may include a mix of dbg.declare and dbg.addr intrinsics.

Definition at line 1473 of file Local.cpp.

References llvm::Value::getContext(), llvm::MetadataAsValue::getIfExists(), llvm::LocalAsMetadata::getIfExists(), llvm::Value::isUsedByMetadata(), llvm::TinyPtrVector< EltTy >::push_back(), and llvm::Value::users().

Referenced by getKnownAlignment(), getTypePartition(), isAllocaPromotable(), replaceDbgDeclare(), and llvm::InstCombiner::visitAllocSite().

◆ findDbgUsers()

void llvm::findDbgUsers ( SmallVectorImpl< DbgVariableIntrinsic *> &  DbgInsts,
Value V 
)

◆ findDbgValues()

void llvm::findDbgValues ( SmallVectorImpl< DbgValueInst *> &  DbgValues,
Value V 
)

◆ findDefsUsedOutsideOfLoop()

SmallVector< Instruction *, 8 > llvm::findDefsUsedOutsideOfLoop ( Loop L)

Returns the instructions that use values defined in the loop.

Definition at line 114 of file LoopUtils.cpp.

References any_of(), llvm::LoopBase< BlockT, LoopT >::contains(), llvm::LoopBase< BlockT, LoopT >::getBlocks(), llvm::SmallVectorTemplateBase< T >::push_back(), and Users.

Referenced by llvm::LoopVersioning::versionLoop().

◆ findDevirtualizableCallsForTypeCheckedLoad()

void llvm::findDevirtualizableCallsForTypeCheckedLoad ( SmallVectorImpl< DevirtCallSite > &  DevirtCalls,
SmallVectorImpl< Instruction *> &  LoadedPtrs,
SmallVectorImpl< Instruction *> &  Preds,
bool HasNonCallUses,
const CallInst CI,
DominatorTree DT 
)

Given a call to the intrinsic @llvm.type.checked.load, find all devirtualizable call sites based on the call and return them in DevirtCalls.

Definition at line 98 of file TypeMetadataUtils.cpp.

References assert(), dyn_cast(), findCallsAtConstantOffset(), llvm::CallBase::getArgOperand(), llvm::CallBase::getCalledFunction(), llvm::Function::getIntrinsicID(), llvm::SmallVectorTemplateBase< T >::push_back(), llvm::Intrinsic::type_checked_load, and llvm::Value::uses().

Referenced by addIntrinsicToSummary(), and llvm::WholeProgramDevirtPass::run().

◆ findDevirtualizableCallsForTypeTest()

void llvm::findDevirtualizableCallsForTypeTest ( SmallVectorImpl< DevirtCallSite > &  DevirtCalls,
SmallVectorImpl< CallInst *> &  Assumes,
const CallInst CI,
DominatorTree DT 
)

◆ findFirstSet()

template<typename T >
T llvm::findFirstSet ( T  Val,
ZeroBehavior  ZB = ZB_Max 
)

Get the index of the first set bit starting from the least significant bit.

Only unsigned integral types are allowed.

Parameters
ZBthe behavior on an input of 0. Only ZB_Max and ZB_Undefined are valid arguments.

Definition at line 203 of file MathExtras.h.

References countTrailingZeros(), max(), ZB_Max, and ZB_Undefined.

Referenced by buildVector(), llvm::RISCVMatInt::generateInstSeq(), isShiftedUIntAtAnyPosition(), isStringOfOnes(), and partLSB().

◆ FindFunctionBackedges()

void llvm::FindFunctionBackedges ( const Function F,
SmallVectorImpl< std::pair< const BasicBlock *, const BasicBlock *> > &  Result 
)

Analyze the specified function to find all of the loop backedges in the function and return them.

FindFunctionBackedges - Analyze the specified function to find all of the loop backedges in the function and return them.

This is a relatively cheap (compared to computing dominators and loop info) analysis.

The output is added to Result, as pairs of <from,to> edge info.

Definition at line 27 of file CFG.cpp.

References llvm::SmallVectorTemplateCommon< T >::back(), llvm::SmallPtrSetImpl< PtrType >::count(), llvm::SmallVectorBase::empty(), llvm::SmallPtrSetImpl< PtrType >::erase(), llvm::Function::getEntryBlock(), I, llvm::SmallPtrSetImpl< PtrType >::insert(), llvm::SmallVectorImpl< T >::pop_back_val(), llvm::SmallVectorTemplateBase< T >::push_back(), succ_begin(), succ_empty(), and succ_end().

Referenced by llvm::JumpThreadingPass::FindLoopHeaders(), and iterativelySimplifyCFG().

◆ findIndirectCalls()

std::vector<Instruction *> llvm::findIndirectCalls ( Function F)
inline

◆ FindInsertedValue()

Value * llvm::FindInsertedValue ( Value V,
ArrayRef< unsigned idx_range,
Instruction InsertBefore = nullptr 
)

Given an aggregrate and an sequence of indices, see if the scalar value indexed is already around as a register, for example if it were inserted directly into the aggregrate.

Given an aggregate and a sequence of indices, see if the scalar value indexed is already around as a register, for example if it was inserted directly into the aggregate.

If InsertBefore is not null, this function will duplicate (modified) insertvalues when a part of a nested struct is extracted.

Definition at line 3282 of file ValueTracking.cpp.

References llvm::SmallVectorImpl< T >::append(), assert(), llvm::ArrayRef< T >::begin(), BuildSubAggregate(), C, llvm::ArrayRef< T >::empty(), llvm::ArrayRef< T >::end(), llvm::ExtractValueInst::getIndexedType(), llvm::Value::getType(), llvm::Type::isArrayTy(), llvm::Type::isStructTy(), makeArrayRef(), llvm::SmallVectorImpl< T >::reserve(), llvm::SmallVectorBase::size(), llvm::ArrayRef< T >::size(), size(), and llvm::ArrayRef< T >::slice().

Referenced by BuildSubAggregate(), isZero(), and PropagateConstantReturn().

◆ findLastSet()

template<typename T >
T llvm::findLastSet ( T  Val,
ZeroBehavior  ZB = ZB_Max 
)

Get the index of the last set bit starting from the least significant bit.

Only unsigned integral types are allowed.

Parameters
ZBthe behavior on an input of 0. Only ZB_Max and ZB_Undefined are valid arguments.

Definition at line 244 of file MathExtras.h.

References countLeadingZeros(), max(), ZB_Max, and ZB_Undefined.

Referenced by buildVector(), llvm::SystemZSelectionDAGInfo::EmitTargetCodeForMemset(), isShiftedUIntAtAnyPosition(), partMSB(), selectI64Imm(), and selectI64ImmInstrCount().

◆ findMaximalSubpartOfIllFormedUTF8Sequence()

static unsigned llvm::findMaximalSubpartOfIllFormedUTF8Sequence ( const UTF8 source,
const UTF8 sourceEnd 
)
static

Definition at line 424 of file ConvertUTF.cpp.

References assert(), and isLegalUTF8Sequence().

Referenced by ConvertUTF8toUTF32Impl().

◆ findOneNVVMAnnotation()

bool llvm::findOneNVVMAnnotation ( const GlobalValue gv,
const std::string &  prop,
unsigned retval 
)

◆ findOptionMDForLoop()

MDNode * llvm::findOptionMDForLoop ( const Loop TheLoop,
StringRef  Name 
)

Find string metadata for a loop.

Returns the MDNode where the first operand is the metadata's name. The following operands are the metadata's values. If no metadata with Name is found, return nullptr.

Definition at line 756 of file LoopInfo.cpp.

References findOptionMDForLoopID(), llvm::Loop::getLoopID(), and Name.

Referenced by findStringMetadataForLoop(), getOptionalBoolLoopAttribute(), llvm::Loop::isAnnotatedParallel(), and llvm::LoopInfoWrapperPass::releaseMemory().

◆ findOptionMDForLoopID()

MDNode * llvm::findOptionMDForLoopID ( MDNode LoopID,
StringRef  Name 
)

Find and return the loop attribute node for the attribute Name in LoopID.

Return nullptr if there is no such attribute.

Definition at line 730 of file LoopInfo.cpp.

References assert(), dyn_cast(), llvm::StringRef::equals(), llvm::MDNode::getNumOperands(), llvm::MDNode::getOperand(), and llvm::MDString::getString().

Referenced by findOptionMDForLoop(), makeFollowupLoopID(), and llvm::LoopInfoWrapperPass::releaseMemory().

◆ findPHICopyInsertPoint()

MachineBasicBlock::iterator llvm::findPHICopyInsertPoint ( MachineBasicBlock MBB,
MachineBasicBlock SuccMBB,
unsigned  SrcReg 
)

◆ findScalarElement()

Value * llvm::findScalarElement ( Value V,
unsigned  EltNo 
)

Given a vector and an element number, see if the scalar value is already around as a register, for example if it were inserted then extracted from the vector.

Definition at line 253 of file VectorUtils.cpp.

References assert(), C, llvm::UndefValue::get(), llvm::Constant::getAggregateElement(), llvm::SequentialType::getNumElements(), llvm::Value::getType(), llvm::Type::getVectorNumElements(), llvm::Type::isVectorTy(), llvm::PatternMatch::m_Add(), llvm::PatternMatch::m_Constant(), llvm::PatternMatch::m_Value(), and llvm::PatternMatch::match().

Referenced by foldBitcastExtElt(), and SimplifyExtractElementInst().

◆ findStringMetadataForLoop()

Optional< const MDOperand * > llvm::findStringMetadataForLoop ( const Loop TheLoop,
StringRef  Name 
)

Find string metadata for loop.

If it has a value (e.g. {"llvm.distribute", 1} return the value as an operand or null otherwise. If the string metadata is not found return Optional's not-a-value.

Definition at line 195 of file LoopUtils.cpp.

References findOptionMDForLoop(), llvm::MDNode::getNumOperands(), llvm::MDNode::getOperand(), llvm_unreachable, and None.

Referenced by getOptionalIntLoopAttribute().

◆ fixStackStores()

static void llvm::fixStackStores ( MachineBasicBlock MBB,
MachineBasicBlock::iterator  MI,
const TargetInstrInfo TII,
bool  insertPushes 
)
static

◆ FixupKind()

static Lanai::Fixups llvm::FixupKind ( const MCExpr Expr)
static

◆ FlattenCFG()

bool llvm::FlattenCFG ( BasicBlock BB,
AliasAnalysis AA = nullptr 
)

This function is used to flatten a CFG.

FlattenCFG - This function is used to flatten a CFG.

For example, it uses parallel-and and parallel-or mode to collapse if-conditions and merge if-regions with identical statements.

Definition at line 490 of file FlattenCFG.cpp.

Referenced by iterativelyFlattenCFG(), and llvm::SimplifyCFGOptions::setAssumptionCache().

◆ FloatToBits()

uint32_t llvm::FloatToBits ( float  Float)
inline

This function takes a float and returns the bit equivalent 32-bit integer.

Note that copying floats around changes the bits of NaNs on some hosts, notably x86, so this routine cannot be used if these bits are needed.

Definition at line 601 of file MathExtras.h.

References llvm::tgtok::Bits, and llvm::Intrinsic::memcpy.

Referenced by llvm::APInt::floatToBits(), llvm::PPC::get_VSPLTI_elt(), getInlineImmVal32(), getLit32Encoding(), llvm::AMDGPU::isInlinableLiteral32(), nextReg(), llvm::AMDGPUInstPrinter::printRegOperand(), and llvm::support::endian::write< float >().

◆ fmt_align()

template<typename T >
detail::AlignAdapter<T> llvm::fmt_align ( T &&  Item,
AlignStyle  Where,
size_t  Amount,
char  Fill = ' ' 
)

Definition at line 86 of file FormatAdapters.h.

References llvm::FormatAdapter< T >::Item.

◆ fmt_consume()

detail::ErrorAdapter llvm::fmt_consume ( Error &&  Item)
inline

Definition at line 104 of file FormatAdapters.h.

References llvm::FormatAdapter< T >::Item.

◆ fmt_pad()

template<typename T >
detail::PadAdapter<T> llvm::fmt_pad ( T &&  Item,
size_t  Left,
size_t  Right 
)

Definition at line 92 of file FormatAdapters.h.

References llvm::FormatAdapter< T >::Item.

◆ fmt_repeat()

template<typename T >
detail::RepeatAdapter<T> llvm::fmt_repeat ( T &&  Item,
size_t  Count 
)

Definition at line 97 of file FormatAdapters.h.

References llvm::FormatAdapter< T >::Item.

◆ foldBlockIntoPredecessor()

BasicBlock * llvm::foldBlockIntoPredecessor ( BasicBlock BB,
LoopInfo LI,
ScalarEvolution SE,
DominatorTree DT 
)

◆ FoldBranchToCommonDest()

bool llvm::FoldBranchToCommonDest ( BranchInst BI,
unsigned  BonusInstThreshold = 1 
)

If this basic block is ONLY a setcc and a branch, and if a predecessor branches to us and one of our successors, fold the setcc into the predecessor and use logical operations to pick the right destination.

If this basic block is simple enough, and if a predecessor branches to us and one of our successors, fold the block into the predecessor and use logical operations to pick the right destination.

Definition at line 2542 of file SimplifyCFG.cpp.

References AddPredecessorToBlock(), assert(), llvm::SmallVectorTemplateCommon< T, typename >::begin(), llvm::BasicBlock::begin(), llvm::Instruction::clone(), llvm::BranchInst::Create(), llvm::IRBuilder< T, Inserter >::CreateBinOp(), llvm::IRBuilder< T, Inserter >::CreateNot(), dbgs(), llvm::Instruction::dropUnknownNonDebugMetadata(), dyn_cast(), E, llvm::SmallVectorTemplateCommon< T, typename >::end(), EraseTerminatorAndDCECond(), extractPredSuccWeights(), FitWeights(), llvm::BranchInst::getCondition(), llvm::BasicBlock::getInstList(), llvm::CmpInst::getInversePredicate(), llvm::ilist_node_impl< OptionsT >::getIterator(), llvm::Instruction::getMetadata(), llvm::Value::getName(), llvm::User::getOperand(), llvm::Instruction::getParent(), llvm::BasicBlock::getSinglePredecessor(), llvm::BranchInst::getSuccessor(), llvm::BasicBlock::getTerminator(), llvm::ConstantInt::getType(), llvm::Value::hasOneUse(), I, llvm::iplist_impl< IntrusiveListT, TraitsT >::insert(), llvm::Instruction::insertBefore(), llvm::BasicBlock::instructionsWithoutDebug(), llvm::BranchInst::isConditional(), llvm::Type::isIntegerTy(), llvm::ConstantInt::isOne(), isProfitableToFoldUnconditional(), isSafeToSpeculativelyExecute(), llvm::BranchInst::isUnconditional(), LLVM_DEBUG, llvm::LLVMContext::MD_loop, llvm::LLVMContext::MD_prof, pred_begin(), pred_end(), pred_size(), llvm::SmallVectorTemplateBase< T, bool >::push_back(), RemapInstruction(), RF_IgnoreMissingLocals, RF_NoModuleLevelChanges, SafeToMergeTerminators(), setBranchWeights(), llvm::BranchInst::setCondition(), llvm::Instruction::setMetadata(), llvm::Value::setName(), llvm::CmpInst::setPredicate(), llvm::BranchInst::setSuccessor(), llvm::SmallVectorBase::size(), llvm::BranchInst::swapSuccessors(), llvm::Value::takeName(), tryCSEWithPredecessor(), and llvm::Instruction::user_back().

Referenced by allPredecessorsComeFromSameSource(), llvm::SimplifyCFGOptions::setAssumptionCache(), simplifyOneLoop(), and TryToMergeLandingPad().

◆ foldFrameOffset()

static void llvm::foldFrameOffset ( MachineBasicBlock::iterator II,
int &  Offset,
unsigned  DstReg 
)
static

◆ FoldReturnIntoUncondBranch()

ReturnInst * llvm::FoldReturnIntoUncondBranch ( ReturnInst RI,
BasicBlock BB,
BasicBlock Pred,
DomTreeUpdater DTU = nullptr 
)

This method duplicates the specified return instruction into a predecessor which ends in an unconditional branch.

If the return instruction returns a value defined by a PHI, propagate the right value into the return. It returns the new return instruction in the predecessor.

Definition at line 676 of file BasicBlockUtils.cpp.

References llvm::Instruction::clone(), llvm::DomTreeUpdater::deleteEdge(), llvm::Instruction::eraseFromParent(), llvm::BasicBlock::getInstList(), llvm::ilist_node_impl< OptionsT >::getIterator(), llvm::BasicBlock::getTerminator(), llvm::iplist_impl< IntrusiveListT, TraitsT >::insert(), llvm::User::op_begin(), llvm::User::op_end(), llvm::iplist_impl< IntrusiveListT, TraitsT >::push_back(), llvm::BasicBlock::removePredecessor(), and llvm::User::setOperand().

Referenced by despeculateCountZeros(), foldReturnAndProcessPred(), mergeCleanupPad(), and SplitCriticalEdge().

◆ FoldSingleEntryPHINodes()

void llvm::FoldSingleEntryPHINodes ( BasicBlock BB,
MemoryDependenceResults MemDep = nullptr 
)

We know that BB has one predecessor.

If there are any single-entry PHI nodes in it, fold them away. This handles the case when all entries to the PHI nodes in a block are guaranteed equal, such as when the block has exactly one predecessor.

Definition at line 105 of file BasicBlockUtils.cpp.

References llvm::BasicBlock::begin(), llvm::UndefValue::get(), and llvm::MemoryDependenceResults::removeInstruction().

Referenced by foldBlockIntoPredecessor(), FoldCondBranchOnPHI(), MergeBlockIntoPredecessor(), normalizeForInvokeSafepoint(), llvm::RewriteStatepointsForGC::runOnFunction(), and shouldRotateLoopExitingLatch().

◆ for_each()

template<typename R , typename UnaryPredicate >
UnaryPredicate llvm::for_each ( R &&  Range,
UnaryPredicate  P 
)

◆ ForceBottomUp()

cl::opt<bool> llvm::ForceBottomUp ( "misched-bottomup"  ,
cl::Hidden  ,
cl::desc("Force bottom-up list scheduling")   
)

◆ forcePrintModuleIR()

bool llvm::forcePrintModuleIR ( )

◆ ForceTopDown()

cl::opt<bool> llvm::ForceTopDown ( "misched-topdown"  ,
cl::Hidden  ,
cl::desc("Force top-down list scheduling")   
)

◆ format()

template<typename... Ts>
format_object<Ts...> llvm::format ( const char Fmt,
const Ts &...  Vals 
)
inline

These are helper functions used to produce formatted output.

They use template type deduction to construct the appropriate instance of the format_object class to simplify their construction.

This is typically used like:

OS << format("%0.4f", myfloat) << '\n';

Definition at line 124 of file Format.h.

References llvm::format_object_base::Fmt.

Referenced by llvm::RuntimeDyldImpl::applyExternalSymbolRelocations(), applyPPChighesta(), branchDiv(), branchMaxOffsets(), llvm::orc::remote::OrcRemoteTargetClient::callIntVoid(), llvm::orc::remote::OrcRemoteTargetClient::callMain(), llvm::orc::remote::OrcRemoteTargetClient::callVoidVoid(), llvm::TimerGroup::clearAll(), CompareMBBNumbers(), createSchedInfoStr(), createStringError(), dbgprintf(), llvm::MD5::MD5Result::digest(), llvm::DWARFCompileUnit::dump(), llvm::RangeListEntry::dump(), llvm::DWARFTypeUnit::dump(), llvm::DWARFDebugLoc::LocationList::dump(), llvm::DWARFDebugArangeSet::Descriptor::dump(), llvm::DWARFAddressRange::dump(), llvm::DWARFDebugArangeSet::dump(), llvm::DWARFDebugLoc::dump(), llvm::DWARFDebugAddrTable::dump(), llvm::DWARFDebugAbbrev::dump(), llvm::DWARFDebugRangeList::dump(), llvm::DWARFDebugPubTable::dump(), llvm::DWARFFormValue::dump(), llvm::DWARFDebugLoclists::LocationList::dump(), llvm::DWARFUnitIndex::dump(), llvm::DWARFDebugLoclists::dump(), llvm::DWARFListTableHeader::dump(), llvm::DWARFContext::dump(), llvm::DWARFDebugLine::Prologue::dump(), llvm::DWARFDie::dump(), llvm::DWARFDebugLine::Row::dump(), llvm::dwarf::CIE::dump(), llvm::dwarf::FDE::dump(), llvm::orc::JITDylib::dump(), llvm::DWARFFormValue::dumpAddressSection(), dumpApplePropertyAttribute(), dumpAttribute(), dumpDWARFv5StringOffsetsSection(), llvm::RuntimeDyldMachO::dumpRelocationToResolve(), llvm::DWARFFormValue::dumpSectionedAddress(), dumpSectionMemory(), dumpStringOffsetsSection(), llvm::DIEAbbrev::Emit(), llvm::AppleAccelTableStaticTypeData::emit(), llvm::RuntimeDyldImpl::emitCommonSymbols(), emitGlobalConstantDataSequential(), emitGlobalConstantImpl(), llvm::RuntimeDyldImpl::emitSection(), llvm::RuntimeDyldCheckerExprEval::evaluate(), llvm::orc::JITCompileCallbackManager::executeCompileCallback(), llvm::detail::provider_format_adapter< T >::format(), llvm::format_provider< std::chrono::duration< Rep, Period > >::format(), llvm::format_provider< Twine >::format(), llvm::format_provider< T, typename std::enable_if< detail::use_char_formatter< T >::value >::type >::format(), llvm::format_provider< Enum, typename std::enable_if< dwarf::EnumTraits< Enum >::value >::type >::format(), llvm::MCInstPrinter::formatDec(), llvm::MCInstPrinter::formatHex(), getCOFFStaticStructorSection(), llvm::DWARFUnit::getCompilationDir(), llvm::BFIDOTGraphTraitsBase< BlockFrequencyInfoT, BranchProbabilityInfoT >::getEdgeAttributes(), getFixupKindLog2Size(), getFixupOffset(), llvm::DWARFDebugNames::NameIndex::getHashArrayEntry(), getSizeForEncoding(), getStaticStructorSection(), getUnconditionalBrDisp(), llvm::DWARFVerifier::handleDebugInfo(), llvm::DWARFVerifier::handleDebugLine(), Help(), llvm::RuntimeDyldELF::loadObject(), llvm::object::MachORebaseEntry::moveNext(), llvm::object::MachOBindEntry::moveNext(), llvm::object::operator<<(), operator<<(), llvm::orc::operator<<(), llvm::dwarf::CFIProgram::parse(), llvm::DWARFDebugLine::LineTable::parse(), prettyPrintRegisterOp(), llvm::ILPValue::print(), llvm::TimeRecord::print(), llvm::BranchProbability::print(), llvm::DWARFExpression::Operation::print(), llvm::DIEAbbrev::print(), llvm::DWARFExpression::print(), llvm::AccelTableBase::HashData::print(), llvm::MIPrinter::print(), llvm::DIEEntry::print(), llvm::AppleAccelTableStaticTypeData::print(), llvm::FileInfo::print(), llvm::MachineBasicBlock::print(), llvm::DIE::print(), llvm::FileInfo::printBlockInfo(), llvm::FileInfo::printBranchInfo(), llvm::HexagonInstPrinter::printBrtarget(), printCFI(), PrintCFIEscape(), llvm::FileInfo::printCoverage(), llvm::AArch64InstPrinter::printFPImmOperand(), llvm::AArch64InstPrinter::printImmHex(), PrintLaneMask(), llvm::X86ATTInstPrinter::printOperand(), PrintQuotedString(), printRestOfMemberHeader(), llvm::AArch64InstPrinter::printSIMDType10Operand(), PrintStatistics(), llvm::FileInfo::printUncondBranchInfo(), printVal(), pushDepHeight(), llvm::AppleAcceleratorTable::readAtoms(), llvm::RuntimeDyldImpl::reassignSectionAddress(), ReportError(), llvm::orc::remote::OrcRemoteTargetClient::RemoteRTDyldMemoryManager::reserveAllocationSpace(), llvm::RuntimeDyldImpl::resolveLocalRelocations(), llvm::RuntimeDyldELFMips::resolveMIPSO32Relocation(), llvm::RuntimeDyldELFMips::resolveRelocation(), llvm::RuntimeDyldCOFFI386::resolveRelocation(), llvm::RuntimeDyldCOFFThumb::resolveRelocation(), llvm::AArch64ExternalSymbolizer::tryAddingSymbolicOperand(), write_double(), llvm::raw_ostream::write_uuid(), llvm::detail::format_adapter::~format_adapter(), and llvm::TimerGroup::~TimerGroup().

◆ format_bytes()

FormattedBytes llvm::format_bytes ( ArrayRef< uint8_t >  Bytes,
Optional< uint64_t >  FirstByteOffset = None,
uint32_t  NumPerLine = 16,
uint8_t  ByteGroupSize = 4,
uint32_t  IndentLevel = 0,
bool  Upper = false 
)
inline

Definition at line 239 of file Format.h.

References Upper.

Referenced by to_hexString().

◆ format_bytes_with_ascii()

FormattedBytes llvm::format_bytes_with_ascii ( ArrayRef< uint8_t >  Bytes,
Optional< uint64_t >  FirstByteOffset = None,
uint32_t  NumPerLine = 16,
uint8_t  ByteGroupSize = 4,
uint32_t  IndentLevel = 0,
bool  Upper = false 
)
inline

Definition at line 247 of file Format.h.

References Upper.

Referenced by to_hexString().

◆ format_decimal()

FormattedNumber llvm::format_decimal ( int64_t  N,
unsigned  Width 
)
inline

format_decimal - Output N as a right justified, fixed-width decimal.

If number will not fit in width, full number is still printed. Examples: OS << format_decimal(0, 5) => " 0" OS << format_decimal(255, 5) => " 255" OS << format_decimal(-1, 3) => " -1" OS << format_decimal(12345, 3) => "12345"

Definition at line 211 of file Format.h.

◆ format_hex()

FormattedNumber llvm::format_hex ( uint64_t  N,
unsigned  Width,
bool  Upper = false 
)
inline

format_hex - Output N as a fixed width hexadecimal.

If number will not fit in width, full number is still printed. Examples: OS << format_hex(255, 4) => 0xff OS << format_hex(255, 4, true) => 0xFF OS << format_hex(255, 6) => 0x00ff OS << format_hex(255, 2) => 0xff

Definition at line 186 of file Format.h.

References assert(), and Upper.

Referenced by llvm::mca::ResourceState::dump(), ErrorFromHResult(), format_ptr(), llvm::object::MachOObjectFile::getBuildPlatform(), llvm::object::MachOObjectFile::getBuildTool(), llvm::HexagonTargetLowering::getTargetNodeName(), llvm::mca::initializeUsedResources(), makeCombineInst(), operator<<(), printSymbolizedStackTrace(), and WriteConstantInternal().

◆ format_hex_no_prefix()

FormattedNumber llvm::format_hex_no_prefix ( uint64_t  N,
unsigned  Width,
bool  Upper = false 
)
inline

format_hex_no_prefix - Output N as a fixed width hexadecimal.

Does not prepend '0x' to the outputted string. If number will not fit in width, full number is still printed. Examples: OS << format_hex_no_prefix(255, 2) => ff OS << format_hex_no_prefix(255, 2, true) => FF OS << format_hex_no_prefix(255, 4) => 00ff OS << format_hex_no_prefix(255, 1) => ff

Definition at line 199 of file Format.h.

References assert(), and Upper.

Referenced by llvm::pdb::IPDBSourceFile::dump(), getOpenCLAlignment(), llvm::NVPTXFloatMCExpr::printImpl(), to_hexString(), and WriteConstantInternal().

◆ formatv()

template<typename... Ts>
auto llvm::formatv ( const char Fmt,
Ts &&...  Vals 
) -> formatv_object<decltype( std::make_tuple(detail::build_format_adapter(std::forward<Ts>(Vals))...))>
inline

◆ formDedicatedExitBlocks()

bool llvm::formDedicatedExitBlocks ( Loop L,
DominatorTree DT,
LoopInfo LI,
bool  PreserveLCSSA 
)

Ensure that all exit blocks of the loop are dedicated exits.

For any loop exit block with non-loop predecessors, we split the loop predecessors to use a dedicated loop exit block. We update the dominator tree and loop info if provided, and will preserve LCSSA if requested.

Definition at line 49 of file LoopUtils.cpp.

References assert(), llvm::LoopBase< BlockT, LoopT >::blocks(), llvm::SmallVectorImpl< T >::clear(), llvm::LoopBase< BlockT, LoopT >::contains(), dbgs(), llvm::SmallVectorBase::empty(), llvm::SmallPtrSetImpl< PtrType >::insert(), LLVM_DEBUG, make_scope_exit(), predecessors(), llvm::SmallVectorTemplateBase< T >::push_back(), SplitBlockPredecessors(), and successors().

Referenced by hoistLoopToNewParent(), separateNestedLoop(), simplifyOneLoop(), UnrollRuntimeLoopRemainder(), and unswitchNontrivialInvariants().

◆ formLCSSA()

bool llvm::formLCSSA ( Loop L,
DominatorTree DT,
LoopInfo LI,
ScalarEvolution SE 
)

Put loop into LCSSA form.

Looks at all instructions in the loop which have uses outside of the current loop. For each, an LCSSA PHI node is inserted and the uses outside the loop are rewritten to use this node.

LoopInfo and DominatorTree are required and preserved.

If ScalarEvolution is passed in, it will be preserved.

Returns true if any modifications are made to the loop.

Definition at line 305 of file LCSSA.cpp.

References assert(), computeBlocksDominatingExits(), llvm::SmallVectorBase::empty(), llvm::ScalarEvolution::forgetLoop(), formLCSSAForInstructions(), llvm::LoopBase< BlockT, LoopT >::getExitBlocks(), I, llvm::Loop::isLCSSAForm(), and llvm::SmallVectorTemplateBase< T >::push_back().

Referenced by formLCSSARecursively(), hoistLoopToNewParent(), separateNestedLoop(), and unswitchNontrivialInvariants().

◆ formLCSSAForInstructions()

bool llvm::formLCSSAForInstructions ( SmallVectorImpl< Instruction *> &  Worklist,
DominatorTree DT,
LoopInfo LI 
)

Ensures LCSSA form for every instruction from the Worklist in the scope of innermost containing loop.

For every instruction from the worklist, check to see if it has any uses that are outside the current loop.

For the given instruction which have uses outside of the loop, an LCSSA PHI node is inserted and the uses outside the loop are rewritten to use this node.

LoopInfo and DominatorTree are required and, since the routine makes no changes to CFG, preserved.

Returns true if any modifications are made.

If so, insert LCSSA PHI nodes and rewrite the uses.

Definition at line 75 of file LCSSA.cpp.

References llvm::SSAUpdater::AddAvailableValue(), llvm::PHINode::addIncoming(), assert(), llvm::SmallVectorImpl< T >::clear(), llvm::DenseMapBase< SmallDenseMap< KeyT, ValueT, InlineBuckets, KeyInfoT, BucketT >, KeyT, ValueT, KeyInfoT, BucketT >::count(), llvm::PHINode::Create(), llvm::DominatorTree::dominates(), llvm::SmallVectorBase::empty(), findDbgValues(), llvm::SSAUpdater::FindValueForBlock(), llvm::StringRef::front(), llvm::PredIteratorCache::get(), llvm::MetadataAsValue::get(), llvm::ValueAsMetadata::get(), llvm::Value::getContext(), llvm::Instruction::getDebugLoc(), llvm::LoopBase< BlockT, LoopT >::getExitBlocks(), llvm::LoopInfoBase< BlockT, LoopT >::getLoopFor(), llvm::Value::getName(), llvm::DominatorTreeBase< NodeT, IsPostDom >::getNode(), llvm::PHINode::getNumIncomingValues(), llvm::PHINode::getOperandNumForIncomingValue(), llvm::User::getOperandUse(), llvm::Instruction::getParent(), llvm::BasicBlock::getParent(), llvm::Value::getType(), llvm::SSAUpdater::HasValueForBlock(), I, llvm::SSAUpdater::Initialize(), llvm::SetVector< T, SmallVector< T, N >, SmallDenseSet< T, N > >::insert(), insertDebugValuesForPHIs(), isExitBlock(), llvm::Type::isTokenTy(), llvm::SmallVectorImpl< T >::pop_back_val(), llvm::SmallVectorTemplateBase< T >::push_back(), llvm::SSAUpdater::RewriteUse(), llvm::Instruction::setDebugLoc(), llvm::User::setOperand(), llvm::PredIteratorCache::size(), llvm::Value::uses(), and llvm::ValueHandleBase::ValueIsRAUWd().

Referenced by formLCSSA().

◆ formLCSSARecursively()

bool llvm::formLCSSARecursively ( Loop L,
DominatorTree DT,
LoopInfo LI,
ScalarEvolution SE 
)

Put a loop nest into LCSSA form.

Process a loop nest depth first.

This recursively forms LCSSA for a loop nest.

LoopInfo and DominatorTree are required and preserved.

If ScalarEvolution is passed in, it will be preserved.

Returns true if any modifications are made to the loop.

Definition at line 360 of file LCSSA.cpp.

References formLCSSA(), and llvm::LoopBase< BlockT, LoopT >::getSubLoops().

Referenced by createLICMPass(), formLCSSAOnAllLoops(), llvm::LoopUnrollPass::run(), llvm::LoopVectorizePass::runImpl(), and UnrollLoop().

◆ fouts()

formatted_raw_ostream & llvm::fouts ( )

fouts() - This returns a reference to a formatted_raw_ostream for standard output.

Use it like: fouts() << "foo" << "bar";

Definition at line 91 of file FormattedStream.cpp.

References outs().

Referenced by llvm::formatted_raw_ostream::is_displayed().

◆ frexp()

APFloat llvm::frexp ( const APFloat X,
int &  Exp,
APFloat::roundingMode  RM 
)
inline

Equivalent of C standard library function.

While the C standard says Exp is an unspecified value for infinity and nan, this returns INT_MAX for infinities, and INT_MIN for NaNs.

Definition at line 1205 of file APFloat.h.

References llvm::lltok::APFloat, llvm::APFloat::getSemantics(), and llvm_unreachable.

Referenced by llvm::detail::DoubleAPFloat::getSecond(), llvm::detail::IEEEFloat::isNegZero(), and llvm::InstCombiner::visitCallInst().

◆ fromHex()

std::string llvm::fromHex ( StringRef  Input)
inline

Convert hexadecimal string Input to its binary representation.

The return string is half the size of Input.

Definition at line 171 of file StringExtras.h.

References assert(), llvm::StringRef::drop_front(), llvm::StringRef::empty(), llvm::StringRef::front(), hexFromNibbles(), and llvm::StringRef::size().

Referenced by llvm::CodeViewDebug::CodeViewDebug(), llvm::DwarfUnit::getMD5AsBytes(), and parseHexOcta().

◆ gatherImportedSummariesForModule()

void llvm::gatherImportedSummariesForModule ( StringRef  ModulePath,
const StringMap< GVSummaryMapTy > &  ModuleToDefinedGVSummaries,
const FunctionImporter::ImportMapTy ImportList,
std::map< std::string, GVSummaryMapTy > &  ModuleToSummariesForIndex 
)

Compute the set of summaries needed for a ThinLTO backend compilation of ModulePath.

This includes summaries from that module (in case any global summary based optimizations were recorded) and from any definitions in other modules that should be imported. ModuleToSummariesForIndex will be populated with the needed summaries from each required module path. Use a std::map instead of StringMap to get stable order for bitcode emission.

Definition at line 863 of file FunctionImport.cpp.

References assert(), llvm::SIInstrFlags::DS, and llvm::StringMap< ValueTy, AllocatorTy >::lookup().

Referenced by llvm::ThinLTOCodeGenerator::emitImports(), llvm::ThinLTOCodeGenerator::gatherImportedSummariesForModule(), llvm::lto::getThinLTOOutputFile(), and llvm::ThinLTOCodeGenerator::setCodeGenOnly().

◆ gatherUnrollingPreferences()

TargetTransformInfo::UnrollingPreferences llvm::gatherUnrollingPreferences ( Loop L,
ScalarEvolution SE,
const TargetTransformInfo TTI,
int  OptLevel,
Optional< unsigned UserThreshold,
Optional< unsigned UserCount,
Optional< bool UserAllowPartial,
Optional< bool UserRuntime,
Optional< bool UserUpperBound,
Optional< bool UserAllowPeeling 
)

Gather the various unrolling parameters based on the defaults, compiler flags, TTI overrides and user specified parameters.

Definition at line 168 of file LoopUnrollPass.cpp.

References llvm::TargetTransformInfo::UnrollingPreferences::AllowExpensiveTripCount, llvm::TargetTransformInfo::UnrollingPreferences::AllowPeeling, llvm::TargetTransformInfo::UnrollingPreferences::AllowRemainder, llvm::TargetTransformInfo::UnrollingPreferences::BEInsns, llvm::TargetTransformInfo::UnrollingPreferences::Count, llvm::TargetTransformInfo::UnrollingPreferences::DefaultUnrollRuntimeCount, llvm::TargetTransformInfo::UnrollingPreferences::Force, llvm::TargetTransformInfo::UnrollingPreferences::FullUnrollMaxCount, llvm::LoopBase< BlockT, LoopT >::getHeader(), llvm::BasicBlock::getParent(), llvm::TargetTransformInfo::getUnrollingPreferences(), llvm::Optional< T >::hasValue(), I, if(), isEqual(), max(), llvm::TargetTransformInfo::UnrollingPreferences::MaxCount, llvm::TargetTransformInfo::UnrollingPreferences::MaxPercentThresholdBoost, llvm::Function::optForSize(), llvm::TargetTransformInfo::UnrollingPreferences::OptSizeThreshold, llvm::TargetTransformInfo::UnrollingPreferences::Partial, llvm::TargetTransformInfo::UnrollingPreferences::PartialOptSizeThreshold, llvm::TargetTransformInfo::UnrollingPreferences::PartialThreshold, llvm::TargetTransformInfo::UnrollingPreferences::PeelCount, llvm::TargetTransformInfo::UnrollingPreferences::Runtime, llvm::TargetTransformInfo::UnrollingPreferences::Threshold, UnrollAllowPartial, UnrollAllowPeeling, UnrollAllowRemainder, llvm::TargetTransformInfo::UnrollingPreferences::UnrollAndJam, llvm::TargetTransformInfo::UnrollingPreferences::UnrollAndJamInnerLoopThreshold, UnrollFullMaxCount, UnrollMaxCount, UnrollMaxPercentThresholdBoost, UnrollMaxUpperBound, UnrollPartialThreshold, UnrollPeelCount, llvm::TargetTransformInfo::UnrollingPreferences::UnrollRemainder, UnrollRuntime, UnrollThreshold, UnrollUnrollRemainder, and llvm::TargetTransformInfo::UnrollingPreferences::UpperBound.

Referenced by tryToUnrollAndJamLoop(), and tryToUnrollLoop().

◆ gep_type_begin() [1/3]

gep_type_iterator llvm::gep_type_begin ( const User GEP)
inline

◆ gep_type_begin() [2/3]

gep_type_iterator llvm::gep_type_begin ( const User GEP)
inline

◆ gep_type_begin() [3/3]

template<typename T >
generic_gep_type_iterator<const T *> llvm::gep_type_begin ( Type Op0,
ArrayRef< T A 
)
inline

◆ gep_type_end() [1/3]

gep_type_iterator llvm::gep_type_end ( const User GEP)
inline

◆ gep_type_end() [2/3]

gep_type_iterator llvm::gep_type_end ( const User GEP)
inline

◆ gep_type_end() [3/3]

template<typename T >
generic_gep_type_iterator<const T *> llvm::gep_type_end ( Type ,
ArrayRef< T A 
)
inline

◆ get_hashable_data()

static const Metadata* llvm::get_hashable_data ( const MDOperand X)
static

Make MDOperand transparent for hashing.

This overload of an implementation detail of the hashing library makes MDOperand hash to the same value as a Metadata pointer.

Note that overloading hash_value() as follows:

size_t hash_value(const MDOperand &X) { return hash_value(X.get()); }

does not cause MDOperand to be transparent. In particular, a bare pointer doesn't get hashed before it's combined, whereas MDOperand would.

Definition at line 179 of file LLVMContextImpl.cpp.

References llvm::MDOperand::get().

Referenced by llvm::hashing::detail::hash_combine_recursive_helper::combine(), and llvm::hashing::detail::hash_combine_range_impl().

◆ get_max_thread_name_length()

uint32_t llvm::get_max_thread_name_length ( )

Get the maximum length of a thread name on this platform.

A value of 0 means there is no limit.

Referenced by call_once(), and llvm_is_multithreaded().

◆ get_thread_name()

void llvm::get_thread_name ( SmallVectorImpl< char > &  Name)

Get the name of the current thread.

The level of support for getting a thread's name varies wildly across operating systems, and it is not even guaranteed that if you can successfully set a thread's name that you can later get it back. This function is intended for diagnostic purposes, and as with setting a thread's name no indication of whether the operation succeeded or failed is returned.

Referenced by call_once(), and llvm_is_multithreaded().

◆ get_threadid()

uint64_t llvm::get_threadid ( )

Return the current thread id, as used in various OS system calls.

Note that not all platforms guarantee that the value returned will be unique across the entire system, so portable code should not assume this.

Referenced by call_once(), and llvm_is_multithreaded().

◆ getAAResultsAnalysisUsage()

void llvm::getAAResultsAnalysisUsage ( AnalysisUsage AU)

A helper for the legacy pass manager to populate AU to add uses to make sure the analyses required by createLegacyPMAAResults are available.

Definition at line 808 of file AliasAnalysis.cpp.

References llvm::AnalysisUsage::addRequired(), and llvm::AnalysisUsage::addUsedIfAvailable().

Referenced by llvm::LegacyInlinerBase::getAnalysisUsage(), llvm::ExternalAAWrapperPass::getAnalysisUsage(), llvm::ArgumentPromotionPass::run(), and llvm::PostOrderFunctionAttrsPass::run().

◆ getAddressFromInstr()

static X86AddressMode llvm::getAddressFromInstr ( const MachineInstr MI,
unsigned  Operand 
)
inlinestatic

◆ getAlign() [1/2]

bool llvm::getAlign ( const Function F,
unsigned  index,
unsigned align 
)

◆ getAlign() [2/2]

bool llvm::getAlign ( const CallInst I,
unsigned  index,
unsigned align 
)

Definition at line 298 of file NVPTXUtilities.cpp.

References llvm::Instruction::getMetadata().

◆ getAPFloatFromSize()

APFloat llvm::getAPFloatFromSize ( double  Val,
unsigned  Size 
)

Returns an APFloat from Val converted to the appropriate size.

Definition at line 225 of file Utils.cpp.

References llvm::lltok::APFloat, llvm::APFloat::convert(), llvm::APFloatBase::IEEEhalf(), llvm_unreachable, and llvm::APFloatBase::rmNearestTiesToEven.

Referenced by llvm::MachineIRBuilder::buildFConstant().

◆ getArgumentAliasingToReturnedPointer() [1/2]

const Value * llvm::getArgumentAliasingToReturnedPointer ( const CallBase Call)

This function returns call pointer argument that is considered the same by aliasing rules.

You CAN'T use it to replace one value with another.

Definition at line 3627 of file ValueTracking.cpp.

References assert(), llvm::CallBase::getArgOperand(), llvm::CallBase::getReturnedArgOperand(), and isIntrinsicReturningPointerAliasingArgumentWithoutCapturing().

Referenced by getArgumentAliasingToReturnedPointer(), getMaxPointerSize(), GetUnderlyingObject(), isDereferenceableAndAlignedPointer(), isKnownNonZero(), and llvm::ConstantDataArraySlice::operator[]().

◆ getArgumentAliasingToReturnedPointer() [2/2]

Value* llvm::getArgumentAliasingToReturnedPointer ( CallBase Call)
inline

◆ getAsSignedInteger()

bool llvm::getAsSignedInteger ( StringRef  Str,
unsigned  Radix,
long long &  Result 
)

Definition at line 499 of file StringRef.cpp.

References consumeSignedInteger(), and llvm::StringRef::empty().

Referenced by llvm::StringRef::getAsInteger().

◆ getAsUnsignedInteger()

bool llvm::getAsUnsignedInteger ( StringRef  Str,
unsigned  Radix,
unsigned long long &  Result 
)

Helper functions for StringRef::getAsInteger.

GetAsUnsignedInteger - Workhorse method that converts a integer character sequence of radix up to 36 to an unsigned long long value.

Definition at line 489 of file StringRef.cpp.

References consumeUnsignedInteger(), and llvm::StringRef::empty().

Referenced by llvm::StringRef::getAsInteger(), llvm::yaml::ScalarTraits< uuid_t >::input(), and parsePhysicalReg().

◆ getBestSimplifyQuery() [1/4]

const SimplifyQuery llvm::getBestSimplifyQuery ( Pass P,
Function F 
)

◆ getBestSimplifyQuery() [2/4]

template<class T , class... TArgs>
const SimplifyQuery llvm::getBestSimplifyQuery ( AnalysisManager< T, TArgs... > &  AM,
Function F 
)

◆ getBestSimplifyQuery() [3/4]

const SimplifyQuery llvm::getBestSimplifyQuery ( LoopStandardAnalysisResults AR,
const DataLayout DL 
)

◆ getBestSimplifyQuery() [4/4]

template const SimplifyQuery llvm::getBestSimplifyQuery ( AnalysisManager< Function > &  ,
Function  
)

◆ getBitcodeFileContents()

Expected< BitcodeFileContents > llvm::getBitcodeFileContents ( MemoryBufferRef  Buffer)

Returns the contents of a bitcode file.

This includes the raw contents of the symbol table embedded in the bitcode file. Clients which require a symbol table should prefer to use irsymtab::read instead of this function because it creates a reader for the irsymtab and handles upgrading bitcode files without a symbol table or with an old symbol table.

Definition at line 5751 of file BitcodeReader.cpp.

References llvm::BitstreamCursor::advance(), Context, E, llvm::StringRef::empty(), llvm::BitstreamEntry::EndBlock, error(), llvm::BitstreamEntry::Error, F(), llvm::SimpleBitstreamCursor::getBitcodeBytes(), llvm::MemoryBufferRef::getBufferIdentifier(), llvm::SimpleBitstreamCursor::GetCurrentBitNo(), llvm::SimpleBitstreamCursor::getCurrentByteNo(), I, llvm::BitstreamEntry::ID, llvm::bitc::IDENTIFICATION_BLOCK_ID, initStream(), llvm::SimpleBitstreamCursor::JumpToBit(), llvm::BitstreamEntry::Kind, llvm::BitcodeFileContents::Mods, llvm::bitc::MODULE_BLOCK_ID, readBlobInRecord(), readIdentificationBlock(), llvm::BitstreamEntry::Record, llvm::Module::setMaterializer(), llvm::ArrayRef< T >::size(), llvm::BitstreamCursor::SkipBlock(), llvm::BitstreamCursor::skipRecord(), llvm::ArrayRef< T >::slice(), llvm::bitc::STRTAB_BLOB, llvm::bitc::STRTAB_BLOCK_ID, llvm::BitcodeFileContents::StrtabForSymtab, llvm::BitstreamEntry::SubBlock, llvm::BitcodeFileContents::Symtab, llvm::bitc::SYMTAB_BLOB, llvm::bitc::SYMTAB_BLOCK_ID, and llvm::Expected< T >::takeError().

Referenced by getBitcodeModuleList(), and llvm::object::readIRSymtab().

◆ getBitcodeLTOInfo()

Expected< BitcodeLTOInfo > llvm::getBitcodeLTOInfo ( MemoryBufferRef  Buffer)

Returns LTO information for the specified bitcode file.

Definition at line 6111 of file BitcodeReader.cpp.

References getSingleModule(), and llvm::Expected< T >::takeError().

Referenced by llvm::LTOModule::isThinLTO().

◆ getBitcodeModuleList()

Expected< std::vector< BitcodeModule > > llvm::getBitcodeModuleList ( MemoryBufferRef  Buffer)

Returns a list of modules in the specified bitcode buffer.

Definition at line 5743 of file BitcodeReader.cpp.

References getBitcodeFileContents().

Referenced by llvm::object::IRObjectFile::create(), and getSingleModule().

◆ getBitcodeProducerString()

Expected< std::string > llvm::getBitcodeProducerString ( MemoryBufferRef  Buffer)

Read the header of the specified bitcode buffer and extract just the producer string information.

If successful, this returns a string. On error, this returns "".

Definition at line 6084 of file BitcodeReader.cpp.

References initStream(), readIdentificationCode(), and llvm::Expected< T >::takeError().

Referenced by llvm::LTOModule::getProducerString().

◆ getBitcodeTargetTriple()

Expected< std::string > llvm::getBitcodeTargetTriple ( MemoryBufferRef  Buffer)

Read the header of the specified bitcode buffer and extract just the triple information.

If successful, this returns a string. On error, this returns "".

Definition at line 6068 of file BitcodeReader.cpp.

References initStream(), readTriple(), and llvm::Expected< T >::takeError().

Referenced by llvm::ThinLTOCodeGenerator::addModule(), and llvm::LTOModule::isBitcodeForTarget().

◆ getBRegFromDReg()

static unsigned llvm::getBRegFromDReg ( unsigned  Reg)
inlinestatic

Definition at line 110 of file AArch64BaseInfo.h.

References Reg.

◆ getBundleEnd() [1/2]

Returns an iterator pointing beyond the bundle containing I.

Definition at line 61 of file MachineInstrBundle.h.

References I.

Referenced by llvm::SlotIndexes::getInstructionIndex(), and llvm::HexagonInstrInfo::nonDbgBundleSize().

◆ getBundleEnd() [2/2]

Returns an iterator pointing beyond the bundle containing I.

Definition at line 69 of file MachineInstrBundle.h.

References I.

◆ getBundleStart() [1/2]

◆ getBundleStart() [2/2]

Returns an iterator to the first instruction in the bundle containing I.

Definition at line 53 of file MachineInstrBundle.h.

References I.

◆ getCallsiteCost()

int llvm::getCallsiteCost ( CallSite  CS,
const DataLayout DL 
)

◆ getComplexity()

static unsigned llvm::getComplexity ( Value V)
inlinestatic

Assign a complexity or rank value to LLVM Values.

This is used to reduce the amount of pattern matching needed for compares and commutative instructions. For example, if we have: icmp ugt X, Constant or xor (add X, Constant), cast Z

We do not have to consider the commuted variants of these patterns because canonicalization based on complexity guarantees the above ordering.

This routine maps IR values to various complexity ranks: 0 -> undef 1 -> Constants 2 -> Other non-instructions 3 -> Arguments 4 -> Cast and (f)neg/not instructions 5 -> Other instructions

Definition at line 83 of file InstCombineInternal.h.

References llvm::PatternMatch::m_FNeg(), llvm::PatternMatch::m_Neg(), llvm::PatternMatch::m_Not(), llvm::PatternMatch::m_Value(), and llvm::PatternMatch::match().

Referenced by simplifyAssocCastAssoc(), llvm::InstCombiner::visitFCmpInst(), and llvm::InstCombiner::visitICmpInst().

◆ getConstantDataArrayInfo()

bool llvm::getConstantDataArrayInfo ( const Value V,
ConstantDataArraySlice Slice,
unsigned  ElementSize,
uint64_t  Offset = 0 
)

◆ getConstantFPVRegVal()

const llvm::ConstantFP * llvm::getConstantFPVRegVal ( unsigned  VReg,
const MachineRegisterInfo MRI 
)

◆ getConstantRangeFromMetadata()

ConstantRange llvm::getConstantRangeFromMetadata ( const MDNode RangeMD)

◆ getConstantStringInfo()

bool llvm::getConstantStringInfo ( const Value V,
StringRef Str,
uint64_t  Offset = 0,
bool  TrimAtNul = true 
)

This function computes the length of a null-terminated C string pointed to by V.

If successful, it returns true and returns the string in Str. If unsuccessful, it returns false. This does not include the trailing null character by default. If TrimAtNul is set to false, then this returns any trailing null characters as well as any other characters that come after it.

If successful, it returns true and returns the string in Str. If unsuccessful, it returns false.

Definition at line 3515 of file ValueTracking.cpp.

References llvm::ConstantDataArraySlice::Array, llvm::StringRef::find(), llvm::ConstantDataSequential::getAsString(), getConstantDataArrayInfo(), llvm::ConstantDataArraySlice::Length, llvm::ConstantDataArraySlice::Offset, and llvm::StringRef::substr().

Referenced by canTransformToMemCmp(), ConstantFoldLoadFromConstPtr(), insertSinCosCall(), isReportingError(), and llvm::ConstantDataArraySlice::operator[]().

◆ getConstantVRegVal()

Optional< int64_t > llvm::getConstantVRegVal ( unsigned  VReg,
const MachineRegisterInfo MRI 
)

◆ getCopyDeclaration()

static Function* llvm::getCopyDeclaration ( Module M,
Type Ty 
)
static

◆ getCoverageMappingVarName()

StringRef llvm::getCoverageMappingVarName ( )
inline

Return the name of a covarage mapping variable (internal linkage) for each instrumented source module.

Such variables are allocated in the __llvm_covmap section.

Definition at line 110 of file InstrProf.h.

◆ getCoverageUnusedNamesVarName()

StringRef llvm::getCoverageUnusedNamesVarName ( )
inline

Return the name of the internal variable recording the array of PGO name vars referenced by the coverage mapping.

The owning functions of those names are not emitted by FE (e.g, unused inline functions.)

Definition at line 118 of file InstrProf.h.

Referenced by llvm::InstrProfiling::run().

◆ getCPU()

static StringRef llvm::getCPU ( StringRef  CPU)
static

Processes a CPU name.

Definition at line 31 of file AVRTargetMachine.cpp.

References llvm::StringRef::empty().

Referenced by llvm::AMDGPUAsmPrinter::EmitStartOfAsmFile(), encodeCnt(), and getSpecialRegForName().

◆ getCRFromCRBit()

static unsigned llvm::getCRFromCRBit ( unsigned  SrcReg)
inlinestatic

◆ getDeadRegState()

unsigned llvm::getDeadRegState ( bool  B)
inline

◆ getDebugMetadataVersionFromModule()

unsigned llvm::getDebugMetadataVersionFromModule ( const Module M)

Return Debug Info Metadata Version by checking module flags.

Definition at line 682 of file DebugInfo.cpp.

References llvm::Module::getModuleFlag().

Referenced by LLVMGetModuleDebugMetadataVersion(), and UpgradeDebugInfo().

◆ getDebugRegState()

unsigned llvm::getDebugRegState ( bool  B)
inline

Definition at line 476 of file MachineInstrBuilder.h.

References llvm::RegState::Debug.

Referenced by getRegState().

◆ getDefaultEHPersonality()

EHPersonality llvm::getDefaultEHPersonality ( const Triple T)

Definition at line 66 of file EHPersonalities.cpp.

References GNU_C.

Referenced by getDefaultPersonalityFn().

◆ getDefaultPrecision()

size_t llvm::getDefaultPrecision ( FloatStyle  Style)

◆ getDefRegState()

unsigned llvm::getDefRegState ( bool  B)
inline

◆ getDescriptions()

static DescVector llvm::getDescriptions ( )
static

Definition at line 25 of file DWARFExpression.cpp.

Referenced by getOpDesc().

◆ getDISubprogram()

DISubprogram * llvm::getDISubprogram ( const MDNode Scope)

◆ getDRegFromBReg()

static unsigned llvm::getDRegFromBReg ( unsigned  Reg)
inlinestatic

Definition at line 150 of file AArch64BaseInfo.h.

References Reg.

◆ getDWARFUnitIndex()

const DWARFUnitIndex & llvm::getDWARFUnitIndex ( DWARFContext Context,
DWARFSectionKind  Kind 
)

◆ getEffectiveCodeModel()

CodeModel::Model llvm::getEffectiveCodeModel ( Optional< CodeModel::Model CM,
CodeModel::Model  Default 
)
inline

Helper method for getting the code model, returning Default if CM does not have a value.

The tiny and kernel models will produce an error, so targets that support them or require more complex codemodel selection logic should implement and call their own getEffectiveCodeModel.

Definition at line 361 of file TargetMachine.h.

References llvm::CodeModel::Kernel, report_fatal_error(), and llvm::CodeModel::Tiny.

◆ getEffectiveRelocModel()

static Reloc::Model llvm::getEffectiveRelocModel ( Optional< Reloc::Model RM)
static

◆ getEFlagsForFeatureSet()

static unsigned llvm::getEFlagsForFeatureSet ( const FeatureBitset Features)
static

◆ getEHPersonalityName()

StringRef llvm::getEHPersonalityName ( EHPersonality  Pers)

◆ getEHScopeMembership()

DenseMap< const MachineBasicBlock *, int > llvm::getEHScopeMembership ( const MachineFunction MF)

◆ getFCmpCodeWithoutNaN()

ISD::CondCode llvm::getFCmpCodeWithoutNaN ( ISD::CondCode  CC)

◆ getFCmpCondCode()

ISD::CondCode llvm::getFCmpCondCode ( FCmpInst::Predicate  Pred)

◆ getFMA3Group()

const X86InstrFMA3Group * llvm::getFMA3Group ( unsigned  Opcode,
uint64_t  TSFlags 
)

◆ getFuncNameWithoutPrefix()

StringRef llvm::getFuncNameWithoutPrefix ( StringRef  PGOFuncName,
StringRef  FileName = "<unknown>" 
)

Given a PGO function name, remove the filename prefix and return the original (static) function name.

Definition at line 276 of file InstrProf.cpp.

References llvm::StringRef::drop_front(), llvm::StringRef::empty(), llvm::StringRef::size(), and llvm::StringRef::startswith().

Referenced by llvm::coverage::CounterMappingContext::evaluate(), and getInstrProfNameSeparator().

◆ getFunctionName()

static StringRef llvm::getFunctionName ( TargetLowering::CallLoweringInfo CLI)
static

◆ getGEPInductionOperand()

unsigned llvm::getGEPInductionOperand ( const GetElementPtrInst Gep)

◆ getGuaranteedNonFullPoisonOp()

const Value * llvm::getGuaranteedNonFullPoisonOp ( const Instruction I)

Return either nullptr or an operand of I such that I will trigger undefined behavior if I is executed and that operand has a full-poison value (all bits poison).

Definition at line 4391 of file ValueTracking.cpp.

References llvm::Instruction::getOpcode(), llvm::User::getOperand(), getPointerOperand(), I, llvm::SPII::Load, and llvm::SPII::Store.

◆ getGVDT()

static GVDAGType llvm::getGVDT ( )
static

◆ getHostEndianness()

support::endianness llvm::getHostEndianness ( )
inline

◆ getHotnessName()

const char* llvm::getHotnessName ( CalleeInfo::HotnessType  HT)
inline

◆ getHotSectionPrefix()

const char* llvm::getHotSectionPrefix ( )
inline

Definition at line 37 of file ProfileCommon.h.

◆ getICmpCode()

unsigned llvm::getICmpCode ( const ICmpInst ICI,
bool  InvertPred = false 
)

Encode a icmp predicate into a three bit mask.

These bits are carefully arranged to allow folding of expressions such as:

 (A < B) | (A > B) --> (A != B)

Note that this is only valid if the first and second predicates have the same sign. It is illegal to do: (A u< B) | (A s> B)

Three bits are used to represent the condition, as follows: 0 A > B 1 A == B 2 A < B

<=> Value Definition 000 0 Always false 001 1 A > B 010 2 A == B 011 3 A >= B 100 4 A < B 101 5 A != B 110 6 A <= B 111 7 Always true

Definition at line 22 of file CmpInstAnalysis.cpp.

References llvm::CmpInst::getInversePredicate(), llvm::CmpInst::getPredicate(), llvm::CmpInst::ICMP_EQ, llvm::CmpInst::ICMP_NE, llvm::CmpInst::ICMP_SGE, llvm::CmpInst::ICMP_SGT, llvm::CmpInst::ICMP_SLE, llvm::CmpInst::ICMP_SLT, llvm::CmpInst::ICMP_UGE, llvm::CmpInst::ICMP_UGT, llvm::CmpInst::ICMP_ULE, llvm::CmpInst::ICMP_ULT, and llvm_unreachable.

Referenced by areInverseVectorBitmasks(), foldSignedTruncationCheck(), and foldXorToXor().

◆ getICmpCondCode()

ISD::CondCode llvm::getICmpCondCode ( ICmpInst::Predicate  Pred)

◆ GetIfCondition()

Value * llvm::GetIfCondition ( BasicBlock BB,
BasicBlock *&  IfTrue,
BasicBlock *&  IfFalse 
)

Check whether BB is the merge point of a if-region.

If so, return the boolean condition that determines which entry into BB will be taken. Also, return by references the block that will be entered from if the condition is true, and the block that will be entered if the condition is false.

This does no checking to see if the true/false blocks have large or unsavory instructions in them.

Definition at line 783 of file BasicBlockUtils.cpp.

References assert(), llvm::BasicBlock::begin(), dyn_cast(), llvm::BranchInst::getCondition(), llvm::PHINode::getIncomingBlock(), llvm::PHINode::getNumIncomingValues(), llvm::BasicBlock::getSinglePredecessor(), llvm::BranchInst::getSuccessor(), llvm::BasicBlock::getTerminator(), llvm::BranchInst::isConditional(), pred_begin(), pred_end(), and std::swap().

Referenced by FoldTwoEntryPHINode(), and SplitCriticalEdge().

◆ getImplRegState()

unsigned llvm::getImplRegState ( bool  B)
inline

Definition at line 461 of file MachineInstrBuilder.h.

References llvm::RegState::Implicit.

Referenced by addSavedGPR(), finalizeBundle(), and getRegState().

◆ getInlineCost() [1/2]

InlineCost llvm::getInlineCost ( CallSite  CS,
const InlineParams Params,
TargetTransformInfo CalleeTTI,
std::function< AssumptionCache &(Function &)> &  GetAssumptionCache,
Optional< function_ref< BlockFrequencyInfo &(Function &)>>  GetBFI,
ProfileSummaryInfo PSI,
OptimizationRemarkEmitter ORE = nullptr 
)

Get an InlineCost object representing the cost of inlining this callsite.

Note that a default threshold is passed into this function. This threshold could be modified based on callsite's properties and only costs below this new threshold are computed with any accuracy. The new threshold can be used to bound the computation necessary to determine whether the cost is sufficiently low to warrant inlining.

Also note that calling this function dynamically computes the cost of inlining the callsite. It is an expensive, heavyweight call.

Definition at line 1989 of file InlineCost.cpp.

References llvm::CallSiteBase< FunTy, BBTy, ValTy, UserTy, UseTy, InstrTy, CallTy, InvokeTy, IterTy >::getCalledFunction().

Referenced by callsiteIsHot(), createAlwaysInlinerLegacyPass(), hasProfileData(), isWrapperOnlyCall(), and llvm::AlwaysInlinerPass::run().

◆ getInlineCost() [2/2]

InlineCost llvm::getInlineCost ( CallSite  CS,
Function Callee,
const InlineParams Params,
TargetTransformInfo CalleeTTI,
std::function< AssumptionCache &(Function &)> &  GetAssumptionCache,
Optional< function_ref< BlockFrequencyInfo &(Function &)>>  GetBFI,
ProfileSummaryInfo PSI,
OptimizationRemarkEmitter ORE 
)

Get an InlineCost with the callee explicitly specified.

This allows you to calculate the cost of inlining a function via a pointer. This behaves exactly as the version with no explicit callee parameter in all other respects.

Definition at line 1998 of file InlineCost.cpp.

References llvm::Attribute::AlwaysInline, llvm::CallSiteBase< FunTy, BBTy, ValTy, UserTy, UseTy, InstrTy, CallTy, InvokeTy, IterTy >::arg_size(), dbgs(), E, functionsHaveCompatibleAttributes(), llvm::InlineCost::get(), llvm::PointerType::getAddressSpace(), llvm::DataLayout::getAllocaAddrSpace(), llvm::InlineCost::getAlways(), llvm::CallSiteBase< FunTy, BBTy, ValTy, UserTy, UseTy, InstrTy, CallTy, InvokeTy, IterTy >::getArgument(), llvm::CallSiteBase< FunTy, BBTy, ValTy, UserTy, UseTy, InstrTy, CallTy, InvokeTy, IterTy >::getCaller(), llvm::Module::getDataLayout(), llvm::Value::getName(), llvm::InlineCost::getNever(), llvm::GlobalValue::getParent(), llvm::Value::getType(), llvm::CallSiteBase< FunTy, BBTy, ValTy, UserTy, UseTy, InstrTy, CallTy, InvokeTy, IterTy >::hasFnAttr(), llvm::Function::hasFnAttribute(), I, llvm::CallSiteBase< FunTy, BBTy, ValTy, UserTy, UseTy, InstrTy, CallTy, InvokeTy, IterTy >::isByValArgument(), isInlineViable(), llvm::GlobalValue::isInterposable(), llvm::CallSiteBase< FunTy, BBTy, ValTy, UserTy, UseTy, InstrTy, CallTy, InvokeTy, IterTy >::isNoInline(), LLVM_DEBUG, llvm::InlineResult::message, llvm::Attribute::NoInline, llvm::Function::nullPointerIsDefined(), and llvm::Attribute::OptimizeNone.

◆ getInlineParams() [1/3]

InlineParams llvm::getInlineParams ( )

Generate the parameters to tune the inline cost analysis based only on the commandline options.

Definition at line 2174 of file InlineCost.cpp.

References InlineThreshold.

Referenced by callsiteIsHot(), createFunctionInliningPass(), getInlineParams(), getInlineParamsFromOptLevel(), and hasProfileData().

◆ getInlineParams() [2/3]

InlineParams llvm::getInlineParams ( int  Threshold)

◆ getInlineParams() [3/3]

InlineParams llvm::getInlineParams ( unsigned  OptLevel,
unsigned  SizeOptLevel 
)

Generate the parameters to tune the inline cost analysis based on command line options.

If -inline-threshold option is not explicitly passed, the default threshold is computed from OptLevel and SizeOptLevel. An OptLevel value above 3 is considered an aggressive optimization mode. SizeOptLevel of 1 corresponds to the -Os flag and 2 corresponds to the -Oz flag.

Definition at line 2191 of file InlineCost.cpp.

References computeThresholdFromOptLevels(), getInlineParams(), LocallyHotCallSiteThreshold, and llvm::InlineParams::LocallyHotCallSiteThreshold.

◆ getInstrPredicate()

ARMCC::CondCodes llvm::getInstrPredicate ( const MachineInstr MI,
unsigned PredReg 
)

◆ getInstrProfComdatPrefix()

StringRef llvm::getInstrProfComdatPrefix ( )
inline

Return the name prefix of the COMDAT group for instrumentation variables associated with a COMDAT function.

Definition at line 99 of file InstrProf.h.

Referenced by getOrCreateProfileComdat().

◆ getInstrProfCountersVarPrefix()

StringRef llvm::getInstrProfCountersVarPrefix ( )
inline

Return the name prefix of profile counter variables.

Definition at line 89 of file InstrProf.h.

Referenced by getOrCreateProfileComdat(), and needsRuntimeRegistrationOfSectionRange().

◆ getInstrProfDataVarPrefix()

StringRef llvm::getInstrProfDataVarPrefix ( )
inline

Return the name prefix of variables containing per-function control data.

Definition at line 86 of file InstrProf.h.

Referenced by needsRuntimeRegistrationOfSectionRange().

◆ getInstrProfInitFuncName()

StringRef llvm::getInstrProfInitFuncName ( )
inline

Return the name of the runtime initialization method that is generated by the compiler.

The function calls __llvm_profile_register_functions and __llvm_profile_override_default_filename functions if needed. This function has internal linkage and invoked at startup time via init_array.

Definition at line 146 of file InstrProf.h.

Referenced by needsRuntimeRegistrationOfSectionRange().

◆ getInstrProfNameSeparator()

StringRef llvm::getInstrProfNameSeparator ( )
inline

◆ getInstrProfNamesRegFuncName()

StringRef llvm::getInstrProfNamesRegFuncName ( )
inline

Return the name of the runtime interface that registers the PGO name strings.

Definition at line 138 of file InstrProf.h.

Referenced by needsRuntimeRegistrationOfSectionRange().

◆ getInstrProfNamesVarName()

StringRef llvm::getInstrProfNamesVarName ( )
inline

Return the name of the variable holding the strings (possibly compressed) of all function's PGO names.

Definition at line 103 of file InstrProf.h.

Referenced by needsRuntimeRegistrationOfSectionRange().

◆ getInstrProfNameVarPrefix()

StringRef llvm::getInstrProfNameVarPrefix ( )
inline

Return the name prefix of variables containing instrumented function names.

Definition at line 83 of file InstrProf.h.

Referenced by getPGOFuncNameVarName(), and getVarName().

◆ getInstrProfRegFuncName()

StringRef llvm::getInstrProfRegFuncName ( )
inline

Return the name of the runtime interface that registers per-function control data for one instrumented function.

Definition at line 133 of file InstrProf.h.

Referenced by needsRuntimeRegistrationOfSectionRange().

◆ getInstrProfRegFuncsName()

StringRef llvm::getInstrProfRegFuncsName ( )
inline

Return the name of function that registers all the per-function control data at program startup time by calling __llvm_register_function.

This function has internal linkage and is called by __llvm_profile_init runtime method. This function is not generated for these platforms: Darwin, Linux, and FreeBSD.

Definition at line 127 of file InstrProf.h.

Referenced by needsRuntimeRegistrationOfSectionRange().

◆ getInstrProfRuntimeHookVarName()

StringRef llvm::getInstrProfRuntimeHookVarName ( )
inline

Return the name of the hook variable defined in profile runtime library.

A reference to the variable causes the linker to link in the runtime initialization module (which defines the hook variable).

Definition at line 151 of file InstrProf.h.

Referenced by needsRuntimeRegistrationOfSectionRange().

◆ getInstrProfRuntimeHookVarUseFuncName()

StringRef llvm::getInstrProfRuntimeHookVarUseFuncName ( )
inline

Return the name of the compiler generated function that references the runtime hook variable.

The function is a weak global.

Definition at line 157 of file InstrProf.h.

Referenced by needsRuntimeRegistrationOfSectionRange().

◆ getInstrProfSectionName()

std::string llvm::getInstrProfSectionName ( InstrProfSectKind  IPSK,
Triple::ObjectFormatType  OF,
bool  AddSegmentInfo = true 
)

Return the name of the profile section corresponding to IPSK.

The name of the section depends on the object format type OF. If AddSegmentInfo is true, a segment prefix and additional linker hints may be added to the section name (this is the default).

Definition at line 165 of file InstrProf.cpp.

References llvm::Triple::COFF, and llvm::Triple::MachO.

Referenced by getELFKindForNamedSection(), loadBinaryFormat(), needsRuntimeRegistrationOfSectionRange(), and shouldInstrumentReadWriteFromAddress().

◆ getInstrProfValueProfFuncName()

StringRef llvm::getInstrProfValueProfFuncName ( )
inline

Return the name profile runtime entry point to do value profiling for a given site.

Definition at line 73 of file InstrProf.h.

Referenced by getOrInsertValueProfilingCall(), and isUnconditionalBranch().

◆ getInstrProfValueRangeProfFuncName()

StringRef llvm::getInstrProfValueRangeProfFuncName ( )
inline

Return the name profile runtime entry point to do value range profiling.

Definition at line 78 of file InstrProf.h.

Referenced by getOrInsertValueProfilingCall().

◆ getInstrProfValuesVarPrefix()

StringRef llvm::getInstrProfValuesVarPrefix ( )
inline

Return the name prefix of value profile variables.

Definition at line 92 of file InstrProf.h.

Referenced by needsRuntimeRegistrationOfSectionRange().

◆ getInstrProfVNodesVarName()

StringRef llvm::getInstrProfVNodesVarName ( )
inline

Return the name of value profile node array variables:

Definition at line 95 of file InstrProf.h.

Referenced by needsRuntimeRegistrationOfSectionRange().

◆ getInternalReadRegState()

unsigned llvm::getInternalReadRegState ( bool  B)
inline

◆ getIntrinsicForCallSite()

Intrinsic::ID llvm::getIntrinsicForCallSite ( ImmutableCallSite  ICS,
const TargetLibraryInfo TLI 
)

◆ getIntrinsicWithChain()

static const IntrinsicData* llvm::getIntrinsicWithChain ( unsigned  IntNo)
static

◆ getIntrinsicWithoutChain()

static const IntrinsicData* llvm::getIntrinsicWithoutChain ( unsigned  IntNo)
static

◆ getInverseMinMaxFlavor()

SelectPatternFlavor llvm::getInverseMinMaxFlavor ( SelectPatternFlavor  SPF)

Return the inverse minimum/maximum flavor of the specified flavor.

For example, signed minimum is the inverse of signed maximum.

Definition at line 5137 of file ValueTracking.cpp.

References llvm_unreachable, SPF_SMAX, SPF_SMIN, SPF_UMAX, and SPF_UMIN.

Referenced by canonicalizeSaturatedSubtract(), getInverseMinMaxPred(), isSignedMinMaxClamp(), and matchSelectPattern().

◆ getInverseMinMaxPred()

CmpInst::Predicate llvm::getInverseMinMaxPred ( SelectPatternFlavor  SPF)

Return the canonical inverse comparison predicate for the specified minimum/maximum flavor.

Definition at line 5145 of file ValueTracking.cpp.

References getInverseMinMaxFlavor(), and getMinMaxPred().

Referenced by matchSelectPattern(), and llvm::InstCombiner::visitXor().

◆ getITInstrPredicate()

ARMCC::CondCodes llvm::getITInstrPredicate ( const MachineInstr MI,
unsigned PredReg 
)

getITInstrPredicate - Valid only in Thumb2 mode.

This function is identical to llvm::getInstrPredicate except it returns AL for conditional branch instructions which are "predicated", but are not in IT blocks.

Definition at line 674 of file Thumb2InstrInfo.cpp.

References llvm::ARMCC::AL, getInstrPredicate(), and llvm::MachineInstr::getOpcode().

Referenced by llvm::Thumb2InstrInfo::getRegisterInfo(), getUnconditionalBrDisp(), isCopy(), and llvm::Thumb2InstrInfo::isLegalToSplitMBBAt().

◆ getKillRegState()

unsigned llvm::getKillRegState ( bool  B)
inline

Definition at line 464 of file MachineInstrBuilder.h.

References llvm::RegState::Kill.

Referenced by addExclusiveRegPair(), addRegOffset(), addRegReg(), addSavedGPR(), llvm::HexagonFrameLowering::assignCalleeSavedSpillSlots(), buildMUBUFOffsetLoadStore(), CC_MipsO32_FP64(), llvm::X86InstrInfo::classifyLEAReg(), llvm::PPCInstrInfo::commuteInstructionImpl(), computeBytesPoppedByCalleeForSRet(), ContainsReg(), llvm::SystemZInstrInfo::convertToThreeAddress(), llvm::X86InstrInfo::convertToThreeAddress(), llvm::ARMBaseInstrInfo::copyFromCPSR(), llvm::AArch64InstrInfo::copyGPRRegTuple(), llvm::BPFInstrInfo::copyPhysReg(), llvm::RISCVInstrInfo::copyPhysReg(), llvm::MSP430InstrInfo::copyPhysReg(), llvm::Thumb1InstrInfo::copyPhysReg(), llvm::Thumb2InstrInfo::copyPhysReg(), llvm::MipsSEInstrInfo::copyPhysReg(), llvm::LanaiInstrInfo::copyPhysReg(), llvm::Mips16InstrInfo::copyPhysReg(), llvm::NVPTXInstrInfo::copyPhysReg(), llvm::XCoreInstrInfo::copyPhysReg(), llvm::ARCInstrInfo::copyPhysReg(), llvm::AVRInstrInfo::copyPhysReg(), llvm::SparcInstrInfo::copyPhysReg(), llvm::AArch64InstrInfo::copyPhysReg(), llvm::SIInstrInfo::copyPhysReg(), llvm::HexagonInstrInfo::copyPhysReg(), llvm::ARMBaseInstrInfo::copyPhysReg(), llvm::SystemZInstrInfo::copyPhysReg(), llvm::PPCInstrInfo::copyPhysReg(), llvm::X86InstrInfo::copyPhysReg(), llvm::ARMBaseInstrInfo::copyToCPSR(), llvm::HexagonFrameLowering::determineCalleeSaves(), emitBuildPairF64Pseudo(), llvm::PPCFrameLowering::emitEpilogue(), llvm::PPCFrameLowering::emitPrologue(), llvm::HexagonInstrInfo::expandPostRAPseudo(), llvm::FastISel::fastEmitInst_extractsubreg(), llvm::FastISel::fastEmitInst_r(), llvm::FastISel::fastEmitInst_ri(), llvm::FastISel::fastEmitInst_rii(), llvm::FastISel::fastEmitInst_rr(), llvm::FastISel::fastEmitInst_rri(), llvm::FastISel::fastEmitInst_rrr(), finalizeBundle(), findIncDecAfter(), fixStackStores(), llvm::ARMBaseInstrInfo::FoldImmediate(), genFusedMultiply(), genMaddR(), getCompareCC(), GetDSubRegs(), getImplicitScaleFactor(), llvm::PPCInstrInfo::getLoadOpcodeForSpill(), getNewValueJumpOpcode(), getPostIndexedLoadStoreOpcode(), getPrologueDeath(), getRegState(), INITIALIZE_PASS(), insertCopy(), insertDivByZeroTrap(), InsertFPConstInst(), InsertFPImmInst(), InsertLDR_STR(), InsertSPConstInst(), InsertSPImmInst(), isFpMulInstruction(), isFullUndefDef(), isMulPowOf2(), isSExtLoad(), llvm::MipsSEInstrInfo::loadImmediate(), llvm::PPCRegisterInfo::lowerCRBitSpilling(), llvm::PPCRegisterInfo::lowerCRSpilling(), llvm::PPCRegisterInfo::lowerDynamicAlloc(), llvm::PPCRegisterInfo::lowerVRSAVESpilling(), makeImplicit(), llvm::AArch64FrameLowering::processFunctionBeforeFrameFinalized(), llvm::TargetInstrInfo::reassociateOps(), registerDefinedBetween(), ReplaceFrameIndex(), reportIllegalCopy(), llvm::ARMFrameLowering::ResolveFrameIndexReference(), llvm::PPCFrameLowering::restoreCalleeSavedRegisters(), restoreCRs(), llvm::AVRFrameLowering::spillCalleeSavedRegisters(), llvm::Thumb1FrameLowering::spillCalleeSavedRegisters(), llvm::X86FrameLowering::spillCalleeSavedRegisters(), llvm::PPCFrameLowering::spillCalleeSavedRegisters(), llvm::SIRegisterInfo::spillSGPR(), storeRegPairToStackSlot(), llvm::X86InstrInfo::storeRegToAddr(), llvm::MipsSEInstrInfo::storeRegToStack(), llvm::Mips16InstrInfo::storeRegToStack(), llvm::RISCVInstrInfo::storeRegToStackSlot(), llvm::BPFInstrInfo::storeRegToStackSlot(), llvm::MSP430InstrInfo::storeRegToStackSlot(), llvm::Thumb1InstrInfo::storeRegToStackSlot(), llvm::Thumb2InstrInfo::storeRegToStackSlot(), llvm::LanaiInstrInfo::storeRegToStackSlot(), llvm::XCoreInstrInfo::storeRegToStackSlot(), llvm::ARCInstrInfo::storeRegToStackSlot(), llvm::AVRInstrInfo::storeRegToStackSlot(), llvm::SparcInstrInfo::storeRegToStackSlot(), llvm::AArch64InstrInfo::storeRegToStackSlot(), llvm::HexagonInstrInfo::storeRegToStackSlot(), llvm::ARMBaseInstrInfo::storeRegToStackSlot(), llvm::SIInstrInfo::storeRegToStackSlot(), llvm::SystemZInstrInfo::storeRegToStackSlot(), llvm::X86InstrInfo::storeRegToStackSlot(), llvm::SystemZInstrInfo::SystemZInstrInfo(), trySequenceOfOnes(), llvm::X86InstrInfo::unfoldMemoryOperand(), VerifyLowRegs(), and X86ChooseCmpImmediateOpcode().

◆ getKnownAlignment()

unsigned llvm::getKnownAlignment ( Value V,
const DataLayout DL,
const Instruction CxtI = nullptr,
AssumptionCache AC = nullptr,
const DominatorTree DT = nullptr 
)
inline

◆ getLanaiRegisterNumbering()

static unsigned llvm::getLanaiRegisterNumbering ( unsigned  Reg)
inlinestatic

Definition at line 41 of file LanaiBaseInfo.h.

References llvm_unreachable, R2, R4, and R6.

Referenced by adjustPqBits(), and FixupKind().

◆ getLazyBitcodeModule()

Expected< std::unique_ptr< Module > > llvm::getLazyBitcodeModule ( MemoryBufferRef  Buffer,
LLVMContext Context,
bool  ShouldLazyLoadMetadata = false,
bool  IsImporting = false 
)

Read the header of the specified bitcode buffer and prepare for lazy deserialization of function bodies.

If ShouldLazyLoadMetadata is true, lazily load metadata as well. If IsImporting is true, this module is being parsed for ThinLTO importing into another module.

Definition at line 6033 of file BitcodeReader.cpp.

References getSingleModule(), and llvm::Expected< T >::takeError().

Referenced by getOwningLazyBitcodeModule(), and parseBitcodeFileImpl().

◆ getLazyIRFileModule()

std::unique_ptr< Module > llvm::getLazyIRFileModule ( StringRef  Filename,
SMDiagnostic Err,
LLVMContext Context,
bool  ShouldLazyLoadMetadata = false 
)

If the given file holds a bitcode image, return a Module for it which does lazy deserialization of function bodies.

Otherwise, attempt to parse it as LLVM Assembly and return a fully populated Module. The ShouldLazyLoadMetadata flag is passed down to the bitcode reader to optionally enable lazy metadata loading.

Definition at line 53 of file IRReader.cpp.

◆ GetLibcallSignature() [1/2]

void llvm::GetLibcallSignature ( const WebAssemblySubtarget Subtarget,
RTLIB::Libcall  LC,
SmallVectorImpl< wasm::ValType > &  Rets,
SmallVectorImpl< wasm::ValType > &  Params 
)

◆ GetLibcallSignature() [2/2]

void llvm::GetLibcallSignature ( const WebAssemblySubtarget Subtarget,
const char Name,
SmallVectorImpl< wasm::ValType > &  Rets,
SmallVectorImpl< wasm::ValType > &  Params 
)

Definition at line 835 of file WebAssemblyRuntimeLibcallSignatures.cpp.

References assert(), and GetLibcallSignature().

◆ getLiveLaneMask()

LaneBitmask llvm::getLiveLaneMask ( unsigned  Reg,
SlotIndex  SI,
const LiveIntervals LIS,
const MachineRegisterInfo MRI 
)

◆ getLiveRegs()

GCNRPTracker::LiveRegSet llvm::getLiveRegs ( SlotIndex  SI,
const LiveIntervals LIS,
const MachineRegisterInfo MRI 
)

◆ getLiveRegsAfter()

GCNRPTracker::LiveRegSet llvm::getLiveRegsAfter ( const MachineInstr MI,
const LiveIntervals LIS 
)
inline

◆ getLiveRegsBefore()

GCNRPTracker::LiveRegSet llvm::getLiveRegsBefore ( const MachineInstr MI,
const LiveIntervals LIS 
)
inline

◆ getLLTForType()

LLT llvm::getLLTForType ( Type Ty,
const DataLayout DL 
)

◆ getLoadStoreAddressSpace()

unsigned llvm::getLoadStoreAddressSpace ( Value I)
inline

A helper function that returns the address space of the pointer operand of load or store instruction.

Definition at line 4986 of file Instructions.h.

References assert(), and I.

Referenced by llvm::InterleavedAccessInfo::analyzeInterleaving(), isStrideMul(), llvm::InnerLoopVectorizer::vectorizeInterleaveGroup(), and llvm::InnerLoopVectorizer::vectorizeMemoryInstruction().

◆ getLoadStoreAlignment()

unsigned llvm::getLoadStoreAlignment ( Value I)
inline

A helper function that returns the alignment of load or store instruction.

Definition at line 4976 of file Instructions.h.

References assert(), llvm::AllocaInst::getAlignment(), and I.

Referenced by concatenateVectors(), isStrideMul(), and llvm::InnerLoopVectorizer::vectorizeMemoryInstruction().

◆ getLoadStorePointerOperand()

Value* llvm::getLoadStorePointerOperand ( Value V)
inline

◆ getLoopAnalysisUsage()

void llvm::getLoopAnalysisUsage ( AnalysisUsage AU)

◆ getLoopEstimatedTripCount()

Optional< unsigned > llvm::getLoopEstimatedTripCount ( Loop L)

◆ getLoopPassPreservedAnalyses()

PreservedAnalyses llvm::getLoopPassPreservedAnalyses ( )

◆ getMallocAllocatedType()

Type * llvm::getMallocAllocatedType ( const CallInst CI,
const TargetLibraryInfo TLI 
)

getMallocAllocatedType - Returns the Type allocated by malloc call.

The Type depends on the number of bitcast uses of the malloc call: 0: PointerType is the malloc calls' return type. 1: PointerType is the bitcast's result type. >1: Unique PointerType cannot be determined, return NULL.

Definition at line 337 of file MemoryBuiltins.cpp.

References llvm::PointerType::getElementType(), and getMallocType().

Referenced by computeArraySize(), extractMallocCall(), optimizeOnceStoredGlobal(), PerformHeapAllocSRoA(), and tryToOptimizeStoreOfMallocToGlobal().

◆ getMallocArraySize()

Value * llvm::getMallocArraySize ( CallInst CI,
const DataLayout DL,
const TargetLibraryInfo TLI,
bool  LookThroughSExt = false 
)

getMallocArraySize - Returns the array size of a malloc call.

If the argument passed to malloc is a multiple of the size of the malloced type, then return that multiple. For non-array mallocs, the multiple is constant 1. Otherwise, return NULL for mallocs whose array size cannot be determined.

Definition at line 348 of file MemoryBuiltins.cpp.

References assert(), computeArraySize(), and isMallocLikeFn().

Referenced by extractMallocCall(), and tryToOptimizeStoreOfMallocToGlobal().

◆ getMallocType()

PointerType * llvm::getMallocType ( const CallInst CI,
const TargetLibraryInfo TLI 
)

getMallocType - Returns the PointerType resulting from the malloc call.

The PointerType depends on the number of bitcast uses of the malloc call: 0: PointerType is the malloc calls' return type. 1: PointerType is the bitcast's result type. >1: Unique PointerType cannot be determined, return NULL.

The PointerType depends on the number of bitcast uses of the malloc call: 0: PointerType is the calls' return type. 1: PointerType is the bitcast's result type. >1: Unique PointerType cannot be determined, return NULL.

Definition at line 305 of file MemoryBuiltins.cpp.

References assert(), E, llvm::Value::getType(), isMallocLikeFn(), llvm::Value::user_begin(), and llvm::Value::user_end().

Referenced by extractMallocCall(), and getMallocAllocatedType().

◆ getMatchingCondBranchOpcode()

unsigned llvm::getMatchingCondBranchOpcode ( unsigned  Opc)

Definition at line 2004 of file ARMBaseInstrInfo.cpp.

References B, and llvm_unreachable.

Referenced by isPushOpcode(), and llvm::ARMBaseInstrInfo::PredicateInstruction().

◆ getMaxNReg()

bool llvm::getMaxNReg ( const Function F,
unsigned x 
)

◆ getMaxNTIDx()

bool llvm::getMaxNTIDx ( const Function F,
unsigned x 
)

◆ getMaxNTIDy()

bool llvm::getMaxNTIDy ( const Function F,
unsigned y 
)

◆ getMaxNTIDz()

bool llvm::getMaxNTIDz ( const Function F,
unsigned z 
)

◆ getMemOPSizeRangeFromOption()

void llvm::getMemOPSizeRangeFromOption ( StringRef  Str,
int64_t &  RangeStart,
int64_t &  RangeLast 
)

◆ getMinCTASm()

bool llvm::getMinCTASm ( const Function F,
unsigned x 
)

◆ getMinMaxPred()

CmpInst::Predicate llvm::getMinMaxPred ( SelectPatternFlavor  SPF,
bool  Ordered = false 
)

◆ getModuleSummaryIndex()

Expected< std::unique_ptr< ModuleSummaryIndex > > llvm::getModuleSummaryIndex ( MemoryBufferRef  Buffer)

Parse the specified bitcode buffer, returning the module summary index.

Definition at line 6103 of file BitcodeReader.cpp.

References getSingleModule(), and llvm::Expected< T >::takeError().

Referenced by getModuleSummaryIndexForFile().

◆ getModuleSummaryIndexForFile()

Expected< std::unique_ptr< ModuleSummaryIndex > > llvm::getModuleSummaryIndexForFile ( StringRef  Path,
bool  IgnoreEmptyThinLTOIndexFile = false 
)

Parse the module summary index out of an IR file and return the module summary index object if found, or an empty summary if not.

If Path refers to an empty file and IgnoreEmptyThinLTOIndexFile is true, then this function will return nullptr.

Definition at line 6120 of file BitcodeReader.cpp.

References errorCodeToError(), llvm::ErrorOr< T >::getError(), llvm::MemoryBuffer::getFileOrSTDIN(), and getModuleSummaryIndex().

Referenced by doImportingForModule().

◆ getNextAvailablePluginDiagnosticKind()

int llvm::getNextAvailablePluginDiagnosticKind ( )

Get the next available kind ID for a plugin diagnostic.

Each time this function is called, it returns a different number. Therefore, a plugin that wants to "identify" its own classes with a dynamic identifier, just have to use this method to get a new ID and assign it to each of its classes. The returned ID will be greater than or equal to DK_FirstPluginKind. Thus, the plugin identifiers will not conflict with the DiagnosticKind values.

Definition at line 47 of file DiagnosticInfo.cpp.

References llvm::OptimizationRemarkAnalysis::AlwaysPrint, and DK_FirstPluginKind.

◆ getNodeHeader() [1/2]

BasicBlock* llvm::getNodeHeader ( BasicBlock BB)
inline

Definition at line 56 of file IntervalIterator.h.

◆ getNodeHeader() [2/2]

BasicBlock* llvm::getNodeHeader ( Interval I)
inline

Definition at line 57 of file IntervalIterator.h.

References llvm::Interval::getHeaderNode().

◆ getNumBytesForUTF8()

unsigned llvm::getNumBytesForUTF8 ( UTF8  firstByte)

Definition at line 520 of file ConvertUTF.cpp.

References first.

Referenced by llvm::sys::unicode::columnWidthUTF8(), and convertUTF8Sequence().

◆ getNumValueDataForSiteInstrProf()

uint32_t llvm::getNumValueDataForSiteInstrProf ( const void *  R,
uint32_t  VK,
uint32_t  S 
)

Definition at line 625 of file InstrProf.cpp.

◆ getNumValueDataInstrProf()

uint32_t llvm::getNumValueDataInstrProf ( const void *  Record,
uint32_t  VKind 
)

Definition at line 620 of file InstrProf.cpp.

◆ getNumValueKindsInstrProf()

uint32_t llvm::getNumValueKindsInstrProf ( const void *  Record)

ValueProfRecordClosure Interface implementation for InstrProfRecord class.

These C wrappers are used as adaptors so that C++ code can be invoked as callbacks.

Definition at line 611 of file InstrProf.cpp.

◆ getNumValueSitesInstrProf()

uint32_t llvm::getNumValueSitesInstrProf ( const void *  Record,
uint32_t  VKind 
)

Definition at line 615 of file InstrProf.cpp.

◆ getNVPTXRegClassName()

std::string llvm::getNVPTXRegClassName ( TargetRegisterClass const RC)

Definition at line 29 of file NVPTXRegisterInfo.cpp.

Referenced by llvm::NVPTXRegisterInfo::getName(), and getOpenCLAlignment().

◆ getNVPTXRegClassStr()

std::string llvm::getNVPTXRegClassStr ( TargetRegisterClass const RC)

◆ getObjectSize()

bool llvm::getObjectSize ( const Value Ptr,
uint64_t &  Size,
const DataLayout DL,
const TargetLibraryInfo TLI,
ObjectSizeOpts  Opts = {} 
)

Compute the size of the object pointed by Ptr.

Returns true and the object size in Size if successful, and false otherwise. In this context, by object we mean the region of memory starting at Ptr to the end of the underlying object pointed to by Ptr.

Returns true and the object size in Size if successful, and false otherwise. If RoundToAlign is true, then Size is rounded up to the alignment of allocas, byval arguments, and global variables.

Definition at line 434 of file MemoryBuiltins.cpp.

References Data, llvm::Value::getContext(), getSizeWithOverflow(), and llvm::APInt::getZExtValue().

Referenced by computePointerICmp(), getObjectSize(), getPointerSize(), isObjectSize(), isObjectSmallerThan(), and lowerObjectSizeCall().

◆ getOffset()

static Error llvm::getOffset ( const SymbolRef Sym,
SectionRef  Sec,
uint64_t &  Result 
)
static

◆ getOpcodeDef()

llvm::MachineInstr * llvm::getOpcodeDef ( unsigned  Opcode,
unsigned  Reg,
const MachineRegisterInfo MRI 
)

See if Reg is defined by an single def instruction that is Opcode.

Also try to do trivial folding if it's a COPY with same types. Returns null otherwise.

Definition at line 209 of file Utils.cpp.

References DefMI, llvm::MachineInstr::getOpcode(), llvm::MachineInstr::getOperand(), llvm::MachineOperand::getReg(), llvm::MachineRegisterInfo::getType(), and llvm::MachineRegisterInfo::getVRegDef().

Referenced by llvm::LegalizationArtifactCombiner::tryCombineMerges(), and llvm::LegalizationArtifactCombiner::tryFoldImplicitDef().

◆ getOpDesc()

static DWARFExpression::Operation::Description llvm::getOpDesc ( unsigned  OpCode)
static

Definition at line 103 of file DWARFExpression.cpp.

References getDescriptions().

Referenced by llvm::DWARFExpression::Operation::extract().

◆ getOptionalIntLoopAttribute()

llvm::Optional< int > llvm::getOptionalIntLoopAttribute ( Loop TheLoop,
StringRef  Name 
)

Find named metadata for a loop with an integer value.

Definition at line 232 of file LoopUtils.cpp.

References findStringMetadataForLoop(), llvm::ConstantInt::getSExtValue(), and None.

Referenced by hasUnrollAndJamTransformation(), hasUnrollTransformation(), hasVectorizeTransformation(), and warnAboutLeftoverTransformations().

◆ GetOrCreateFunctionComdat()

Comdat * llvm::GetOrCreateFunctionComdat ( Function F,
Triple T,
const std::string &  ModuleId 
)

◆ getOrCreateInitFunction()

Function * llvm::getOrCreateInitFunction ( Module M,
StringRef  Name 
)

◆ getOrCreateSanitizerCtorAndInitFunctions()

std::pair< Function *, Function * > llvm::getOrCreateSanitizerCtorAndInitFunctions ( Module M,
StringRef  CtorName,
StringRef  InitName,
ArrayRef< Type *>  InitArgTypes,
ArrayRef< Value *>  InitArgs,
function_ref< void(Function *, Function *)>  FunctionsCreatedCallback,
StringRef  VersionCheckName = StringRef() 
)

Creates sanitizer constructor function lazily.

If a constructor and init function already exist, this function returns it. Otherwise it calls createSanitizerCtorAndInitFunctions. The FunctionsCreatedCallback is invoked in that case, passing the new Ctor and Init function.

Returns
Returns pair of pointers to constructor, and init functions respectively.

Definition at line 178 of file ModuleUtils.cpp.

References assert(), createSanitizerCtorAndInitFunctions(), declareSanitizerInitFunction(), llvm::StringRef::empty(), llvm::Module::getContext(), llvm::Module::getFunction(), and llvm::Type::getVoidTy().

Referenced by createThreadSanitizerLegacyPassPass(), and getOrInsertGlobal().

◆ getOrderedReduction()

Value * llvm::getOrderedReduction ( IRBuilder<> &  Builder,
Value Acc,
Value Src,
unsigned  Op,
RecurrenceDescriptor::MinMaxRecurrenceKind  MinMaxKind = RecurrenceDescriptor::MRK_Invalid,
ArrayRef< Value *>  RedOps = None 
)

◆ getOrdinalSuffix()

StringRef llvm::getOrdinalSuffix ( unsigned  Val)
inline

Returns the English suffix for an ordinal integer (-st, -nd, -rd, -th).

Definition at line 267 of file StringExtras.h.

References Name, printEscapedString(), printHTMLEscaped(), and printLowerCase().

◆ getOrEnforceKnownAlignment()

unsigned llvm::getOrEnforceKnownAlignment ( Value V,
unsigned  PrefAlign,
const DataLayout DL,
const Instruction CxtI = nullptr,
AssumptionCache AC = nullptr,
const DominatorTree DT = nullptr 
)

Try to ensure that the alignment of V is at least PrefAlign bytes.

If the owning object can be modified and has an alignment less than PrefAlign, it will be increased and PrefAlign returned. If the alignment cannot be increased, the known alignment of the value is returned.

It is not always possible to modify the alignment of the underlying object, so if alignment is important, a more reliable approach is to simply align all global variables and allocation instructions to their preferred alignment from the beginning.

Definition at line 1184 of file Local.cpp.

References llvm::AMDGPU::HSAMD::Kernel::Arg::Key::Align, assert(), computeKnownBits(), enforceKnownAlignment(), llvm::Value::getType(), llvm::Type::isPointerTy(), and llvm::Value::MaximumAlignment.

Referenced by getChainID(), getKnownAlignment(), HandleByValArgument(), hasUndefContents(), llvm::SimplifyCFGOptions::setAssumptionCache(), llvm::InstCombiner::visitAllocaInst(), llvm::InstCombiner::visitCallInst(), llvm::InstCombiner::visitLoadInst(), and llvm::InstCombiner::visitStoreInst().

◆ getOwningLazyBitcodeModule()

Expected< std::unique_ptr< Module > > llvm::getOwningLazyBitcodeModule ( std::unique_ptr< MemoryBuffer > &&  Buffer,
LLVMContext Context,
bool  ShouldLazyLoadMetadata = false,
bool  IsImporting = false 
)

Like getLazyBitcodeModule, except that the module takes ownership of the memory buffer if successful.

If successful, this moves Buffer. On error, this does not move Buffer. If IsImporting is true, this module is being parsed for ThinLTO importing into another module.

Definition at line 6042 of file BitcodeReader.cpp.

References getLazyBitcodeModule().

Referenced by LLVMGetBitcodeModuleInContext(), and LLVMGetBitcodeModuleInContext2().

◆ getPassTimer()

Timer * llvm::getPassTimer ( Pass P)

◆ getPGOFuncName() [1/2]

std::string llvm::getPGOFuncName ( const Function F,
bool  InLTO = false,
uint64_t  Version = INSTR_PROF_INDEX_VERSION 
)

◆ getPGOFuncName() [2/2]

std::string llvm::getPGOFuncName ( StringRef  RawFuncName,
GlobalValue::LinkageTypes  Linkage,
StringRef  FileName,
uint64_t Version  LLVM_ATTRIBUTE_UNUSED = INSTR_PROF_INDEX_VERSION 
)

Return the modified name for a function suitable to be used the key for profile lookup.

The function's original name is RawFuncName and has linkage of type Linkage. The function is defined in module FileName.

Definition at line 215 of file InstrProf.cpp.

References llvm::GlobalValue::getGlobalIdentifier().

◆ getPGOFuncNameMetadata()

MDNode * llvm::getPGOFuncNameMetadata ( const Function F)

Return the PGOFuncName meta data associated with a function.

Definition at line 910 of file InstrProf.cpp.

References llvm::GlobalObject::getMetadata(), and getPGOFuncNameMetadataName().

Referenced by createPGOFuncNameMetadata(), getPGOFuncName(), and getPGOFuncNameMetadataName().

◆ getPGOFuncNameMetadataName()

StringRef llvm::getPGOFuncNameMetadataName ( )
inline

◆ getPGOFuncNameVarInitializer()

StringRef llvm::getPGOFuncNameVarInitializer ( GlobalVariable NameVar)

Return the initializer in string of the PGO name var NameVar.

Definition at line 420 of file InstrProf.cpp.

References llvm::GlobalVariable::getInitializer().

Referenced by collectPGOFuncNameStrings(), and getInstrProfNameSeparator().

◆ getPGOFuncNameVarName()

std::string llvm::getPGOFuncNameVarName ( StringRef  FuncName,
GlobalValue::LinkageTypes  Linkage 
)

Return the name of the global variable used to store a function name in PGO instrumentation.

FuncName is the name of the function returned by the getPGOFuncName call.

Definition at line 287 of file InstrProf.cpp.

References getInstrProfNameVarPrefix(), llvm::GlobalValue::isLocalLinkage(), and llvm::tgtok::VarName.

Referenced by createPGOFuncNameVar(), and getInstrProfNameSeparator().

◆ GetPointerBaseWithConstantOffset() [1/2]

Value * llvm::GetPointerBaseWithConstantOffset ( Value Ptr,
int64_t &  Offset,
const DataLayout DL 
)

◆ GetPointerBaseWithConstantOffset() [2/2]

const Value* llvm::GetPointerBaseWithConstantOffset ( const Value Ptr,
int64_t &  Offset,
const DataLayout DL 
)
inline

◆ getPointerOperand()

Value* llvm::getPointerOperand ( Value V)
inline

◆ getPredForICmpCode()

Constant * llvm::getPredForICmpCode ( unsigned  Code,
bool  Sign,
Type OpTy,
CmpInst::Predicate Pred 
)

This is the complement of getICmpCode.

It turns a predicate code into either a constant true or false or the predicate for a new ICmp. The sign is passed in to determine which kind of predicate to use in the new ICmp instruction. Non-NULL return value will be a true or false constant. NULL return means a new ICmp is needed. The predicate is output in Pred.

Definition at line 43 of file CmpInstAnalysis.cpp.

References llvm::ConstantInt::get(), llvm::CmpInst::ICMP_EQ, llvm::CmpInst::ICMP_NE, llvm::CmpInst::ICMP_SGE, llvm::CmpInst::ICMP_SGT, llvm::CmpInst::ICMP_SLE, llvm::CmpInst::ICMP_SLT, llvm::CmpInst::ICMP_UGE, llvm::CmpInst::ICMP_UGT, llvm::CmpInst::ICMP_ULE, llvm::CmpInst::ICMP_ULT, llvm_unreachable, and llvm::CmpInst::makeCmpResultType().

Referenced by getNewICmpValue().

◆ getPtrStride()

int64_t llvm::getPtrStride ( PredicatedScalarEvolution PSE,
Value Ptr,
const Loop Lp,
const ValueToValueMap StridesMap = ValueToValueMap(),
bool  Assume = false,
bool  ShouldCheckWrap = true 
)

If the pointer has a constant stride return it in units of its element size.

Check whether the access through Ptr has a constant stride.

Otherwise return zero.

Ensure that it does not wrap in the address space, assuming the predicate associated with PSE is true.

If necessary this method will version the stride of the pointer according to PtrToStride and therefore add further predicates to PSE. The Assume parameter indicates if we are allowed to make additional run-time assumptions.

Definition at line 991 of file LoopAccessAnalysis.cpp.

References assert(), C, dbgs(), dyn_cast(), llvm::GlobalValue::getAddressSpace(), llvm::SCEVConstant::getAPInt(), llvm::PredicatedScalarEvolution::getAsAddRec(), llvm::APInt::getBitWidth(), llvm::Module::getDataLayout(), llvm::LoopBase< BlockT, LoopT >::getHeader(), llvm::SCEVAddRecExpr::getLoop(), llvm::BasicBlock::getModule(), llvm::BasicBlock::getParent(), llvm::PredicatedScalarEvolution::getSE(), llvm::APInt::getSExtValue(), llvm::SCEVAddRecExpr::getStepRecurrence(), llvm::Value::getType(), llvm::PredicatedScalarEvolution::hasNoOverflow(), llvm::SCEVWrapPredicate::IncrementNUSW, isInBoundsGep(), isNoWrapAddRec(), llvm::Type::isPointerTy(), LLVM_DEBUG, NullPointerIsDefined(), replaceSymbolicStrideSCEV(), llvm::PredicatedScalarEvolution::setNoOverflow(), and Size.

Referenced by llvm::InterleavedAccessInfo::analyzeInterleaving(), areStridedAccessesIndependent(), concatenateVectors(), llvm::LoopAccessInfo::getPSE(), llvm::LoopVectorizationLegality::isConsecutivePtr(), isNoWrap(), and llvm::MemoryDepChecker::Dependence::print().

◆ getRandomBytes()

std::error_code llvm::getRandomBytes ( void *  Buffer,
size_t  Size 
)

Definition at line 63 of file RandomNumberGenerator.cpp.

References llvm::support::endian::read(), and llvm::MipsISD::Ret.

◆ getRefAddrSize()

static uint8_t llvm::getRefAddrSize ( uint8_t  AddrSize,
uint16_t  Version 
)
static

Definition at line 112 of file DWARFExpression.cpp.

Referenced by llvm::DWARFExpression::Operation::extract().

◆ getRegPressure()

template<typename Range >
GCNRegPressure llvm::getRegPressure ( const MachineRegisterInfo MRI,
Range &&  LiveRegs 
)

◆ getRegSequenceSubReg()

TargetInstrInfo::RegSubRegPair llvm::getRegSequenceSubReg ( MachineInstr MI,
unsigned  SubReg 
)

◆ getRegState()

unsigned llvm::getRegState ( const MachineOperand RegOp)
inline

◆ getRegSubRegPair()

TargetInstrInfo::RegSubRegPair llvm::getRegSubRegPair ( const MachineOperand O)
inline

◆ getRenamableRegState()

unsigned llvm::getRenamableRegState ( bool  B)
inline

Definition at line 479 of file MachineInstrBuilder.h.

References llvm::RegState::Renamable.

Referenced by getRegState().

◆ getReqNTIDx()

bool llvm::getReqNTIDx ( const Function F,
unsigned x 
)

◆ getReqNTIDy()

bool llvm::getReqNTIDy ( const Function F,
unsigned y 
)

◆ getReqNTIDz()

bool llvm::getReqNTIDz ( const Function F,
unsigned z 
)

◆ GetReturnInfo()

void llvm::GetReturnInfo ( CallingConv::ID  CC,
Type ReturnType,
AttributeList  attr,
SmallVectorImpl< ISD::OutputArg > &  Outs,
const TargetLowering TLI,
const DataLayout DL 
)

◆ getSafeVectorConstantForBinop()

static Constant* llvm::getSafeVectorConstantForBinop ( BinaryOperator::BinaryOps  Opcode,
Constant In,
bool  IsRHSConstant 
)
inlinestatic

Some binary operators require special handling to avoid poison and undefined behavior.

If a constant vector has undef elements, replace those undefs with identity constants if possible because those are always safe to execute. If no identity constant exists, replace undef with some other safe constant.

Definition at line 226 of file InstCombineInternal.h.

References assert(), C, llvm::ConstantInt::get(), llvm::ConstantFP::get(), llvm::ConstantVector::get(), llvm::Constant::getAggregateElement(), llvm::ConstantExpr::getBinOpIdentity(), llvm::Constant::getNullValue(), llvm::Value::getType(), llvm::Type::getVectorElementType(), llvm::Type::getVectorNumElements(), llvm::Type::isVectorTy(), and llvm_unreachable.

Referenced by foldSelectShuffle(), foldSelectShuffleWith1Binop(), and shouldMergeGEPs().

◆ getSamplerName()

std::string llvm::getSamplerName ( const Value val)

◆ getSelectionDAGFallbackAnalysisUsage()

void llvm::getSelectionDAGFallbackAnalysisUsage ( AnalysisUsage AU)

◆ GetShadowBytes()

SmallVector< uint8_t, 64 > llvm::GetShadowBytes ( const SmallVectorImpl< ASanStackVariableDescription > &  Vars,
const ASanStackFrameLayout Layout 
)

◆ GetShadowBytesAfterScope()

SmallVector< uint8_t, 64 > llvm::GetShadowBytesAfterScope ( const SmallVectorImpl< ASanStackVariableDescription > &  Vars,
const ASanStackFrameLayout Layout 
)

◆ getShuffleReduction()

Value * llvm::getShuffleReduction ( IRBuilder<> &  Builder,
Value Src,
unsigned  Op,
RecurrenceDescriptor::MinMaxRecurrenceKind  MinMaxKind = RecurrenceDescriptor::MRK_Invalid,
ArrayRef< Value *>  RedOps = None 
)

◆ getSizeInBits()

unsigned llvm::getSizeInBits ( unsigned  Reg,
const MachineRegisterInfo MRI,
const TargetRegisterInfo TRI 
) const

◆ getSLEB128Size()

unsigned llvm::getSLEB128Size ( int64_t  Value)

Utility function to get the size of the SLEB128-encoded value.

Definition at line 30 of file LEB128.cpp.

References Size.

Referenced by llvm::EHStreamer::computeActionsTable(), decodeSLEB128(), EmitDebugSectionImpl(), and llvm::DIEInteger::SizeOf().

◆ getSourceGraphNode() [1/2]

BasicBlock* llvm::getSourceGraphNode ( Function ,
BasicBlock BB 
)
inline

◆ getSourceGraphNode() [2/2]

Interval* llvm::getSourceGraphNode ( IntervalPartition IP,
BasicBlock BB 
)
inline

Definition at line 65 of file IntervalIterator.h.

References llvm::IntervalPartition::getBlockInterval().

◆ getSplatValue()

const llvm::Value * llvm::getSplatValue ( const Value V)

Get splat value if the input is a splat vector or return nullptr.

The value may be extracted from a splat constants vector or from a sequence of instructions that broadcast a single value into a vector.

This function is not fully general. It checks only 2 cases: the input value is (1) a splat constants vector or (2) a sequence of instructions that broadcast a single value into a vector.

Definition at line 306 of file VectorUtils.cpp.

References C, dyn_cast(), llvm::User::getOperand(), llvm::Value::getType(), and isZero().

Referenced by llvm::BuildVectorSDNode::getConstantFPSplatNode(), llvm::BuildVectorSDNode::getConstantFPSplatPow2ToLog2Int(), llvm::BuildVectorSDNode::getConstantSplatNode(), llvm::TargetTransformInfoImplCRTPBase< AMDGPUTTIImpl >::getGEPCost(), llvm::TargetTransformInfo::getOperandInfo(), getUniformBase(), llvm::X86TTIImpl::getUserCost(), hasOnlySelectUsers(), isBytewiseValue(), and reduceBuildVecToShuffleWithZero().

◆ GetStatistics()

const std::vector< std::pair< StringRef, unsigned > > llvm::GetStatistics ( )

Get the statistics.

This can be used to look up the value of statistics without needing to parse JSON.

This function does not prevent statistics being updated by other threads during it's execution. It will return the value at the point that it is read. However, it will prevent new statistics from registering until it completes.

Definition at line 257 of file Statistic.cpp.

◆ getStrideFromPointer()

Value * llvm::getStrideFromPointer ( Value Ptr,
ScalarEvolution SE,
Loop Lp 
)

◆ GetStringLength()

uint64_t llvm::GetStringLength ( const Value V,
unsigned  CharSize = 8 
)

If we can compute the length of the string pointed to by the specified pointer, return 'len+1'.

If we can't, return 0.

Definition at line 3616 of file ValueTracking.cpp.

References GetStringLengthH(), llvm::Value::getType(), and llvm::Type::isPointerTy().

Referenced by canTransformToMemCmp(), isReportingError(), llvm::LibCallSimplifier::LibCallSimplifier(), llvm::ConstantDataArraySlice::operator[](), and llvm::ObjectSizeOffsetVisitor::visitCallSite().

◆ getStructTM()

static struct tm llvm::getStructTM ( TimePoint<>  TP)
static

Definition at line 26 of file Chrono.cpp.

References assert(), llvm::AArch64CC::LT, and llvm::sys::toTimeT().

Referenced by operator<<().

◆ GetSuccessorNumber()

unsigned llvm::GetSuccessorNumber ( const BasicBlock BB,
const BasicBlock Succ 
)

Search for the specified successor of basic block BB and return its position in the terminator instruction's list of successors.

GetSuccessorNumber - Search for the specified successor of basic block BB and return its position in the terminator instruction's list of successors.

It is an error to call this with a block that is not a successor.

Definition at line 72 of file CFG.cpp.

References assert(), llvm::Instruction::getNumSuccessors(), llvm::Instruction::getSuccessor(), and llvm::BasicBlock::getTerminator().

Referenced by canRenameComdat(), DemoteRegToStack(), isOnlyReachableViaThisEdge(), SplitCriticalSideEffectEdges(), and SplitEdge().

◆ getSurfaceName()

std::string llvm::getSurfaceName ( const Value val)

◆ getSwappedBytes()

uint24_t llvm::getSwappedBytes ( uint24_t  C)
inline

Needed by swapByteOrder().

Definition at line 37 of file DataExtractor.h.

References llvm::Uint24::Bytes.

◆ getTextureName()

std::string llvm::getTextureName ( const Value val)

◆ getTheAArch64beTarget()

Target & llvm::getTheAArch64beTarget ( )

◆ getTheAArch64leTarget()

Target & llvm::getTheAArch64leTarget ( )

◆ getTheAMDGPUTarget()

Target & llvm::getTheAMDGPUTarget ( )

The target which supports all AMD GPUs.

This will eventually be deprecated and there will be a R600 target and a GCN target.

Definition at line 21 of file AMDGPUTargetInfo.cpp.

Referenced by LLVMInitializeAMDGPUAsmParser(), LLVMInitializeAMDGPUAsmPrinter(), LLVMInitializeAMDGPUTarget(), LLVMInitializeAMDGPUTargetInfo(), and LLVMInitializeAMDGPUTargetMC().

◆ getTheARCTarget()

Target & llvm::getTheARCTarget ( )

◆ getTheARM64Target()

Target & llvm::getTheARM64Target ( )

◆ getTheARMBETarget()

Target & llvm::getTheARMBETarget ( )

◆ getTheARMLETarget()

Target & llvm::getTheARMLETarget ( )

◆ getTheAVRTarget()

Target & llvm::getTheAVRTarget ( )

◆ getTheBPFbeTarget()

Target & llvm::getTheBPFbeTarget ( )

◆ getTheBPFleTarget()

Target & llvm::getTheBPFleTarget ( )

◆ getTheBPFTarget()

Target & llvm::getTheBPFTarget ( )

◆ getTheGCNTarget()

Target & llvm::getTheGCNTarget ( )

◆ getTheHexagonTarget()

Target & llvm::getTheHexagonTarget ( )

◆ getTheLanaiTarget()

Target & llvm::getTheLanaiTarget ( )

◆ getTheMips64elTarget()

Target & llvm::getTheMips64elTarget ( )

◆ getTheMips64Target()

Target & llvm::getTheMips64Target ( )

◆ getTheMipselTarget()

Target & llvm::getTheMipselTarget ( )

◆ getTheMipsTarget()

Target & llvm::getTheMipsTarget ( )

◆ getTheMSP430Target()

Target & llvm::getTheMSP430Target ( )

◆ getTheNVPTXTarget32()

Target & llvm::getTheNVPTXTarget32 ( )

◆ getTheNVPTXTarget64()

Target & llvm::getTheNVPTXTarget64 ( )

◆ getThePPC32Target()

Target & llvm::getThePPC32Target ( )

◆ getThePPC64LETarget()

Target & llvm::getThePPC64LETarget ( )

◆ getThePPC64Target()

Target & llvm::getThePPC64Target ( )

◆ getTheRISCV32Target()

Target & llvm::getTheRISCV32Target ( )

◆ getTheRISCV64Target()

Target & llvm::getTheRISCV64Target ( )

◆ getTheSparcelTarget()

Target & llvm::getTheSparcelTarget ( )

◆ getTheSparcTarget()

Target & llvm::getTheSparcTarget ( )

◆ getTheSparcV9Target()

Target & llvm::getTheSparcV9Target ( )

◆ getTheSystemZTarget()

Target & llvm::getTheSystemZTarget ( )

◆ getTheThumbBETarget()

Target & llvm::getTheThumbBETarget ( )

◆ getTheThumbLETarget()

Target & llvm::getTheThumbLETarget ( )

◆ getTheWebAssemblyTarget32()

Target & llvm::getTheWebAssemblyTarget32 ( )

◆ getTheWebAssemblyTarget64()

Target & llvm::getTheWebAssemblyTarget64 ( )

◆ getTheX86_32Target()

Target & llvm::getTheX86_32Target ( )

◆ getTheX86_64Target()

Target & llvm::getTheX86_64Target ( )

◆ getTheXCoreTarget()

Target & llvm::getTheXCoreTarget ( )

◆ getToken()

std::pair< StringRef, StringRef > llvm::getToken ( StringRef  Source,
StringRef  Delimiters = " \t\n\v\f\r" 
)

getToken - This function extracts one token from source, ignoring any leading characters that appear in the Delimiters string, and ending the token at any of the characters that appear in the Delimiters string.

If there are no tokens in the source string, an empty string is returned. The function returns a pair containing the extracted token and the remaining tail string.

Definition at line 38 of file StringExtras.cpp.

Referenced by addNegOperand(), getRealVLDOpcode(), getSpecialRegForName(), instIsBreakpoint(), IsCPSRDead< MCInst >(), isMatchingOrAlias(), itostr(), MaybePredicatedInst(), previousEqual(), printMCExpr(), llvm::LTOCodeGenerator::setCodeGenDebugOptions(), shouldBeSls(), and SplitString().

◆ getTypeName()

template<typename DesiredTypeName >
StringRef llvm::getTypeName ( )
inline

We provide a function which tries to compute the (demangled) name of a type statically.

This routine may fail on some platforms or for particularly unusual types. Do not use it for anything other than logging and debugging aids. It isn't portable or dependendable in any real sense.

The returned StringRef will point into a static storage duration string. However, it may not be null terminated and may be some strangely aligned inner substring of a larger string.

Definition at line 28 of file TypeName.h.

References assert(), llvm::StringRef::drop_front(), llvm::StringRef::empty(), llvm::StringRef::find(), Name, llvm::StringRef::npos, llvm::cl::Prefix, llvm::StringRef::rfind(), llvm::StringRef::size(), and llvm::StringRef::substr().

Referenced by LLVMGetRelocationTypeName().

◆ getULEB128Size()

unsigned llvm::getULEB128Size ( uint64_t  Value)

◆ getUnaryFloatFn()

StringRef llvm::getUnaryFloatFn ( const TargetLibraryInfo TLI,
Type Ty,
LibFunc  DoubleFn,
LibFunc  FloatFn,
LibFunc  LongDoubleFn 
)

Get the name of the overloaded unary floating point function corresponding to Ty.

Definition at line 768 of file BuildLibCalls.cpp.

References assert(), llvm::Type::DoubleTyID, llvm::Type::FloatTyID, llvm::TargetLibraryInfo::getName(), llvm::Type::getTypeID(), llvm::Type::HalfTyID, hasUnaryFloatFn(), and llvm_unreachable.

Referenced by emitUnaryFloatFnCall().

◆ getUndefRegState()

unsigned llvm::getUndefRegState ( bool  B)
inline

◆ GetUnderlyingObject() [1/2]

Value * llvm::GetUnderlyingObject ( Value V,
const DataLayout DL,
unsigned  MaxLookup = 6 
)

This method strips off any GEP address adjustments and pointer casts from the specified value, returning the original object being addressed.

Note that the returned value has pointer type if the specified value does. If the MaxLookup value is non-zero, it limits the number of instructions to be stripped off.

Definition at line 3671 of file ValueTracking.cpp.

References assert(), GEP, getArgumentAliasingToReturnedPointer(), llvm::Operator::getOpcode(), llvm::Value::getType(), llvm::Type::isPointerTy(), llvm::NVPTX::PTXCvtMode::RP, llvm::JumpTable::Simplified, and SimplifyInstruction().

Referenced by llvm::GlobalsAAResult::alias(), llvm::VNCoercion::analyzeLoadFromClobberingMemInst(), llvm::AAResults::callCapturesBefore(), ConstantFoldLoadFromConstPtr(), createAMDGPUFunctionInliningPass(), eliminateDeadStores(), eliminateNoopStore(), getArgumentAliasingToReturnedPointer(), getChainID(), getMemSetPatternValue(), llvm::GlobalsAAResult::getModRefBehavior(), llvm::BasicAAResult::getModRefInfo(), llvm::GlobalsAAResult::getModRefInfo(), llvm::MemoryDependenceResults::getSimplePointerDependencyFrom(), llvm::objcarc::GetUnderlyingObjCPtr(), GetUnderlyingObject(), GetUnderlyingObjects(), llvm::AMDGPUTTIImpl::getUnrollingPreferences(), handleFree(), hasValueBeenRAUWed(), INITIALIZE_PASS(), InstructionDereferencesPointer(), instrumentMaskedLoadOrStore(), isCallPromotable(), isNonEscapingGlobalNoAliasWithLoad(), isObjectDereferencedInBlock(), isOverwrite(), isZero(), memOpsHaveSameBasePtr(), MergeAliasResults(), llvm::AMDGPUAAResult::pointsToConstantMemory(), llvm::BasicAAResult::pointsToConstantMemory(), promoteLoopAccessesToScalars(), removeAccessedObjects(), shouldInstrumentReadWriteFromAddress(), sortPtrAccesses(), underlyingObjectsAlias(), and llvm::InstCombiner::visitICmpInst().

◆ GetUnderlyingObject() [2/2]

const Value* llvm::GetUnderlyingObject ( const Value V,
const DataLayout DL,
unsigned  MaxLookup = 6 
)
inline

◆ GetUnderlyingObjects()

void llvm::GetUnderlyingObjects ( Value V,
SmallVectorImpl< Value *> &  Objects,
const DataLayout DL,
LoopInfo LI = nullptr,
unsigned  MaxLookup = 6 
)

This method is similar to GetUnderlyingObject except that it can look through phi and select instructions and return multiple objects.

If LoopInfo is passed, loop phis are further analyzed. If a pointer accesses different objects in each iteration, we don't look through the phi node. E.g. consider this loop nest:

int **A; for (i) for (j) { A[i][j] = A[i-1][j] * B[j] }

This is transformed by Load-PRE to stash away A[i] for the next iteration of the outer loop:

Curr = A[0]; // Prev_0 for (i: 1..N) { Prev = Curr; // Prev = PHI (Prev_0, Curr) Curr = A[i]; for (j: 0..N) { Curr[j] = Prev[j] * B[j] } }

Since A[i] and A[i-1] are independent pointers, getUnderlyingObjects should not assume that Curr and Prev share the same underlying object thus it shouldn't look through the phi above.

Definition at line 3720 of file ValueTracking.cpp.

References llvm::SmallVectorBase::empty(), GetUnderlyingObject(), llvm::SmallPtrSetImpl< PtrType >::insert(), llvm::LoopInfoBase< BlockT, LoopT >::isLoopHeader(), isSameUnderlyingObjectInLoop(), P, llvm::SmallVectorImpl< T >::pop_back_val(), llvm::SmallVectorTemplateBase< T, bool >::push_back(), llvm::SmallVectorTemplateBase< T >::push_back(), and SI.

Referenced by AddAliasScopeMetadata(), llvm::GlobalsAAResult::alias(), canLowerToLDG(), computePointerICmp(), getUnderlyingArgReg(), GetUnderlyingObject(), getUnderlyingObjects(), getUnderlyingObjectsForCodeGen(), handleEndBlock(), INITIALIZE_PASS(), and isNoWrap().

◆ getUnderlyingObjectsForCodeGen()

bool llvm::getUnderlyingObjectsForCodeGen ( const Value V,
SmallVectorImpl< Value *> &  Objects,
const DataLayout DL 
)

◆ getUniqueCastUse()

Value * llvm::getUniqueCastUse ( Value Ptr,
Loop Lp,
Type Ty 
)

If a value has only one user that is a CastInst, return it.

Definition at line 161 of file VectorUtils.cpp.

References dyn_cast(), llvm::Value::getType(), and llvm::Value::users().

Referenced by getStrideFromPointer().

◆ getUniqued()

template<class T , class InfoT >
static T* llvm::getUniqued ( DenseSet< T *, InfoT > &  Store,
const typename InfoT::KeyTy &  Key 
)
static

◆ getUniqueModuleId()

std::string llvm::getUniqueModuleId ( Module M)

Produce a unique identifier for this module by taking the MD5 sum of the names of the module's strong external symbols that are not comdat members.

This identifier is normally guaranteed to be unique, or the program would fail to link due to multiply defined symbols.

If the module has no strong external symbols (such a module may still have a semantic effect if it performs global initialization), we cannot produce a unique identifier for this module, so we return the empty string.

Definition at line 284 of file ModuleUtils.cpp.

References F(), llvm::MD5::final(), llvm::AMDGPUISD::IF, llvm::MD5::stringifyResult(), and llvm::MD5::update().

Referenced by createHWAddressSanitizerPass(), and instrumentMaskedLoadOrStore().

◆ getUnlikelySectionPrefix()

const char* llvm::getUnlikelySectionPrefix ( )
inline

Definition at line 38 of file ProfileCommon.h.

◆ GetUnrollMetadata()

MDNode * llvm::GetUnrollMetadata ( MDNode LoopID,
StringRef  Name 
)

Given an llvm.loop loop id metadata node, returns the loop hint metadata node with the given name (for example, "llvm.loop.unroll.count").

If no such metadata node exists, then nullptr is returned.

Definition at line 896 of file LoopUnroll.cpp.

References assert(), dyn_cast(), llvm::StringRef::equals(), llvm::MDNode::getNumOperands(), llvm::MDNode::getOperand(), and llvm::MDString::getString().

Referenced by GetUnrollMetadataForLoop(), and VisitGlobalVariableForEmission().

◆ getValueForSiteInstrProf()

void llvm::getValueForSiteInstrProf ( const void *  R,
InstrProfValueData *  Dst,
uint32_t  K,
uint32_t  S 
)

Definition at line 631 of file InstrProf.cpp.

◆ getValueProfDataFromInst()

bool llvm::getValueProfDataFromInst ( const Instruction Inst,
InstrProfValueKind  ValueKind,
uint32_t  MaxNumValueData,
InstrProfValueData  ValueData[],
uint32_t ActualNumValueData,
uint64_t &  TotalC 
)

Extract the value profile data from Inst which is annotated with value profile meta data.

Return false if there is no value data annotated, otherwise return true.

Definition at line 858 of file InstrProf.cpp.

References llvm::StringRef::equals(), llvm::Instruction::getMetadata(), llvm::MDNode::getNumOperands(), llvm::MDNode::getOperand(), llvm::MDString::getString(), llvm::ConstantInt::getZExtValue(), I, llvm::LLVMContext::MD_prof, Tag, and llvm::Value::Value().

Referenced by llvm::ICallPromotionAnalysis::getPromotionCandidatesForInstruction(), and llvm::CGProfilePass::run().

◆ getVectorIntrinsicIDForCall()

Intrinsic::ID llvm::getVectorIntrinsicIDForCall ( const CallInst CI,
const TargetLibraryInfo TLI 
)

◆ getVRegSubRegDef()

MachineInstr * llvm::getVRegSubRegDef ( const TargetInstrInfo::RegSubRegPair P,
MachineRegisterInfo MRI 
)

Return the defining instruction for a given reg:subreg pair skipping copy like instructions and subreg-manipulation pseudos.

Following another subreg of a reg:subreg isn't supported.

Definition at line 5606 of file SIInstrInfo.cpp.

References assert(), followSubRegDef(), llvm::MachineInstr::getOpcode(), llvm::MachineInstr::getOperand(), getRegSubRegPair(), llvm::MachineRegisterInfo::getVRegDef(), llvm::MachineRegisterInfo::isSSA(), llvm::TargetRegisterInfo::isVirtualRegister(), MI, P, and llvm::TargetInstrInfo::RegSubRegPair::Reg.

Referenced by getDPPOp(), and getRegSubRegPair().

◆ getWeakLeft()

unsigned llvm::getWeakLeft ( const SUnit SU,
bool  isTop 
)

◆ getWeightFromBranchProb()

uint32_t llvm::getWeightFromBranchProb ( const BranchProbability  Prob)
inline

◆ getWiderType()

static Type* llvm::getWiderType ( const DataLayout DL,
Type Ty0,
Type Ty1 
)
static

◆ GetWindowsOSVersion()

llvm::VersionTuple llvm::GetWindowsOSVersion ( )

Returns the Windows version as Major.Minor.0.BuildNumber.

Uses RtlGetVersion or GetVersionEx under the hood depending on what is available. GetVersionEx is deprecated, but this API exposes the build number which can be useful for working around certain kernel bugs.

◆ getWRegFromXReg()

static unsigned llvm::getWRegFromXReg ( unsigned  Reg)
inlinestatic

◆ getX86SubSuperRegister()

unsigned llvm::getX86SubSuperRegister ( unsigned  Reg,
unsigned  Size,
bool  High = false 
)

◆ getX86SubSuperRegisterOrZero()

unsigned llvm::getX86SubSuperRegisterOrZero ( unsigned  Reg,
unsigned  Size,
bool  High = false 
)

Returns the sub or super register of a specific X86 register.

Like getX86SubSuperRegister() but returns 0 on error.

Definition at line 560 of file X86MCTargetDesc.cpp.

References llvm::AArch64CC::AL, llvm::ARCISD::BL, llvm::N86::EAX, llvm::N86::EBX, llvm::N86::ECX, llvm::N86::EDI, llvm::N86::EDX, llvm::N86::ESI, llvm::N86::ESP, and SI.

Referenced by llvm::X86TargetLowering::getRegForInlineAsmConstraint(), and getX86SubSuperRegister().

◆ getXRegFromWReg()

static unsigned llvm::getXRegFromWReg ( unsigned  Reg)
inlinestatic

Definition at line 70 of file AArch64BaseInfo.h.

References Reg.

Referenced by isMatchingOrAlias().

◆ GreatestCommonDivisor64()

uint64_t llvm::GreatestCommonDivisor64 ( uint64_t  A,
uint64_t  B 
)
inline

Return the greatest common divisor of the values using Euclid's algorithm.

Definition at line 563 of file MathExtras.h.

References B, and T.

Referenced by llvm::NVPTXTargetLowering::LowerCall(), llvm::mca::ResourceCycles::operator+=(), ReduceSwitchRange(), and UnrollLoop().

◆ guessSuccessors()

void llvm::guessSuccessors ( const MachineBasicBlock MBB,
SmallVectorImpl< MachineBasicBlock *> &  Result,
bool IsFallthrough 
)

Determine a possible list of successors of a basic block based on the basic block machine operand being used inside the block.

This should give you the correct list of successor blocks in most cases except for things like jump tables where the basic block references can't easily be found. The MIRPRinter will skip printing successors if they match the result of this funciton and the parser will use this function to construct a list if it is missing.

Definition at line 503 of file MIRPrinter.cpp.

References llvm::SmallVectorTemplateCommon< T >::begin(), llvm::MachineFunction::end(), llvm::lltok::equal, llvm::object::Equal, llvm::ilist_node_impl< OptionsT >::getIterator(), llvm::MachineBasicBlock::getParent(), llvm::MachineBasicBlock::hasSuccessorProbabilities(), I, llvm::SmallPtrSetImpl< PtrType >::insert(), is_contained(), MI, llvm::BranchProbability::normalizeProbabilities(), llvm::SmallVectorTemplateBase< T >::push_back(), llvm::NVPTX::PTXCvtMode::RP, llvm::SmallVectorBase::size(), llvm::MachineBasicBlock::succ_begin(), llvm::MachineBasicBlock::succ_end(), and llvm::MachineBasicBlock::succ_size().

Referenced by toString().

◆ GVTOP()

void* llvm::GVTOP ( const GenericValue GV)
inline

◆ handleAllErrors() [1/2]

template<typename... HandlerTs>
void llvm::handleAllErrors ( Error  E,
HandlerTs &&...  Handlers 
)

Behaves the same as handleErrors, except that by contract all errors must be handled by the given handlers (i.e.

there must be no remaining errors after running the handlers, or llvm_unreachable is called).

Definition at line 905 of file Error.h.

References cantFail(), and handleErrors().

Referenced by annotateAllFunctions(), llvm::DWARFContext::dumpWarning(), llvm::object::RelocVisitor::error(), llvm::DWARFDebugNames::NameIndex::getHashArrayEntry(), getMinVisibility(), getNames(), llvm::object::ELFObjectFile< ELFT >::getSectionIndex(), LLVMOptRemarkParserGetNext(), llvm::sampleprof::SampleProfileReaderItaniumRemapper::read(), llvm::legacy::FunctionPassManager::run(), sumEdgeCount(), and toString().

◆ handleAllErrors() [2/2]

void llvm::handleAllErrors ( Error  E)
inline

Check that E is a non-error, then drop it.

If E is an error, llvm_unreachable will be called.

Definition at line 911 of file Error.h.

References cantFail(), and T.

◆ handleErrorImpl() [1/2]

Error llvm::handleErrorImpl ( std::unique_ptr< ErrorInfoBase Payload)
inline

Definition at line 861 of file Error.h.

References Error.

Referenced by handleErrorImpl(), and handleErrors().

◆ handleErrorImpl() [2/2]

template<typename HandlerT , typename... HandlerTs>
Error llvm::handleErrorImpl ( std::unique_ptr< ErrorInfoBase Payload,
HandlerT &&  Handler,
HandlerTs &&...  Handlers 
)

Definition at line 866 of file Error.h.

References llvm::cl::apply(), and handleErrorImpl().

◆ handleErrors()

template<typename... HandlerTs>
Error llvm::handleErrors ( Error  E,
HandlerTs &&...  Hs 
)

Pass the ErrorInfo(s) contained in E to their respective handlers.

Any unhandled errors (or Errors returned by handlers) are re-concatenated and returned. Because this function returns an error, its result must also be checked or returned. If you intend to handle all errors use handleAllErrors (which returns void, and will abort() on unhandled errors) instead.

Definition at line 882 of file Error.h.

References handleErrorImpl(), List, P, and llvm::Error::success().

Referenced by llvm::InstrProfReaderItaniumRemapper< HashTableImpl >::getRecords(), handleAllErrors(), and llvm::lto::localCache().

◆ handleExecNameEncodedBEOpts()

void llvm::handleExecNameEncodedBEOpts ( StringRef  ExecName)

Handle backend options that are encoded in the executable name.

Parses some common backend options out of a specially crafted executable name (argv[0]). For example, a name like llvm-foo-fuzzer–aarch64-gisel might set up an AArch64 triple and the Global ISel selector. This should be called before parseFuzzerCLOpts if calling both.

This is meant to be used for environments like OSS-Fuzz that aren't capable of passing in command line arguments in the normal way.

Definition at line 39 of file FuzzerCLI.cpp.

References llvm::AMDGPU::HSAMD::Kernel::Key::Args, E, errs(), llvm::Triple::getArch(), I, llvm::cl::ParseCommandLineOptions(), and llvm::StringRef::split().

◆ handleExecNameEncodedOptimizerOpts()

void llvm::handleExecNameEncodedOptimizerOpts ( StringRef  ExecName)

Handle optimizer options which are encoded in the executable name.

Same semantics as in 'handleExecNameEncodedBEOpts'.

Definition at line 75 of file FuzzerCLI.cpp.

References llvm::AMDGPU::HSAMD::Kernel::Key::Args, E, errs(), I, llvm::cl::ParseCommandLineOptions(), and llvm::StringRef::split().

◆ handleExpected()

template<typename T , typename RecoveryFtor , typename... HandlerTs>
Expected<T> llvm::handleExpected ( Expected< T ValOrErr,
RecoveryFtor &&  RecoveryPath,
HandlerTs &&...  Handlers 
)

Handle any errors (if present) in an Expected<T>, then try a recovery path.

If the incoming value is a success value it is returned unmodified. If it is a failure value then it the contained error is passed to handleErrors. If handleErrors is able to handle the error then the RecoveryPath functor is called to supply the final result. If handleErrors is not able to handle all errors then the unhandled errors are returned.

This utility enables the follow pattern:

enum FooStrategy { Aggressive, Conservative };
Expected<Foo> foo(FooStrategy S);
auto ResultOrErr =
foo(Aggressive),
[]() { return foo(Conservative); },
[](AggressiveStrategyError&) {
// Implicitly conusme this - we'll recover by using a conservative
// strategy.
});

Definition at line 940 of file Error.h.

◆ hardware_concurrency()

unsigned llvm::hardware_concurrency ( )

Get the number of threads that the current program can execute concurrently.

On some systems std::thread::hardware_concurrency() returns the total number of cores, without taking affinity into consideration. Returns 1 when LLVM is configured with LLVM_ENABLE_THREADS=OFF. Fallback to std::thread::hardware_concurrency() if sched_getaffinity is not available.

Definition at line 76 of file Threading.cpp.

Referenced by call_once(), heavyweight_hardware_concurrency(), and llvm_is_multithreaded().

◆ hasDisableAllTransformsHint()

bool llvm::hasDisableAllTransformsHint ( const Loop L)

◆ hasDistributeTransformation()

TransformationMode llvm::hasDistributeTransformation ( Loop L)

◆ hash_combine()

template<typename ... Ts>
hash_code llvm::hash_combine ( const Ts &...  args)

Combine values into a single hash_code.

This routine accepts a varying number of arguments of any type. It will attempt to combine them into a single hash_code. For user-defined types it attempts to call a

See also
hash_value overload (via ADL) for the type. For integer and pointer types it directly combines their data into the resulting hash_code.

The result is suitable for returning from a user's hash_value implementation for their user-defined type. Consumers of a type should not call this routine, they should instead call 'hash_value'.

Definition at line 601 of file Hashing.h.

References llvm::hashing::detail::hash_combine_recursive_helper::buffer, and llvm::hashing::detail::hash_combine_recursive_helper::combine().

Referenced by llvm::GVNExpression::Expression::dump(), EliminateDuplicatePHINodes(), llvm::InnerLoopVectorizer::fixupIVUsers(), llvm::InlineAsmKeyType::getHash(), llvm::ConstantExprKeyType::getHash(), llvm::DenseMapInfo< wasm::WasmSignature >::getHashValue(), llvm::DenseMapInfo< wasm::WasmGlobalType >::getHashValue(), llvm::DenseMapInfo< BasicBlockEdge >::getHashValue(), llvm::AnonStructTypeKeyInfo::getHashValue(), llvm::DenseMapInfo< MemOpKey >::getHashValue(), llvm::FunctionTypeKeyInfo::getHashValue(), llvm::DenseMapInfo< MemoryLocOrCall >::getHashValue(), llvm::GVNExpression::BasicExpression::getHashValue(), llvm::GVNExpression::MemoryExpression::getHashValue(), llvm::MDNodeKeyImpl< DILocation >::getHashValue(), llvm::MDNodeKeyImpl< GenericDINode >::getHashValue(), llvm::MDNodeKeyImpl< DISubrange >::getHashValue(), llvm::MDNodeKeyImpl< DIEnumerator >::getHashValue(), llvm::MDNodeKeyImpl< DIBasicType >::getHashValue(), llvm::DenseMapInfo< ExitLimitQuery >::getHashValue(), llvm::MDNodeKeyImpl< DIDerivedType >::getHashValue(), llvm::GVNExpression::AggregateValueExpression::getHashValue(), llvm::GVNExpression::PHIExpression::getHashValue(), llvm::MDNodeKeyImpl< DICompositeType >::getHashValue(), llvm::GVNExpression::VariableExpression::getHashValue(), llvm::MDNodeKeyImpl< DISubroutineType >::getHashValue(), llvm::MDNodeKeyImpl< DIFile >::getHashValue(), llvm::GVNExpression::ConstantExpression::getHashValue(), llvm::GVNExpression::UnknownExpression::getHashValue(), llvm::MDNodeKeyImpl< DISubprogram >::getHashValue(), llvm::MDNodeKeyImpl< DILexicalBlock >::getHashValue(), llvm::MDNodeKeyImpl< DILexicalBlockFile >::getHashValue(), llvm::MDNodeKeyImpl< DINamespace >::getHashValue(), llvm::DenseMapInfo< coverage::CounterExpression >::getHashValue(), llvm::MDNodeKeyImpl< DIModule >::getHashValue(), llvm::MDNodeKeyImpl< DITemplateTypeParameter >::getHashValue(), llvm::MDNodeKeyImpl< DITemplateValueParameter >::getHashValue(), llvm::MDNodeKeyImpl< DIGlobalVariable >::getHashValue(), llvm::MDNodeKeyImpl< DILocalVariable >::getHashValue(), llvm::MDNodeKeyImpl< DILabel >::getHashValue(), llvm::MDNodeKeyImpl< DIGlobalVariableExpression >::getHashValue(), llvm::MDNodeKeyImpl< DIObjCProperty >::getHashValue(), llvm::MDNodeKeyImpl< DIImportedEntity >::getHashValue(), llvm::MDNodeKeyImpl< DIMacro >::getHashValue(), llvm::MDNodeKeyImpl< DIMacroFile >::getHashValue(), llvm::DenseMapInfo< CIEKey >::getHashValue(), llvm::DenseMapInfo< SimpleValue >::getTombstoneKey(), llvm::DenseMapInfo< CallValue >::getTombstoneKey(), llvm::PBQP::hash_value(), hash_value(), llvm::PBQP::RegAlloc::hash_value(), llvm::detail::hash_value(), hashInstructionMapping(), hashPartialMapping(), and llvm::IRMover::StructTypeKeyInfo::KeyTy::operator!=().

◆ hash_combine_range()

template<typename InputIteratorT >
hash_code llvm::hash_combine_range ( InputIteratorT  first,
InputIteratorT  last 
)

◆ hash_value() [1/9]

template<typename T >
std::enable_if< is_integral_or_enum< T >::value, hash_code >::type llvm::hash_value ( T  value)

Compute a hash_code for any integer value.

Note that this function is intended to compute the same hash_code for a particular value without regard to the pre-promotion type. This is in contrast to hash_combine which may produce different hash_codes for differing argument types even if they would implicit promote to a common type without changing the value.

Definition at line 632 of file Hashing.h.

References llvm::hashing::detail::hash_integer_value().

◆ hash_value() [2/9]

template<typename T >
hash_code llvm::hash_value ( const T ptr)

Compute a hash_code for a pointer's address.

N.B.: This hashes the address. Not the value and not the type.

Definition at line 639 of file Hashing.h.

References llvm::hashing::detail::hash_integer_value().

◆ hash_value() [3/9]

template<typename T , typename U >
hash_code llvm::hash_value ( const std::pair< T, U > &  arg)

Compute a hash_code for a pair of objects.

Definition at line 647 of file Hashing.h.

References hash_combine().

◆ hash_value() [4/9]

template<typename T >
hash_code llvm::hash_value ( const std::basic_string< T > &  arg)

Compute a hash_code for a standard string.

Definition at line 654 of file Hashing.h.

References hash_combine_range().

◆ hash_value() [5/9]

template<typename T >
hash_code llvm::hash_value ( ArrayRef< T S)

◆ hash_value() [6/9]

hash_code llvm::hash_value ( StringRef  S)

Compute a hash_code for a StringRef.

Definition at line 598 of file StringRef.cpp.

References llvm::StringRef::begin(), llvm::StringRef::end(), and hash_combine_range().

◆ hash_value() [7/9]

hash_code llvm::hash_value ( const MachineOperand MO)

Note that this includes the same information in the hash that isIdenticalTo uses for comparison. It is thus suited for use in hash tables which use that function for equality comparisons only. This must stay exactly in sync with isIdenticalTo above.

Definition at line 328 of file MachineOperand.cpp.

References llvm::MachineOperand::getBlockAddress(), llvm::MachineOperand::getCFIIndex(), llvm::MachineOperand::getCImm(), llvm::MachineOperand::getFPImm(), llvm::MachineOperand::getGlobal(), llvm::MachineOperand::getImm(), llvm::MachineOperand::getIndex(), llvm::MachineOperand::getIntrinsicID(), llvm::MachineOperand::getMBB(), llvm::MachineOperand::getMCSymbol(), llvm::MachineOperand::getMetadata(), llvm::MachineOperand::getOffset(), llvm::MachineOperand::getPredicate(), llvm::MachineOperand::getReg(), llvm::MachineOperand::getRegMask(), llvm::MachineOperand::getSubReg(), llvm::MachineOperand::getSymbolName(), llvm::MachineOperand::getTargetFlags(), llvm::MachineOperand::getType(), hash_combine(), llvm::MachineOperand::isDef(), llvm_unreachable, llvm::MachineOperand::MO_BlockAddress, llvm::MachineOperand::MO_CFIIndex, llvm::MachineOperand::MO_CImmediate, llvm::MachineOperand::MO_ConstantPoolIndex, llvm::MachineOperand::MO_ExternalSymbol, llvm::MachineOperand::MO_FPImmediate, llvm::MachineOperand::MO_FrameIndex, llvm::MachineOperand::MO_GlobalAddress, llvm::MachineOperand::MO_Immediate, llvm::MachineOperand::MO_IntrinsicID, llvm::MachineOperand::MO_JumpTableIndex, llvm::MachineOperand::MO_MachineBasicBlock, llvm::MachineOperand::MO_MCSymbol, llvm::MachineOperand::MO_Metadata, llvm::MachineOperand::MO_Predicate, llvm::MachineOperand::MO_Register, llvm::MachineOperand::MO_RegisterLiveOut, llvm::MachineOperand::MO_RegisterMask, and llvm::MachineOperand::MO_TargetIndex.

◆ hash_value() [8/9]

hash_code llvm::hash_value ( const APFloat Arg)

◆ hash_value() [9/9]

hash_code llvm::hash_value ( const APInt Arg)

◆ hasInlineAsmMemConstraint()

bool llvm::hasInlineAsmMemConstraint ( InlineAsm::ConstraintInfoVector CInfos,
const TargetLowering TLI 
)

hasInlineAsmMemConstraint - Return true if the inline asm instruction being processed uses a memory 'm' constraint.

Definition at line 139 of file Analysis.cpp.

References llvm::TargetLowering::C_Memory, llvm::InlineAsm::ConstraintInfo::Codes, llvm::TargetLowering::getConstraintType(), and llvm::InlineAsm::ConstraintInfo::isIndirect.

Referenced by ComputeLinearIndex().

◆ hasIterationCountInvariantInParent()

bool llvm::hasIterationCountInvariantInParent ( Loop L,
ScalarEvolution SE 
)

Check inner loop (L) backedge count is known to be invariant on all iterations of its outer loop.

If the loop has no parent, this is trivially true.

Definition at line 649 of file LoopUtils.cpp.

References llvm::ScalarEvolution::getExitCount(), llvm::ScalarEvolution::getLoopDisposition(), llvm::LoopBase< BlockT, LoopT >::getLoopLatch(), llvm::LoopBase< BlockT, LoopT >::getParentLoop(), llvm::SCEV::getType(), llvm::Type::isIntegerTy(), llvm::ARM_MB::LD, and llvm::ScalarEvolution::LoopInvariant.

Referenced by isSafeToUnrollAndJam().

◆ hasLICMVersioningTransformation()

TransformationMode llvm::hasLICMVersioningTransformation ( Loop L)

◆ hasNItems()

template<typename IterTy >
bool llvm::hasNItems ( IterTy &&  Begin,
IterTy &&  End,
unsigned  N,
typename std::enable_if< !std::is_same< typename std::iterator_traits< typename std::remove_reference< decltype(Begin)>::type >::iterator_category, std::random_access_iterator_tag >::value, void >::type = nullptr 
)

Return true if the sequence [Begin, End) has exactly N items.

Runs in O(N) time. Not meant for use with random-access iterators.

Definition at line 1549 of file STLExtras.h.

References N.

Referenced by llvm::BasicBlock::hasNPredecessors(), and llvm::Value::hasNUses().

◆ hasNItemsOrMore()

template<typename IterTy >
bool llvm::hasNItemsOrMore ( IterTy &&  Begin,
IterTy &&  End,
unsigned  N,
typename std::enable_if< !std::is_same< typename std::iterator_traits< typename std::remove_reference< decltype(Begin)>::type >::iterator_category, std::random_access_iterator_tag >::value, void >::type = nullptr 
)

Return true if the sequence [Begin, End) has N or more items.

Runs in O(N) time. Not meant for use with random-access iterators.

Definition at line 1566 of file STLExtras.h.

References N.

Referenced by llvm::BasicBlock::hasNPredecessorsOrMore(), and llvm::Value::hasNUsesOrMore().

◆ hasOutsideLoopUser()

static bool llvm::hasOutsideLoopUser ( const Loop TheLoop,
Instruction Inst,
SmallPtrSetImpl< Value *> &  AllowedExit 
)
static

Check that the instruction has outside loop users and is not an identified reduction variable.

Definition at line 436 of file LoopVectorizationLegality.cpp.

References llvm::LoopBase< BlockT, LoopT >::contains(), llvm::SmallPtrSetImpl< PtrType >::count(), dbgs(), LLVM_DEBUG, and llvm::Value::users().

Referenced by llvm::LoopVectorizationLegality::isUniform().

◆ hasUnaryFloatFn()

bool llvm::hasUnaryFloatFn ( const TargetLibraryInfo TLI,
Type Ty,
LibFunc  DoubleFn,
LibFunc  FloatFn,
LibFunc  LongDoubleFn 
)

Check whether the overloaded unary floating point function corresponding to Ty is available.

Definition at line 753 of file BuildLibCalls.cpp.

References llvm::Type::DoubleTyID, llvm::Type::FloatTyID, llvm::Type::getTypeID(), llvm::Type::HalfTyID, and llvm::TargetLibraryInfo::has().

Referenced by getPow(), getSqrtCall(), getUnaryFloatFn(), and llvm::InstCombiner::visitFDiv().

◆ hasUnrollAndJamTransformation()

TransformationMode llvm::hasUnrollAndJamTransformation ( Loop L)

◆ hasUnrollTransformation()

TransformationMode llvm::hasUnrollTransformation ( Loop L)

◆ hasUTF16ByteOrderMark()

bool llvm::hasUTF16ByteOrderMark ( ArrayRef< char SrcBytes)

Returns true if a blob of text starts with a UTF-16 big or little endian byte order mark.

Definition at line 81 of file ConvertUTFWrapper.cpp.

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

Referenced by convertUTF8Sequence(), and ExpandResponseFile().

◆ HasValue()

template<typename M >
detail::ValueMatchesPoly<M> llvm::HasValue ( Matcher)

◆ hasVectorInstrinsicScalarOpd()

bool llvm::hasVectorInstrinsicScalarOpd ( Intrinsic::ID  ID,
unsigned  ScalarOpdIdx 
)

Identifies if the intrinsic has a scalar operand.

It checks for ctlz,cttz and powi special intrinsics whose argument is scalar.

It check for ctlz,cttz and powi special intrinsics whose argument is scalar.

Definition at line 89 of file VectorUtils.cpp.

References llvm::Intrinsic::ctlz, llvm::Intrinsic::cttz, and llvm::Intrinsic::powi.

Referenced by llvm::DOTGraphTraits< BoUpSLP * >::getNodeAttributes(), getScalarIntrinsicDeclaration(), InTreeUserNeedToExtract(), inversePermutation(), llvm::LoopVectorizationLegality::isUniform(), and llvm::InnerLoopVectorizer::widenInstruction().

◆ hasVectorizeTransformation()

TransformationMode llvm::hasVectorizeTransformation ( Loop L)

◆ haveNoCommonBitsSet()

bool llvm::haveNoCommonBitsSet ( const Value LHS,
const Value RHS,
const DataLayout DL,
AssumptionCache AC = nullptr,
const Instruction CxtI = nullptr,
const DominatorTree DT = nullptr,
bool  UseInstrInfo = true 
)

◆ heavyweight_hardware_concurrency()

unsigned llvm::heavyweight_hardware_concurrency ( )

Get the amount of currency to use for tasks requiring significant memory or other resources.

Currently based on physical cores, if available for the host system, otherwise falls back to thread::hardware_concurrency(). Returns 1 when LLVM is configured with LLVM_ENABLE_THREADS=OFF

Definition at line 63 of file Threading.cpp.

References llvm::sys::getHostNumPhysicalCores(), and hardware_concurrency().

Referenced by call_once(), llvm::lto::InputFile::getName(), and llvm_is_multithreaded().

◆ HexagonGetLastSlot()

unsigned llvm::HexagonGetLastSlot ( )

◆ HexagonLowerToMC()

void llvm::HexagonLowerToMC ( const MCInstrInfo MCII,
const MachineInstr MI,
MCInst MCB,
HexagonAsmPrinter AP 
)

Definition at line 98 of file HexagonMCInstLower.cpp.

References llvm::MCInst::addOperand(), assert(), llvm::APFloat::bitcastToAPInt(), llvm::HexagonMCExpr::create(), llvm::MCConstantExpr::create(), llvm::MCSymbolRefExpr::create(), llvm::MCOperand::createExpr(), llvm::MCOperand::createInst(), llvm::MCOperand::createReg(), errs(), llvm::HexagonMCInstrInfo::extendIfNeeded(), llvm::MachineOperand::getBlockAddress(), llvm::AsmPrinter::GetBlockAddressSymbol(), llvm::AsmPrinter::GetCPISymbol(), llvm::AsmPrinter::GetExternalSymbolSymbol(), llvm::MachineOperand::getFPImm(), llvm::MachineOperand::getGlobal(), llvm::MachineOperand::getImm(), llvm::MachineOperand::getIndex(), llvm::AsmPrinter::GetJTISymbol(), llvm::MachineOperand::getMBB(), llvm::MachineInstr::getNumOperands(), llvm::MCInst::getOpcode(), llvm::MachineInstr::getOpcode(), llvm::MachineInstr::getOperand(), llvm::APInt::getRawData(), llvm::MachineOperand::getReg(), llvm::AsmPrinter::getSymbol(), llvm::MachineBasicBlock::getSymbol(), llvm::MachineOperand::getSymbolName(), GetSymbolRef(), llvm::MachineOperand::getTargetFlags(), llvm::MachineOperand::getType(), llvm::ConstantFP::getValueAPF(), llvm::HexagonAsmPrinter::HexagonProcessInstruction(), llvm::HexagonII::HMOTF_ConstExtended, llvm::MachineOperand::isImplicit(), llvm_unreachable, llvm::MachineOperand::MO_BlockAddress, llvm::MachineOperand::MO_ConstantPoolIndex, llvm::MachineOperand::MO_ExternalSymbol, llvm::MachineOperand::MO_FPImmediate, llvm::MachineOperand::MO_GlobalAddress, llvm::MachineOperand::MO_Immediate, llvm::MachineOperand::MO_JumpTableIndex, llvm::MachineOperand::MO_MachineBasicBlock, llvm::MachineOperand::MO_Register, llvm::MachineOperand::MO_RegisterMask, llvm::AsmPrinter::OutContext, llvm::MachineInstr::print(), llvm::HexagonMCInstrInfo::setInnerLoop(), llvm::HexagonMCInstrInfo::setMustExtend(), llvm::MCInst::setOpcode(), and llvm::HexagonMCInstrInfo::setOuterLoop().

Referenced by llvm::HexagonAsmPrinter::EmitInstruction().

◆ HexagonMCShuffle() [1/3]

bool llvm::HexagonMCShuffle ( MCContext Context,
bool  Fatal,
MCInstrInfo const MCII,
MCSubtargetInfo const STI,
MCInst MCB 
)

◆ HexagonMCShuffle() [2/3]

bool llvm::HexagonMCShuffle ( MCContext Context,
MCInstrInfo const MCII,
MCSubtargetInfo const STI,
MCInst MCB,
MCInst const AddMI,
int  fixupCount 
)

◆ HexagonMCShuffle() [3/3]

bool llvm::HexagonMCShuffle ( MCContext Context,
MCInstrInfo const MCII,
MCSubtargetInfo const STI,
MCInst MCB,
SmallVector< DuplexCandidate, 8 >  possibleDuplexes 
)

◆ hexdigit()

char llvm::hexdigit ( unsigned  X,
bool  LowerCase = false 
)
inline

hexdigit - Return the hexadecimal character for the given number X (which should be less than 16).

Definition at line 37 of file StringExtras.h.

References X.

Referenced by llvm::MCFragment::dump(), llvm::dwarf::CIE::dump(), printEscapedString(), printMetadataIdentifier(), utohexstr(), write_hex(), and llvm::yaml::BinaryRef::writeAsHex().

◆ hexDigitValue()

unsigned llvm::hexDigitValue ( char  C)
inline

Interpret the given character C as a hexadecimal digit and return its value.

If C is not a valid hex digit, -1U is returned.

Definition at line 69 of file StringExtras.h.

Referenced by llvm::detail::IEEEFloat::convertFromZeroExtendedInteger(), llvm::detail::IEEEFloat::convertToHexString(), hexFromNibbles(), isHexDigit(), trailingHexadecimalFraction(), UnEscapeLexed(), and unescapeQuotedString().

◆ hexFromNibbles()

uint8_t llvm::hexFromNibbles ( char  MSB,
char  LSB 
)
inline

Definition at line 161 of file StringExtras.h.

References assert(), and hexDigitValue().

Referenced by fromHex().

◆ HI22()

static unsigned llvm::HI22 ( int64_t  imm)
inlinestatic

Definition at line 150 of file Sparc.h.

Referenced by HIX22(), replaceFI(), and llvm::SparcFrameLowering::SparcFrameLowering().

◆ Hi_32()

constexpr uint32_t llvm::Hi_32 ( uint64_t  Value)
inline

Return the high 32 bits of a 64 bit value.

Definition at line 284 of file MathExtras.h.

Referenced by bitOpWithConstantIsReducible(), isDebug(), KnuthDiv(), makeCombineInst(), and llvm::AMDGPUTargetLowering::PerformDAGCombine().

◆ HIX22()

static unsigned llvm::HIX22 ( int64_t  imm)
inlinestatic

Definition at line 158 of file Sparc.h.

References HI22().

Referenced by replaceFI(), and llvm::SparcFrameLowering::SparcFrameLowering().

◆ hoistAllInstructionsInto()

void llvm::hoistAllInstructionsInto ( BasicBlock DomBlock,
Instruction InsertPt,
BasicBlock BB 
)

Hoist all of the instructions in the IfBlock to the dominant block DomBlock, by moving its instructions to the insertion point InsertPt.

The moved instructions receive the insertion point debug location values (DILocations) and their debug intrinsic instructions (dbg.values) are removed.

Definition at line 2529 of file Local.cpp.

References llvm::BasicBlock::begin(), dropDebugUsers(), llvm::Instruction::dropUnknownNonDebugMetadata(), llvm::BasicBlock::end(), llvm::Instruction::eraseFromParent(), llvm::Instruction::getDebugLoc(), llvm::BasicBlock::getInstList(), llvm::ilist_node_impl< OptionsT >::getIterator(), llvm::BasicBlock::getTerminator(), I, llvm::ARM_PROC::IE, llvm::Value::isUsedByMetadata(), P, llvm::Instruction::setDebugLoc(), and llvm::iplist_impl< IntrusiveListT, TraitsT >::splice().

Referenced by FoldTwoEntryPHINode(), and getKnownAlignment().

◆ hoistRegion()

bool llvm::hoistRegion ( DomTreeNode N,
AliasAnalysis AA,
LoopInfo LI,
DominatorTree DT,
TargetLibraryInfo TLI,
Loop CurLoop,
AliasSetTracker CurAST,
MemorySSAUpdater MSSAU,
ICFLoopSafetyInfo SafetyInfo,
OptimizationRemarkEmitter ORE 
)

Walk the specified region of the CFG (defined by all blocks dominated by the specified block, and that are in the current loop) in depth first order w.r.t the DominatorTree.

This allows us to visit definitions before uses, allowing us to hoist a loop body in one pass without iteration. Takes DomTreeNode, AliasAnalysis, LoopInfo, DominatorTree, DataLayout, TargetLibraryInfo, Loop, AliasSet information for all instructions of the loop and loop safety information as arguments. Diagnostics is emitted via ORE. It returns changed status.

This allows us to visit definitions before uses, allowing us to hoist a loop body in one pass without iteration.

Definition at line 717 of file LICM.cpp.

References all_of(), assert(), C, canSinkOrHoistInst(), ConstantFoldInstruction(), ControlFlowHoisting, llvm::AliasSetTracker::copyValue(), dbgs(), llvm::ICFLoopSafetyInfo::doesNotWriteMemoryBefore(), llvm::DominatorTree::dominates(), E, eraseInstruction(), llvm::CallingConv::Fast, llvm::ConstantFP::get(), llvm::DomTreeNodeBase< NodeT >::getBlock(), llvm::Module::getDataLayout(), llvm::Instruction::getFastMathFlags(), llvm::LoopBase< BlockT, LoopT >::getLoopPreheader(), llvm::MemorySSAUpdater::getMemorySSA(), llvm::Instruction::getModule(), llvm::Value::getName(), llvm::DominatorTreeBase< NodeT, IsPostDom >::getNode(), llvm::Instruction::getOpcode(), llvm::User::getOperand(), llvm::Instruction::getParent(), llvm::BasicBlock::getTerminator(), llvm::Instruction::hasAllowReciprocal(), llvm::Loop::hasLoopInvariantOperands(), hoist(), I, llvm::ICFLoopSafetyInfo::insertInstructionTo(), inSubLoop(), llvm::ICFLoopSafetyInfo::isGuaranteedToExecute(), isGuard(), isInstructionTriviallyDead(), llvm::Loop::isLoopInvariant(), isSafeToExecuteUnconditionally(), LLVM_DEBUG, llvm::PatternMatch::match(), moveInstructionBefore(), llvm::LoopBlocksRPO::perform(), llvm::SmallVectorTemplateBase< T >::push_back(), llvm::Value::replaceAllUsesWith(), reverse(), llvm::Value::use_empty(), llvm::DominatorTreeBase< NodeT, IsPostDom >::verify(), llvm::LoopInfoBase< BlockT, LoopT >::verify(), VerifyMemorySSA, and llvm::MemorySSA::verifyMemorySSA().

Referenced by createLICMPass().

◆ HUerrBound()

static unsigned int llvm::HUerrBound ( bool  inexactMultiply,
unsigned int  HUerr1,
unsigned int  HUerr2 
)
static

Definition at line 475 of file APFloat.cpp.

References assert().

Referenced by llvm::detail::IEEEFloat::convertFromZeroExtendedInteger().

◆ identify_magic() [1/2]

file_magic llvm::identify_magic ( StringRef  magic)

◆ identify_magic() [2/2]

std::error_code llvm::identify_magic ( const Twine path,
file_magic result 
)

Get and identify path's type based on its content.

Parameters
pathInput path.
resultSet to the type of file, or file_magic::unknown.
Returns
errc::success if result has been successfully set, otherwise a platform-specific error_code.

Definition at line 208 of file Magic.cpp.

References llvm::MemoryBuffer::getFile(), and identify_magic().

◆ idf_begin()

template<class T >
idf_iterator<T> llvm::idf_begin ( const T G)

◆ idf_end()

template<class T >
idf_iterator<T> llvm::idf_end ( const T G)

◆ idf_ext_begin()

template<class T , class SetTy >
idf_ext_iterator<T, SetTy> llvm::idf_ext_begin ( const T G,
SetTy S 
)

◆ idf_ext_end()

template<class T , class SetTy >
idf_ext_iterator<T, SetTy> llvm::idf_ext_end ( const T G,
SetTy S 
)

◆ inconvertibleErrorCode()

std::error_code llvm::inconvertibleErrorCode ( )

The value returned by this function can be returned from convertToErrorCode for Error values where no sensible translation to std::error_code exists.

It should only be used in this situation, and should never be used where a sensible conversion to std::error_code is available, as attempts to convert to/from this error will result in a fatal error. (i.e. it is a programmatic error to try to convert such a value).

Definition at line 78 of file Error.cpp.

Referenced by llvm::OrcCBindingsStack::addIRModuleLazy(), llvm::orc::LLJIT::applyDataLayout(), checkParametrizedPassName(), llvm::BinaryStreamError::convertToErrorCode(), llvm::mca::InstructionError< T >::convertToErrorCode(), llvm::SymbolRemappingParseError::convertToErrorCode(), llvm::DWARFDebugNames::SentinelError::convertToErrorCode(), llvm::json::ParseError::convertToErrorCode(), llvm::orc::LLLazyJIT::Create(), createError(), llvm::orc::createLocalCompileCallbackManager(), llvm::orc::createLocalLazyCallThroughManager(), llvm::orc::JITTargetMachineBuilder::createTargetMachine(), llvm::RuntimeDyldMachOAArch64::decodeAddend(), llvm::RuntimeDyldMachOARM::decodeAddend(), llvm::orc::JITCompileCallbackManager::executeCompileCallback(), llvm::RuntimeDyldImpl::finalizeAsync(), llvm::pdb::hashTagRecord(), jitLinkForORC(), llvm::PassPlugin::Load(), llvm::orc::DynamicLibrarySearchGenerator::Load(), llvm::PassBuilder::parseAAPipeline(), parseCachePruningPolicy(), parseDuration(), llvm::PassBuilder::parsePassPipeline(), llvm::LinkDiagnosticInfo::print(), llvm::RuntimeDyldMachOAArch64::processRelocationRef(), llvm::irsymtab::readBitcode(), and llvm::MCDwarfLineTableHeader::tryGetFile().

◆ inferLibFuncAttributes() [1/2]

bool llvm::inferLibFuncAttributes ( Function F,
const TargetLibraryInfo TLI 
)

◆ inferLibFuncAttributes() [2/2]

bool llvm::inferLibFuncAttributes ( Module M,
StringRef  Name,
const TargetLibraryInfo TLI 
)

Definition at line 124 of file BuildLibCalls.cpp.

References F(), llvm::Module::getFunction(), and inferLibFuncAttributes().

◆ initializeAAEvalLegacyPassPass()

void llvm::initializeAAEvalLegacyPassPass ( PassRegistry )

◆ initializeAArch64A53Fix835769Pass()

void llvm::initializeAArch64A53Fix835769Pass ( PassRegistry )

◆ initializeAArch64A57FPLoadBalancingPass()

void llvm::initializeAArch64A57FPLoadBalancingPass ( PassRegistry )

◆ initializeAArch64AdvSIMDScalarPass()

void llvm::initializeAArch64AdvSIMDScalarPass ( PassRegistry )

◆ initializeAArch64BranchTargetsPass()

void llvm::initializeAArch64BranchTargetsPass ( PassRegistry )

◆ initializeAArch64CollectLOHPass()

void llvm::initializeAArch64CollectLOHPass ( PassRegistry )

◆ initializeAArch64CompressJumpTablesPass()

void llvm::initializeAArch64CompressJumpTablesPass ( PassRegistry )

◆ initializeAArch64CondBrTuningPass()

void llvm::initializeAArch64CondBrTuningPass ( PassRegistry )

◆ initializeAArch64ConditionalComparesPass()

void llvm::initializeAArch64ConditionalComparesPass ( PassRegistry )

◆ initializeAArch64ConditionOptimizerPass()

void llvm::initializeAArch64ConditionOptimizerPass ( PassRegistry )

◆ initializeAArch64DeadRegisterDefinitionsPass()

void llvm::initializeAArch64DeadRegisterDefinitionsPass ( PassRegistry )

◆ initializeAArch64ExpandPseudoPass()

void llvm::initializeAArch64ExpandPseudoPass ( PassRegistry )

◆ initializeAArch64LoadStoreOptPass()

void llvm::initializeAArch64LoadStoreOptPass ( PassRegistry )

◆ initializeAArch64PreLegalizerCombinerPass()

void llvm::initializeAArch64PreLegalizerCombinerPass ( PassRegistry )

◆ initializeAArch64PromoteConstantPass()

void llvm::initializeAArch64PromoteConstantPass ( PassRegistry )

◆ initializeAArch64RedundantCopyEliminationPass()

void llvm::initializeAArch64RedundantCopyEliminationPass ( PassRegistry )

◆ initializeAArch64SIMDInstrOptPass()

void llvm::initializeAArch64SIMDInstrOptPass ( PassRegistry )

◆ initializeAArch64SpeculationHardeningPass()

void llvm::initializeAArch64SpeculationHardeningPass ( PassRegistry )

◆ initializeAArch64StorePairSuppressPass()

void llvm::initializeAArch64StorePairSuppressPass ( PassRegistry )

◆ initializeAAResultsWrapperPassPass()

void llvm::initializeAAResultsWrapperPassPass ( PassRegistry )

◆ initializeADCELegacyPassPass()

void llvm::initializeADCELegacyPassPass ( PassRegistry )

◆ initializeAddDiscriminatorsLegacyPassPass()

void llvm::initializeAddDiscriminatorsLegacyPassPass ( PassRegistry )

◆ initializeAddressSanitizerModulePass()

void llvm::initializeAddressSanitizerModulePass ( PassRegistry )

◆ initializeAddressSanitizerPass()

void llvm::initializeAddressSanitizerPass ( PassRegistry )

◆ initializeAggressiveInstCombine()

aggressive Combine pattern based false void llvm::initializeAggressiveInstCombine ( PassRegistry Registry)

Initialize all passes linked into the AggressiveInstCombine library.

Definition at line 338 of file AggressiveInstCombine.cpp.

References initializeAggressiveInstCombinerLegacyPassPass().

◆ initializeAggressiveInstCombinerLegacyPassPass()

void llvm::initializeAggressiveInstCombinerLegacyPassPass ( PassRegistry )

◆ initializeAliasSetPrinterPass()

void llvm::initializeAliasSetPrinterPass ( PassRegistry )

◆ initializeAlignmentFromAssumptionsPass()

void llvm::initializeAlignmentFromAssumptionsPass ( PassRegistry )

Referenced by initializeScalarOpts().

◆ InitializeAllAsmParsers()

void llvm::InitializeAllAsmParsers ( )
inline

InitializeAllAsmParsers - The main program should call this function if it wants all asm parsers that LLVM is configured to support, to make them available via the TargetRegistry.

It is legal for a client to make multiple calls to this function.

Definition at line 96 of file TargetSelect.h.

◆ InitializeAllAsmPrinters()

void llvm::InitializeAllAsmPrinters ( )
inline

InitializeAllAsmPrinters - The main program should call this function if it wants all asm printers that LLVM is configured to support, to make them available via the TargetRegistry.

It is legal for a client to make multiple calls to this function.

Definition at line 86 of file TargetSelect.h.

◆ InitializeAllDisassemblers()

void llvm::InitializeAllDisassemblers ( )
inline

InitializeAllDisassemblers - The main program should call this function if it wants all disassemblers that LLVM is configured to support, to make them available via the TargetRegistry.

It is legal for a client to make multiple calls to this function.

Definition at line 106 of file TargetSelect.h.

◆ InitializeAllTargetInfos()

void llvm::InitializeAllTargetInfos ( )
inline

InitializeAllTargetInfos - The main program should call this function if it wants access to all available targets that LLVM is configured to support, to make them available via the TargetRegistry.

It is legal for a client to make multiple calls to this function.

Definition at line 53 of file TargetSelect.h.

Referenced by InitializeAllTargets().

◆ InitializeAllTargetMCs()

void llvm::InitializeAllTargetMCs ( )
inline

InitializeAllTargetMCs - The main program should call this function if it wants access to all available target MC that LLVM is configured to support, to make them available via the TargetRegistry.

It is legal for a client to make multiple calls to this function.

Definition at line 76 of file TargetSelect.h.

◆ InitializeAllTargets()

void llvm::InitializeAllTargets ( )
inline

InitializeAllTargets - The main program should call this function if it wants access to all available target machines that LLVM is configured to support, to make them available via the TargetRegistry.

It is legal for a client to make multiple calls to this function.

Definition at line 63 of file TargetSelect.h.

References InitializeAllTargetInfos().

◆ initializeAlwaysInlinerLegacyPassPass()

void llvm::initializeAlwaysInlinerLegacyPassPass ( PassRegistry )

◆ initializeAMDGPUAAWrapperPassPass()

void llvm::initializeAMDGPUAAWrapperPassPass ( PassRegistry )

◆ initializeAMDGPUAlwaysInlinePass()

void llvm::initializeAMDGPUAlwaysInlinePass ( PassRegistry )

◆ initializeAMDGPUAnnotateKernelFeaturesPass()

void llvm::initializeAMDGPUAnnotateKernelFeaturesPass ( PassRegistry )

◆ initializeAMDGPUAnnotateUniformValuesPass()

void llvm::initializeAMDGPUAnnotateUniformValuesPass ( PassRegistry )

◆ initializeAMDGPUArgumentUsageInfoPass()

void llvm::initializeAMDGPUArgumentUsageInfoPass ( PassRegistry )

◆ initializeAMDGPUAtomicOptimizerPass()

void llvm::initializeAMDGPUAtomicOptimizerPass ( PassRegistry )

◆ initializeAMDGPUCFGStructurizerPass()

void llvm::initializeAMDGPUCFGStructurizerPass ( PassRegistry )

◆ initializeAMDGPUCodeGenPreparePass()

void llvm::initializeAMDGPUCodeGenPreparePass ( PassRegistry )

◆ initializeAMDGPUDAGToDAGISelPass()

void llvm::initializeAMDGPUDAGToDAGISelPass ( PassRegistry )

◆ initializeAMDGPUExternalAAWrapperPass()

void llvm::initializeAMDGPUExternalAAWrapperPass ( PassRegistry )

◆ initializeAMDGPUFixFunctionBitcastsPass()

void llvm::initializeAMDGPUFixFunctionBitcastsPass ( PassRegistry )

◆ initializeAMDGPUInlinerPass()

void llvm::initializeAMDGPUInlinerPass ( PassRegistry )

◆ initializeAMDGPULowerIntrinsicsPass()

void llvm::initializeAMDGPULowerIntrinsicsPass ( PassRegistry )

◆ initializeAMDGPULowerKernelArgumentsPass()

void llvm::initializeAMDGPULowerKernelArgumentsPass ( PassRegistry )

◆ initializeAMDGPULowerKernelAttributesPass()

void llvm::initializeAMDGPULowerKernelAttributesPass ( PassRegistry )

◆ initializeAMDGPUMachineCFGStructurizerPass()

void llvm::initializeAMDGPUMachineCFGStructurizerPass ( PassRegistry )

Referenced by createBBSelectReg().

◆ initializeAMDGPUOpenCLEnqueuedBlockLoweringPass()

void llvm::initializeAMDGPUOpenCLEnqueuedBlockLoweringPass ( PassRegistry )

◆ initializeAMDGPUPerfHintAnalysisPass()

void llvm::initializeAMDGPUPerfHintAnalysisPass ( PassRegistry )

◆ initializeAMDGPUPromoteAllocaPass()

void llvm::initializeAMDGPUPromoteAllocaPass ( PassRegistry )

◆ initializeAMDGPURewriteOutArgumentsPass()

void llvm::initializeAMDGPURewriteOutArgumentsPass ( PassRegistry )

◆ initializeAMDGPUSimplifyLibCallsPass()

void llvm::initializeAMDGPUSimplifyLibCallsPass ( PassRegistry )

◆ initializeAMDGPUUnifyDivergentExitNodesPass()

void llvm::initializeAMDGPUUnifyDivergentExitNodesPass ( PassRegistry )

◆ initializeAMDGPUUnifyMetadataPass()

void llvm::initializeAMDGPUUnifyMetadataPass ( PassRegistry )

◆ initializeAMDGPUUseNativeCallsPass()

void llvm::initializeAMDGPUUseNativeCallsPass ( PassRegistry )

◆ initializeAnalysis()

void llvm::initializeAnalysis ( PassRegistry Registry)

Initialize all passes linked into the Analysis library.

initializeAnalysis - Initialize all passes linked into the Analysis library.

Definition at line 22 of file Analysis.cpp.

References initializeAAEvalLegacyPassPass(), initializeAAResultsWrapperPassPass(), initializeAliasSetPrinterPass(), initializeBasicAAWrapperPassPass(), initializeBlockFrequencyInfoWrapperPassPass(), initializeBranchProbabilityInfoWrapperPassPass(), initializeCallGraphDOTPrinterPass(), initializeCallGraphPrinterLegacyPassPass(), initializeCallGraphViewerPass(), initializeCallGraphWrapperPassPass(), initializeCFGOnlyPrinterLegacyPassPass(), initializeCFGOnlyViewerLegacyPassPass(), initializeCFGPrinterLegacyPassPass(), initializeCFGViewerLegacyPassPass(), initializeCFLAndersAAWrapperPassPass(), initializeCFLSteensAAWrapperPassPass(), initializeCostModelAnalysisPass(), initializeDelinearizationPass(), initializeDemandedBitsWrapperPassPass(), initializeDependenceAnalysisWrapperPassPass(), initializeDominanceFrontierWrapperPassPass(), initializeDomOnlyPrinterPass(), initializeDomOnlyViewerPass(), initializeDomPrinterPass(), initializeDomViewerPass(), initializeGlobalsAAWrapperPassPass(), initializeInstCountPass(), initializeIntervalPartitionPass(), initializeIVUsersWrapperPassPass(), initializeLazyBlockFrequencyInfoPassPass(), initializeLazyBranchProbabilityInfoPassPass(), initializeLazyValueInfoPrinterPass(), initializeLazyValueInfoWrapperPassPass(), initializeLCSSAVerificationPassPass(), initializeLegacyDivergenceAnalysisPass(), initializeLintPass(), initializeLoopInfoWrapperPassPass(), initializeMemDepPrinterPass(), initializeMemDerefPrinterPass(), initializeMemoryDependenceWrapperPassPass(), initializeMemorySSAPrinterLegacyPassPass(), initializeMemorySSAWrapperPassPass(), initializeModuleDebugInfoPrinterPass(), initializeModuleSummaryIndexWrapperPassPass(), initializeMustExecutePrinterPass(), initializeObjCARCAAWrapperPassPass(), initializeOptimizationRemarkEmitterWrapperPassPass(), initializePhiValuesWrapperPassPass(), initializePostDominatorTreeWrapperPassPass(), initializePostDomOnlyPrinterPass(), initializePostDomOnlyViewerPass(), initializePostDomPrinterPass(), initializePostDomViewerPass(), initializeRegionInfoPassPass(), initializeRegionOnlyPrinterPass(), initializeRegionOnlyViewerPass(), initializeRegionPrinterPass(), initializeRegionViewerPass(), initializeScalarEvolutionWrapperPassPass(), initializeSCEVAAWrapperPassPass(), initializeScopedNoAliasAAWrapperPassPass(), initializeStackSafetyGlobalInfoWrapperPassPass(), initializeStackSafetyInfoWrapperPassPass(), initializeTargetTransformInfoWrapperPassPass(), and initializeTypeBasedAAWrapperPassPass().

Referenced by LLVMInitializeAnalysis(), and LLVMInitializeIPA().

◆ initializeARCBranchFinalizePass()

void llvm::initializeARCBranchFinalizePass ( PassRegistry Registry)

◆ initializeArgPromotionPass()

void llvm::initializeArgPromotionPass ( PassRegistry )

◆ initializeARMCodeGenPreparePass()

void llvm::initializeARMCodeGenPreparePass ( PassRegistry )

Referenced by LLVMInitializeARMTarget().

◆ initializeARMConstantIslandsPass()

void llvm::initializeARMConstantIslandsPass ( PassRegistry )

Referenced by LLVMInitializeARMTarget().

◆ initializeARMExecutionDomainFixPass()

void llvm::initializeARMExecutionDomainFixPass ( PassRegistry )

Referenced by LLVMInitializeARMTarget().

◆ initializeARMExpandPseudoPass()

void llvm::initializeARMExpandPseudoPass ( PassRegistry )

Referenced by LLVMInitializeARMTarget().

◆ initializeARMLoadStoreOptPass()

void llvm::initializeARMLoadStoreOptPass ( PassRegistry )

Referenced by LLVMInitializeARMTarget().

◆ initializeARMParallelDSPPass()

void llvm::initializeARMParallelDSPPass ( PassRegistry )

Referenced by LLVMInitializeARMTarget().

◆ initializeARMPreAllocLoadStoreOptPass()

void llvm::initializeARMPreAllocLoadStoreOptPass ( PassRegistry )

Referenced by LLVMInitializeARMTarget().

◆ initializeAssumptionCacheTrackerPass()

void llvm::initializeAssumptionCacheTrackerPass ( PassRegistry )

◆ initializeAtomicExpandPass()

void llvm::initializeAtomicExpandPass ( PassRegistry )

Referenced by initializeCodeGen().

◆ initializeAVRExpandPseudoPass()

void llvm::initializeAVRExpandPseudoPass ( PassRegistry )

Referenced by LLVMInitializeAVRTarget().

◆ initializeAVRRelaxMemPass()

void llvm::initializeAVRRelaxMemPass ( PassRegistry )

Referenced by LLVMInitializeAVRTarget().

◆ initializeBarrierNoopPass()

void llvm::initializeBarrierNoopPass ( PassRegistry )

Referenced by initializeIPO().

◆ initializeBasicAAWrapperPassPass()

void llvm::initializeBasicAAWrapperPassPass ( PassRegistry )

◆ initializeBDCELegacyPassPass()

void llvm::initializeBDCELegacyPassPass ( PassRegistry )

◆ initializeBlockExtractorPass()

void llvm::initializeBlockExtractorPass ( PassRegistry )

Referenced by initializeIPO().

◆ initializeBlockFrequencyInfoWrapperPassPass()

void llvm::initializeBlockFrequencyInfoWrapperPassPass ( PassRegistry )

◆ initializeBoundsCheckingLegacyPassPass()

void llvm::initializeBoundsCheckingLegacyPassPass ( PassRegistry )

◆ initializeBPFMIPeepholePass()

void llvm::initializeBPFMIPeepholePass ( PassRegistry )

Referenced by LLVMInitializeBPFTarget().

◆ initializeBPFMIPreEmitCheckingPass()

void llvm::initializeBPFMIPreEmitCheckingPass ( PassRegistry )

◆ initializeBPFMIPreEmitPeepholePass()

void llvm::initializeBPFMIPreEmitPeepholePass ( PassRegistry )

◆ initializeBranchFolderPassPass()

void llvm::initializeBranchFolderPassPass ( PassRegistry )

Referenced by initializeCodeGen().

◆ initializeBranchProbabilityInfoWrapperPassPass()

void llvm::initializeBranchProbabilityInfoWrapperPassPass ( PassRegistry )

◆ initializeBranchRelaxationPass()

void llvm::initializeBranchRelaxationPass ( PassRegistry )

Referenced by initializeCodeGen().

◆ initializeBreakCriticalEdgesPass()

void llvm::initializeBreakCriticalEdgesPass ( PassRegistry )

◆ initializeBreakFalseDepsPass()

void llvm::initializeBreakFalseDepsPass ( PassRegistry )

◆ initializeCalledValuePropagationLegacyPassPass()

void llvm::initializeCalledValuePropagationLegacyPassPass ( PassRegistry )

◆ initializeCallGraphDOTPrinterPass()

void llvm::initializeCallGraphDOTPrinterPass ( PassRegistry )

◆ initializeCallGraphPrinterLegacyPassPass()

void llvm::initializeCallGraphPrinterLegacyPassPass ( PassRegistry )

◆ initializeCallGraphViewerPass()

void llvm::initializeCallGraphViewerPass ( PassRegistry )

◆ initializeCallGraphWrapperPassPass()

void llvm::initializeCallGraphWrapperPassPass ( PassRegistry )

◆ initializeCallSiteSplittingLegacyPassPass()

void llvm::initializeCallSiteSplittingLegacyPassPass ( PassRegistry )

◆ initializeCanonicalizeAliasesLegacyPassPass()

void llvm::initializeCanonicalizeAliasesLegacyPassPass ( PassRegistry )

◆ initializeCFGOnlyPrinterLegacyPassPass()

void llvm::initializeCFGOnlyPrinterLegacyPassPass ( PassRegistry )

◆ initializeCFGOnlyViewerLegacyPassPass()

void llvm::initializeCFGOnlyViewerLegacyPassPass ( PassRegistry )

◆ initializeCFGPrinterLegacyPassPass()

void llvm::initializeCFGPrinterLegacyPassPass ( PassRegistry )

◆ initializeCFGSimplifyPassPass()

void llvm::initializeCFGSimplifyPassPass ( PassRegistry )

◆ initializeCFGViewerLegacyPassPass()

void llvm::initializeCFGViewerLegacyPassPass ( PassRegistry )

Referenced by initializeAnalysis().

◆ initializeCFIInstrInserterPass()

void llvm::initializeCFIInstrInserterPass ( PassRegistry )

Referenced by initializeCodeGen().

◆ initializeCFLAndersAAWrapperPassPass()

void llvm::initializeCFLAndersAAWrapperPassPass ( PassRegistry )

◆ initializeCFLSteensAAWrapperPassPass()

void llvm::initializeCFLSteensAAWrapperPassPass ( PassRegistry )

◆ initializeCodeGen()

void llvm::initializeCodeGen ( PassRegistry Registry)

Initialize all passes linked into the CodeGen library.

initializeCodeGen - Initialize all passes linked into the CodeGen library.

Definition at line 22 of file CodeGen.cpp.

References initializeAtomicExpandPass(), initializeBranchFolderPassPass(), initializeBranchRelaxationPass(), initializeCFIInstrInserterPass(), initializeCodeGenPreparePass(), initializeDeadMachineInstructionElimPass(), initializeDetectDeadLanesPass(), initializeDwarfEHPreparePass(), initializeEarlyIfConverterPass(), initializeEarlyMachineLICMPass(), initializeEarlyTailDuplicatePass(), initializeExpandISelPseudosPass(), initializeExpandMemCmpPassPass(), initializeExpandPostRAPass(), initializeFEntryInserterPass(), initializeFinalizeMachineBundlesPass(), initializeFuncletLayoutPass(), initializeGCMachineCodeAnalysisPass(), initializeGCModuleInfoPass(), initializeIfConverterPass(), initializeImplicitNullChecksPass(), initializeIndirectBrExpandPassPass(), initializeInterleavedAccessPass(), initializeInterleavedLoadCombinePass(), initializeLiveDebugValuesPass(), initializeLiveDebugVariablesPass(), initializeLiveIntervalsPass(), initializeLiveRangeShrinkPass(), initializeLiveStacksPass(), initializeLiveVariablesPass(), initializeLocalStackSlotPassPass(), initializeLowerIntrinsicsPass(), initializeMachineBlockFrequencyInfoPass(), initializeMachineBlockPlacementPass(), initializeMachineBlockPlacementStatsPass(), initializeMachineCombinerPass(), initializeMachineCopyPropagationPass(), initializeMachineCSEPass(), initializeMachineDominatorTreePass(), initializeMachineFunctionPrinterPassPass(), initializeMachineLICMPass(), initializeMachineLoopInfoPass(), initializeMachineModuleInfoPass(), initializeMachineOptimizationRemarkEmitterPassPass(), initializeMachineOutlinerPass(), initializeMachinePipelinerPass(), initializeMachinePostDominatorTreePass(), initializeMachineRegionInfoPassPass(), initializeMachineSchedulerPass(), initializeMachineSinkingPass(), initializeMachineVerifierPassPass(), initializeMIRCanonicalizerPass(), initializeOptimizePHIsPass(), initializePatchableFunctionPass(), initializePeepholeOptimizerPass(), initializePEIPass(), initializePHIEliminationPass(), initializePostMachineSchedulerPass(), initializePostRAHazardRecognizerPass(), initializePostRAMachineSinkingPass(), initializePostRASchedulerPass(), initializePreISelIntrinsicLoweringLegacyPassPass(), initializeProcessImplicitDefsPass(), initializeRABasicPass(), initializeRAGreedyPass(), initializeRegAllocFastPass(), initializeRegisterCoalescerPass(), initializeRegUsageInfoCollectorPass(), initializeRegUsageInfoPropagationPass(), initializeRenameIndependentSubregsPass(), initializeSafeStackLegacyPassPass(), initializeScalarizeMaskedMemIntrinPass(), initializeShrinkWrapPass(), initializeSlotIndexesPass(), initializeStackColoringPass(), initializeStackMapLivenessPass(), initializeStackProtectorPass(), initializeStackSlotColoringPass(), initializeTailDuplicatePass(), initializeTargetPassConfigPass(), initializeTwoAddressInstructionPassPass(), initializeUnpackMachineBundlesPass(), initializeUnreachableBlockElimLegacyPassPass(), initializeUnreachableMachineBlockElimPass(), initializeVirtRegMapPass(), initializeVirtRegRewriterPass(), initializeWasmEHPreparePass(), initializeWinEHPreparePass(), and initializeXRayInstrumentationPass().

Referenced by LLVMInitializeCodeGen(), and llvm::TargetPassConfig::TargetPassConfig().

◆ initializeCodeGenPreparePass()

void llvm::initializeCodeGenPreparePass ( PassRegistry )

Referenced by initializeCodeGen().

◆ initializeConstantHoistingLegacyPassPass()

void llvm::initializeConstantHoistingLegacyPassPass ( PassRegistry )

Referenced by initializeScalarOpts().

◆ initializeConstantMergeLegacyPassPass()

void llvm::initializeConstantMergeLegacyPassPass ( PassRegistry )

◆ initializeConstantPropagationPass()

void llvm::initializeConstantPropagationPass ( PassRegistry )

Referenced by initializeScalarOpts().

◆ initializeControlHeightReductionLegacyPassPass()

void llvm::initializeControlHeightReductionLegacyPassPass ( PassRegistry )

◆ initializeCore()

void llvm::initializeCore ( PassRegistry Registry)

◆ initializeCoroCleanupPass()

void llvm::initializeCoroCleanupPass ( PassRegistry )

Referenced by initializeCoroutines(), and lowerSubFn().

◆ initializeCoroEarlyPass()

void llvm::initializeCoroEarlyPass ( PassRegistry )

◆ initializeCoroElidePass()

void llvm::initializeCoroElidePass ( PassRegistry )

◆ initializeCoroSplitPass()

void llvm::initializeCoroSplitPass ( PassRegistry )

Referenced by initializeCoroutines().

◆ initializeCoroutines()

void llvm::initializeCoroutines ( PassRegistry Registry)

Initialize all passes linked into the Coroutines library.

Definition at line 45 of file Coroutines.cpp.

References initializeCoroCleanupPass(), initializeCoroEarlyPass(), initializeCoroElidePass(), and initializeCoroSplitPass().

◆ initializeCorrelatedValuePropagationPass()

void llvm::initializeCorrelatedValuePropagationPass ( PassRegistry )

Referenced by initializeScalarOpts().

◆ initializeCostModelAnalysisPass()

void llvm::initializeCostModelAnalysisPass ( PassRegistry )

Referenced by initializeAnalysis().

◆ initializeCrossDSOCFIPass()

void llvm::initializeCrossDSOCFIPass ( PassRegistry )

Referenced by initializeIPO().

◆ initializeDAEPass()

void llvm::initializeDAEPass ( PassRegistry )

Referenced by initializeIPO().

◆ initializeDAHPass()

void llvm::initializeDAHPass ( PassRegistry )

◆ initializeDataFlowSanitizerPass()

void llvm::initializeDataFlowSanitizerPass ( PassRegistry )

◆ initializeDCELegacyPassPass()

void llvm::initializeDCELegacyPassPass ( PassRegistry )

◆ initializeDeadInstEliminationPass()

void llvm::initializeDeadInstEliminationPass ( PassRegistry )

Referenced by initializeScalarOpts().

◆ initializeDeadMachineInstructionElimPass()

void llvm::initializeDeadMachineInstructionElimPass ( PassRegistry )

Referenced by initializeCodeGen().

◆ initializeDelinearizationPass()

void llvm::initializeDelinearizationPass ( PassRegistry )

Referenced by initializeAnalysis().

◆ initializeDemandedBitsWrapperPassPass()

void llvm::initializeDemandedBitsWrapperPassPass ( PassRegistry )

◆ initializeDependenceAnalysisPass()

void llvm::initializeDependenceAnalysisPass ( PassRegistry )

◆ initializeDependenceAnalysisWrapperPassPass()

void llvm::initializeDependenceAnalysisWrapperPassPass ( PassRegistry )

◆ initializeDetectDeadLanesPass()

void llvm::initializeDetectDeadLanesPass ( PassRegistry )

Referenced by initializeCodeGen().

◆ initializeDivRemPairsLegacyPassPass()

void llvm::initializeDivRemPairsLegacyPassPass ( PassRegistry )

◆ initializeDominanceFrontierWrapperPassPass()

void llvm::initializeDominanceFrontierWrapperPassPass ( PassRegistry )

◆ initializeDominatorTreeWrapperPassPass()

void llvm::initializeDominatorTreeWrapperPassPass ( PassRegistry )

◆ initializeDomOnlyPrinterPass()

void llvm::initializeDomOnlyPrinterPass ( PassRegistry )

◆ initializeDomOnlyViewerPass()

void llvm::initializeDomOnlyViewerPass ( PassRegistry )

◆ initializeDomPrinterPass()

void llvm::initializeDomPrinterPass ( PassRegistry )

◆ initializeDomViewerPass()

void llvm::initializeDomViewerPass ( PassRegistry )

◆ initializeDSELegacyPassPass()

void llvm::initializeDSELegacyPassPass ( PassRegistry )

◆ initializeDummyCGSCCPassPass()

void llvm::initializeDummyCGSCCPassPass ( PassRegistry )

◆ initializeDwarfEHPreparePass()

void llvm::initializeDwarfEHPreparePass ( PassRegistry )

Referenced by initializeCodeGen().

◆ initializeEarlyCSELegacyPassPass()

void llvm::initializeEarlyCSELegacyPassPass ( PassRegistry )

◆ initializeEarlyCSEMemSSALegacyPassPass()

void llvm::initializeEarlyCSEMemSSALegacyPassPass ( PassRegistry )

◆ initializeEarlyIfConverterPass()

void llvm::initializeEarlyIfConverterPass ( PassRegistry )

Referenced by initializeCodeGen().

◆ initializeEarlyMachineLICMPass()

void llvm::initializeEarlyMachineLICMPass ( PassRegistry )

Referenced by initializeCodeGen().

◆ initializeEarlyTailDuplicatePass()

void llvm::initializeEarlyTailDuplicatePass ( PassRegistry )

Referenced by initializeCodeGen().

◆ initializeEdgeBundlesPass()

void llvm::initializeEdgeBundlesPass ( PassRegistry )

◆ initializeEfficiencySanitizerPass()

void llvm::initializeEfficiencySanitizerPass ( PassRegistry )

◆ initializeEliminateAvailableExternallyLegacyPassPass()

void llvm::initializeEliminateAvailableExternallyLegacyPassPass ( PassRegistry )

◆ initializeEntryExitInstrumenterPass()

void llvm::initializeEntryExitInstrumenterPass ( PassRegistry )

◆ initializeEvexToVexInstPassPass()

void llvm::initializeEvexToVexInstPassPass ( PassRegistry )

Referenced by LLVMInitializeX86Target().

◆ initializeExpandISelPseudosPass()

void llvm::initializeExpandISelPseudosPass ( PassRegistry )

Referenced by initializeCodeGen().

◆ initializeExpandMemCmpPassPass()

void llvm::initializeExpandMemCmpPassPass ( PassRegistry )

Referenced by initializeCodeGen().

◆ initializeExpandPostRAPass()

void llvm::initializeExpandPostRAPass ( PassRegistry )

Referenced by initializeCodeGen().

◆ initializeExpandReductionsPass()

void llvm::initializeExpandReductionsPass ( PassRegistry )

◆ initializeExternalAAWrapperPassPass()

void llvm::initializeExternalAAWrapperPassPass ( PassRegistry )

◆ initializeFalkorHWPFFixPass()

void llvm::initializeFalkorHWPFFixPass ( PassRegistry )

◆ initializeFalkorMarkStridedAccessesLegacyPass()

void llvm::initializeFalkorMarkStridedAccessesLegacyPass ( PassRegistry )

◆ initializeFEntryInserterPass()

void llvm::initializeFEntryInserterPass ( PassRegistry )

Referenced by initializeCodeGen().

◆ initializeFinalizeMachineBundlesPass()

void llvm::initializeFinalizeMachineBundlesPass ( PassRegistry )

◆ initializeFixFunctionBitcastsPass()

void llvm::initializeFixFunctionBitcastsPass ( PassRegistry )

◆ initializeFixupBWInstPassPass()

void llvm::initializeFixupBWInstPassPass ( PassRegistry )

Referenced by LLVMInitializeX86Target().

◆ initializeFixupLEAPassPass()

void llvm::initializeFixupLEAPassPass ( PassRegistry )

Referenced by LLVMInitializeX86Target().

◆ initializeFlattenCFGPassPass()

void llvm::initializeFlattenCFGPassPass ( PassRegistry )

Referenced by initializeScalarOpts().

◆ initializeFloat2IntLegacyPassPass()

void llvm::initializeFloat2IntLegacyPassPass ( PassRegistry )

Referenced by initializeScalarOpts().

◆ initializeForceFunctionAttrsLegacyPassPass()

void llvm::initializeForceFunctionAttrsLegacyPassPass ( PassRegistry )

◆ initializeForwardControlFlowIntegrityPass()

void llvm::initializeForwardControlFlowIntegrityPass ( PassRegistry )

◆ initializeFuncletLayoutPass()

void llvm::initializeFuncletLayoutPass ( PassRegistry )

Referenced by initializeCodeGen().

◆ initializeFunctionImportLegacyPassPass()

void llvm::initializeFunctionImportLegacyPassPass ( PassRegistry )

Referenced by initializeIPO().

◆ initializeGCMachineCodeAnalysisPass()

void llvm::initializeGCMachineCodeAnalysisPass ( PassRegistry )

Referenced by initializeCodeGen().

◆ initializeGCModuleInfoPass()

void llvm::initializeGCModuleInfoPass ( PassRegistry )

◆ initializeGCNDPPCombinePass()

void llvm::initializeGCNDPPCombinePass ( PassRegistry )

◆ initializeGCOVProfilerLegacyPassPass()

void llvm::initializeGCOVProfilerLegacyPassPass ( PassRegistry )

◆ initializeGenericToNVVMPass()

void llvm::initializeGenericToNVVMPass ( PassRegistry )

◆ initializeGISelCSEAnalysisWrapperPassPass()

void llvm::initializeGISelCSEAnalysisWrapperPassPass ( PassRegistry )

◆ initializeGlobalDCELegacyPassPass()

void llvm::initializeGlobalDCELegacyPassPass ( PassRegistry )

◆ initializeGlobalISel()

void llvm::initializeGlobalISel ( PassRegistry Registry)

◆ initializeGlobalMergePass()

void llvm::initializeGlobalMergePass ( PassRegistry )

◆ initializeGlobalOptLegacyPassPass()

void llvm::initializeGlobalOptLegacyPassPass ( PassRegistry )

◆ initializeGlobalsAAWrapperPassPass()

void llvm::initializeGlobalsAAWrapperPassPass ( PassRegistry )

◆ initializeGlobalSplitPass()

void llvm::initializeGlobalSplitPass ( PassRegistry )

Referenced by initializeIPO(), and splitGlobals().

◆ initializeGuardWideningLegacyPassPass()

void llvm::initializeGuardWideningLegacyPassPass ( PassRegistry )

◆ initializeGVNHoistLegacyPassPass()

void llvm::initializeGVNHoistLegacyPassPass ( PassRegistry )

◆ initializeGVNLegacyPassPass()

void llvm::initializeGVNLegacyPassPass ( PassRegistry )

◆ initializeGVNSinkLegacyPassPass()

void llvm::initializeGVNSinkLegacyPassPass ( PassRegistry )

◆ initializeHexagonBitSimplifyPass()

void llvm::initializeHexagonBitSimplifyPass ( PassRegistry Registry)

◆ initializeHexagonBranchRelaxationPass()

void llvm::initializeHexagonBranchRelaxationPass ( PassRegistry )

◆ initializeHexagonCallFrameInformationPass()

void llvm::initializeHexagonCallFrameInformationPass ( PassRegistry )

◆ initializeHexagonCFGOptimizerPass()

void llvm::initializeHexagonCFGOptimizerPass ( PassRegistry )

◆ initializeHexagonCommonGEPPass()

void llvm::initializeHexagonCommonGEPPass ( PassRegistry )

◆ initializeHexagonConstExtendersPass()

void llvm::initializeHexagonConstExtendersPass ( PassRegistry )

◆ initializeHexagonConstPropagationPass()

void llvm::initializeHexagonConstPropagationPass ( PassRegistry Registry)

◆ initializeHexagonCopyToCombinePass()

void llvm::initializeHexagonCopyToCombinePass ( PassRegistry )

◆ initializeHexagonEarlyIfConversionPass()

void llvm::initializeHexagonEarlyIfConversionPass ( PassRegistry Registry)

◆ initializeHexagonExpandCondsetsPass()

void llvm::initializeHexagonExpandCondsetsPass ( PassRegistry )

◆ initializeHexagonFixupHwLoopsPass()

void llvm::initializeHexagonFixupHwLoopsPass ( PassRegistry )

◆ initializeHexagonGenExtractPass()

void llvm::initializeHexagonGenExtractPass ( PassRegistry )

◆ initializeHexagonGenInsertPass()

void llvm::initializeHexagonGenInsertPass ( PassRegistry )

Referenced by isDebug().

◆ initializeHexagonGenMuxPass()

void llvm::initializeHexagonGenMuxPass ( PassRegistry Registry)

◆ initializeHexagonGenPredicatePass()

void llvm::initializeHexagonGenPredicatePass ( PassRegistry Registry)

◆ initializeHexagonHardwareLoopsPass()

void llvm::initializeHexagonHardwareLoopsPass ( PassRegistry )

◆ initializeHexagonLoopIdiomRecognizePass()

void llvm::initializeHexagonLoopIdiomRecognizePass ( PassRegistry )

◆ initializeHexagonLoopReschedulingPass()

void llvm::initializeHexagonLoopReschedulingPass ( PassRegistry )

◆ initializeHexagonNewValueJumpPass()

void llvm::initializeHexagonNewValueJumpPass ( PassRegistry )

◆ initializeHexagonOptAddrModePass()

void llvm::initializeHexagonOptAddrModePass ( PassRegistry )

◆ initializeHexagonOptimizeSZextendsPass()

void llvm::initializeHexagonOptimizeSZextendsPass ( PassRegistry )

◆ initializeHexagonPacketizerPass()

void llvm::initializeHexagonPacketizerPass ( PassRegistry )

◆ initializeHexagonPeepholePass()

void llvm::initializeHexagonPeepholePass ( PassRegistry )

◆ initializeHexagonRDFOptPass()

void llvm::initializeHexagonRDFOptPass ( PassRegistry )

◆ initializeHexagonSplitConst32AndConst64Pass()

void llvm::initializeHexagonSplitConst32AndConst64Pass ( PassRegistry )

◆ initializeHexagonSplitDoubleRegsPass()

void llvm::initializeHexagonSplitDoubleRegsPass ( PassRegistry )

◆ initializeHexagonStoreWideningPass()

void llvm::initializeHexagonStoreWideningPass ( PassRegistry )

◆ initializeHexagonVectorLoopCarriedReusePass()

void llvm::initializeHexagonVectorLoopCarriedReusePass ( PassRegistry )

◆ initializeHexagonVectorPrintPass()

void llvm::initializeHexagonVectorPrintPass ( PassRegistry )

◆ initializeHexagonVExtractPass()

void llvm::initializeHexagonVExtractPass ( PassRegistry )

◆ initializeHotColdSplittingLegacyPassPass()

void llvm::initializeHotColdSplittingLegacyPassPass ( PassRegistry )

Referenced by initializeIPO().

◆ initializeHWAddressSanitizerPass()

void llvm::initializeHWAddressSanitizerPass ( PassRegistry )

◆ initializeIfConverterPass()

void llvm::initializeIfConverterPass ( PassRegistry )

Referenced by initializeCodeGen().

◆ initializeImplicitNullChecksPass()

void llvm::initializeImplicitNullChecksPass ( PassRegistry )

Referenced by initializeCodeGen().

◆ initializeIndirectBrExpandPassPass()

void llvm::initializeIndirectBrExpandPassPass ( PassRegistry )

Referenced by initializeCodeGen().

◆ initializeIndVarSimplifyLegacyPassPass()

void llvm::initializeIndVarSimplifyLegacyPassPass ( PassRegistry )

◆ initializeInferAddressSpacesPass()

void llvm::initializeInferAddressSpacesPass ( PassRegistry )

Referenced by initializeScalarOpts().

◆ initializeInferFunctionAttrsLegacyPassPass()

void llvm::initializeInferFunctionAttrsLegacyPassPass ( PassRegistry )

◆ initializeInlineCostAnalysisPass()

void llvm::initializeInlineCostAnalysisPass ( PassRegistry )

◆ initializeInstCombine()

Combine redundant false void llvm::initializeInstCombine ( PassRegistry Registry)

Initialize all passes linked into the InstCombine library.

Definition at line 3524 of file InstructionCombining.cpp.

References initializeInstructionCombiningPassPass().

◆ initializeInstCountPass()

void llvm::initializeInstCountPass ( PassRegistry )

Referenced by initializeAnalysis().

◆ initializeInstNamerPass()

void llvm::initializeInstNamerPass ( PassRegistry )

◆ initializeInstrProfilingLegacyPassPass()

void llvm::initializeInstrProfilingLegacyPassPass ( PassRegistry )

◆ initializeInstructionCombiningPassPass()

void llvm::initializeInstructionCombiningPassPass ( PassRegistry )

◆ initializeInstructionSelectPass()

void llvm::initializeInstructionSelectPass ( PassRegistry )

◆ initializeInstrumentation()

void llvm::initializeInstrumentation ( PassRegistry Registry)

◆ initializeInstSimplifyLegacyPassPass()

void llvm::initializeInstSimplifyLegacyPassPass ( PassRegistry )

Referenced by initializeScalarOpts(), and runImpl().

◆ initializeInterleavedAccessPass()

void llvm::initializeInterleavedAccessPass ( PassRegistry )

Referenced by initializeCodeGen().

◆ initializeInterleavedLoadCombinePass()

void llvm::initializeInterleavedLoadCombinePass ( PassRegistry )

Referenced by initializeCodeGen().

◆ initializeInternalizeLegacyPassPass()

void llvm::initializeInternalizeLegacyPassPass ( PassRegistry )

◆ initializeIntervalPartitionPass()

void llvm::initializeIntervalPartitionPass ( PassRegistry )

◆ initializeIPCPPass()

void llvm::initializeIPCPPass ( PassRegistry )

Referenced by initializeIPO().

◆ initializeIPO()

void llvm::initializeIPO ( PassRegistry Registry)

◆ initializeIPSCCPLegacyPassPass()

void llvm::initializeIPSCCPLegacyPassPass ( PassRegistry )

◆ initializeIRCELegacyPassPass()

void llvm::initializeIRCELegacyPassPass ( PassRegistry )

Referenced by initializeScalarOpts().

◆ initializeIRTranslatorPass()

void llvm::initializeIRTranslatorPass ( PassRegistry )

◆ initializeIVUsersWrapperPassPass()

void llvm::initializeIVUsersWrapperPassPass ( PassRegistry )

◆ initializeJumpThreadingPass()

void llvm::initializeJumpThreadingPass ( PassRegistry )

◆ initializeLanaiMemAluCombinerPass()

void llvm::initializeLanaiMemAluCombinerPass ( PassRegistry )

◆ initializeLazyBFIPassPass()

void llvm::initializeLazyBFIPassPass ( PassRegistry Registry)

Helper for client passes to initialize dependent passes for LBFI.

Definition at line 68 of file LazyBlockFrequencyInfo.cpp.

References INITIALIZE_PASS_DEPENDENCY, and initializeLazyBPIPassPass().

Referenced by llvm::LazyBlockFrequencyInfoPass::getBFI().

◆ initializeLazyBlockFrequencyInfoPassPass()

void llvm::initializeLazyBlockFrequencyInfoPassPass ( PassRegistry )

◆ initializeLazyBPIPassPass()

void llvm::initializeLazyBPIPassPass ( PassRegistry Registry)

Helper for client passes to initialize dependent passes for LBPI.

Definition at line 70 of file LazyBranchProbabilityInfo.cpp.

References INITIALIZE_PASS_DEPENDENCY.

Referenced by llvm::LazyBranchProbabilityInfoPass::getBPI(), and initializeLazyBFIPassPass().

◆ initializeLazyBranchProbabilityInfoPassPass()

void llvm::initializeLazyBranchProbabilityInfoPassPass ( PassRegistry )

◆ initializeLazyMachineBlockFrequencyInfoPassPass()

void llvm::initializeLazyMachineBlockFrequencyInfoPassPass ( PassRegistry )

◆ initializeLazyValueInfoPrinterPass()

void llvm::initializeLazyValueInfoPrinterPass ( PassRegistry )

◆ initializeLazyValueInfoWrapperPassPass()

void llvm::initializeLazyValueInfoWrapperPassPass ( PassRegistry )

◆ initializeLCSSAVerificationPassPass()

void llvm::initializeLCSSAVerificationPassPass ( PassRegistry )

◆ initializeLCSSAWrapperPassPass()

void llvm::initializeLCSSAWrapperPassPass ( PassRegistry )

◆ initializeLDTLSCleanupPass()

void llvm::initializeLDTLSCleanupPass ( PassRegistry )

◆ initializeLegacyDivergenceAnalysisPass()

void llvm::initializeLegacyDivergenceAnalysisPass ( PassRegistry )

◆ initializeLegacyLICMPassPass()

void llvm::initializeLegacyLICMPassPass ( PassRegistry )

◆ initializeLegacyLoopSinkPassPass()

void llvm::initializeLegacyLoopSinkPassPass ( PassRegistry )

◆ initializeLegalizerPass()

void llvm::initializeLegalizerPass ( PassRegistry )

◆ initializeLibCallsShrinkWrapLegacyPassPass()

void llvm::initializeLibCallsShrinkWrapLegacyPassPass ( PassRegistry )

◆ initializeLintPass()

void llvm::initializeLintPass ( PassRegistry )

Referenced by initializeAnalysis().

◆ initializeLiveDebugValuesPass()

void llvm::initializeLiveDebugValuesPass ( PassRegistry )

◆ initializeLiveDebugVariablesPass()

void llvm::initializeLiveDebugVariablesPass ( PassRegistry )

◆ initializeLiveIntervalsPass()

void llvm::initializeLiveIntervalsPass ( PassRegistry )

◆ initializeLiveRangeShrinkPass()

void llvm::initializeLiveRangeShrinkPass ( PassRegistry )

Referenced by initializeCodeGen().

◆ initializeLiveRegMatrixPass()

void llvm::initializeLiveRegMatrixPass ( PassRegistry )

◆ initializeLiveStacksPass()

void llvm::initializeLiveStacksPass ( PassRegistry )

◆ initializeLiveVariablesPass()

void llvm::initializeLiveVariablesPass ( PassRegistry )

◆ initializeLoaderPassPass()

void llvm::initializeLoaderPassPass ( PassRegistry )

◆ initializeLoadStoreVectorizerLegacyPassPass()

void llvm::initializeLoadStoreVectorizerLegacyPassPass ( PassRegistry )

Referenced by initializeVectorization().

◆ initializeLocalizerPass()

void llvm::initializeLocalizerPass ( PassRegistry )

◆ initializeLocalStackSlotPassPass()

void llvm::initializeLocalStackSlotPassPass ( PassRegistry )

Referenced by initializeCodeGen().

◆ initializeLoopAccessLegacyAnalysisPass()

void llvm::initializeLoopAccessLegacyAnalysisPass ( PassRegistry )

◆ initializeLoopDataPrefetchLegacyPassPass()

void llvm::initializeLoopDataPrefetchLegacyPassPass ( PassRegistry )

Referenced by initializeScalarOpts().

◆ initializeLoopDeletionLegacyPassPass()

void llvm::initializeLoopDeletionLegacyPassPass ( PassRegistry )

◆ initializeLoopDistributeLegacyPass()

void llvm::initializeLoopDistributeLegacyPass ( PassRegistry )

Referenced by initializeScalarOpts(), and runImpl().

◆ initializeLoopExtractorPass()

void llvm::initializeLoopExtractorPass ( PassRegistry )

Referenced by initializeIPO().

◆ initializeLoopGuardWideningLegacyPassPass()

void llvm::initializeLoopGuardWideningLegacyPassPass ( PassRegistry )

◆ initializeLoopIdiomRecognizeLegacyPassPass()

void llvm::initializeLoopIdiomRecognizeLegacyPassPass ( PassRegistry )

Referenced by initializeScalarOpts().

◆ initializeLoopInfoWrapperPassPass()

void llvm::initializeLoopInfoWrapperPassPass ( PassRegistry )

◆ initializeLoopInstSimplifyLegacyPassPass()

void llvm::initializeLoopInstSimplifyLegacyPassPass ( PassRegistry )

◆ initializeLoopInterchangePass()

void llvm::initializeLoopInterchangePass ( PassRegistry )

◆ initializeLoopLoadEliminationPass()

void llvm::initializeLoopLoadEliminationPass ( PassRegistry )

◆ initializeLoopPassPass()

void llvm::initializeLoopPassPass ( PassRegistry Registry)

Manually defined generic "LoopPass" dependency initialization.

This is used to initialize the exact set of passes from above in getLoopAnalysisUsage. It can be used within a loop pass's initialization with:

INITIALIZE_PASS_DEPENDENCY(LoopPass)

As-if "LoopPass" were a pass.

Definition at line 178 of file LoopUtils.cpp.

References INITIALIZE_PASS_DEPENDENCY.

◆ initializeLoopPredicationLegacyPassPass()

void llvm::initializeLoopPredicationLegacyPassPass ( PassRegistry )

Referenced by initializeScalarOpts().

◆ initializeLoopRerollPass()

void llvm::initializeLoopRerollPass ( PassRegistry )

Referenced by initializeScalarOpts().

◆ initializeLoopRotateLegacyPassPass()

void llvm::initializeLoopRotateLegacyPassPass ( PassRegistry )

◆ initializeLoopSimplifyCFGLegacyPassPass()

void llvm::initializeLoopSimplifyCFGLegacyPassPass ( PassRegistry )

◆ initializeLoopSimplifyPass()

void llvm::initializeLoopSimplifyPass ( PassRegistry )

◆ initializeLoopStrengthReducePass()

void llvm::initializeLoopStrengthReducePass ( PassRegistry )

◆ initializeLoopUnrollAndJamPass()

void llvm::initializeLoopUnrollAndJamPass ( PassRegistry )

◆ initializeLoopUnrollPass()

void llvm::initializeLoopUnrollPass ( PassRegistry )

◆ initializeLoopUnswitchPass()

void llvm::initializeLoopUnswitchPass ( PassRegistry )

Referenced by initializeScalarOpts().

◆ initializeLoopVectorizePass()

void llvm::initializeLoopVectorizePass ( PassRegistry )

◆ initializeLoopVersioningLICMPass()

void llvm::initializeLoopVersioningLICMPass ( PassRegistry )

Referenced by initializeScalarOpts().

◆ initializeLoopVersioningPassPass()

void llvm::initializeLoopVersioningPassPass ( PassRegistry )

◆ initializeLowerAtomicLegacyPassPass()

void llvm::initializeLowerAtomicLegacyPassPass ( PassRegistry )

◆ initializeLowerEmuTLSPass()

void llvm::initializeLowerEmuTLSPass ( PassRegistry )

◆ initializeLowerExpectIntrinsicPass()

void llvm::initializeLowerExpectIntrinsicPass ( PassRegistry )

◆ initializeLowerGlobalDtorsPass()

void llvm::initializeLowerGlobalDtorsPass ( PassRegistry )

◆ initializeLowerGuardIntrinsicLegacyPassPass()

void llvm::initializeLowerGuardIntrinsicLegacyPassPass ( PassRegistry )

Referenced by initializeScalarOpts().

◆ initializeLowerIntrinsicsPass()

void llvm::initializeLowerIntrinsicsPass ( PassRegistry )

◆ initializeLowerInvokeLegacyPassPass()

void llvm::initializeLowerInvokeLegacyPassPass ( PassRegistry )

◆ initializeLowerSwitchPass()

void llvm::initializeLowerSwitchPass ( PassRegistry )

◆ initializeLowerTypeTestsPass()

void llvm::initializeLowerTypeTestsPass ( PassRegistry )

Referenced by initializeIPO().

◆ initializeMachineBlockFrequencyInfoPass()

void llvm::initializeMachineBlockFrequencyInfoPass ( PassRegistry )

◆ initializeMachineBlockPlacementPass()

void llvm::initializeMachineBlockPlacementPass ( PassRegistry )

Referenced by initializeCodeGen().

◆ initializeMachineBlockPlacementStatsPass()

void llvm::initializeMachineBlockPlacementStatsPass ( PassRegistry )

◆ initializeMachineBranchProbabilityInfoPass()

void llvm::initializeMachineBranchProbabilityInfoPass ( PassRegistry )

◆ initializeMachineCombinerPass()

void llvm::initializeMachineCombinerPass ( PassRegistry )

Referenced by initializeCodeGen().

◆ initializeMachineCopyPropagationPass()

void llvm::initializeMachineCopyPropagationPass ( PassRegistry )

Referenced by initializeCodeGen().

◆ initializeMachineCSEPass()

void llvm::initializeMachineCSEPass ( PassRegistry )

Referenced by initializeCodeGen().

◆ initializeMachineDominanceFrontierPass()

void llvm::initializeMachineDominanceFrontierPass ( PassRegistry )

◆ initializeMachineDominatorTreePass()

void llvm::initializeMachineDominatorTreePass ( PassRegistry )

◆ initializeMachineFunctionPrinterPassPass()

void llvm::initializeMachineFunctionPrinterPassPass ( PassRegistry )

Referenced by initializeCodeGen().

◆ initializeMachineLICMPass()

void llvm::initializeMachineLICMPass ( PassRegistry )

Referenced by initializeCodeGen().

◆ initializeMachineLoopInfoPass()

void llvm::initializeMachineLoopInfoPass ( PassRegistry )

◆ initializeMachineModuleInfoPass()

void llvm::initializeMachineModuleInfoPass ( PassRegistry )

◆ initializeMachineOptimizationRemarkEmitterPassPass()

void llvm::initializeMachineOptimizationRemarkEmitterPassPass ( PassRegistry )

◆ initializeMachineOutlinerPass()

void llvm::initializeMachineOutlinerPass ( PassRegistry )

Referenced by initializeCodeGen().

◆ initializeMachinePipelinerPass()

void llvm::initializeMachinePipelinerPass ( PassRegistry )

◆ initializeMachinePostDominatorTreePass()

void llvm::initializeMachinePostDominatorTreePass ( PassRegistry )

◆ initializeMachineRegionInfoPassPass()

void llvm::initializeMachineRegionInfoPassPass ( PassRegistry )

◆ initializeMachineSchedulerPass()

void llvm::initializeMachineSchedulerPass ( PassRegistry )

Referenced by initializeCodeGen().

◆ initializeMachineSinkingPass()

void llvm::initializeMachineSinkingPass ( PassRegistry )

Referenced by initializeCodeGen().

◆ initializeMachineTraceMetricsPass()

void llvm::initializeMachineTraceMetricsPass ( PassRegistry )

◆ initializeMachineVerifierPassPass()

void llvm::initializeMachineVerifierPassPass ( PassRegistry )

Referenced by initializeCodeGen().

◆ initializeMakeGuardsExplicitLegacyPassPass()

void llvm::initializeMakeGuardsExplicitLegacyPassPass ( PassRegistry )

Referenced by initializeScalarOpts().

◆ initializeMemCpyOptLegacyPassPass()

void llvm::initializeMemCpyOptLegacyPassPass ( PassRegistry )

◆ initializeMemDepPrinterPass()

void llvm::initializeMemDepPrinterPass ( PassRegistry )

Referenced by initializeAnalysis().

◆ initializeMemDerefPrinterPass()

void llvm::initializeMemDerefPrinterPass ( PassRegistry )

Referenced by initializeAnalysis().

◆ initializeMemoryDependenceWrapperPassPass()

void llvm::initializeMemoryDependenceWrapperPassPass ( PassRegistry )

◆ initializeMemorySanitizerLegacyPassPass()

void llvm::initializeMemorySanitizerLegacyPassPass ( PassRegistry )

◆ initializeMemorySSAPrinterLegacyPassPass()

void llvm::initializeMemorySSAPrinterLegacyPassPass ( PassRegistry )

◆ initializeMemorySSAWrapperPassPass()

void llvm::initializeMemorySSAWrapperPassPass ( PassRegistry )

◆ initializeMergedLoadStoreMotionLegacyPassPass()

void llvm::initializeMergedLoadStoreMotionLegacyPassPass ( PassRegistry )

◆ initializeMergeFunctionsPass()

void llvm::initializeMergeFunctionsPass ( PassRegistry )

Referenced by initializeIPO().

◆ initializeMergeICmpsPass()

void llvm::initializeMergeICmpsPass ( PassRegistry )

Referenced by initializeScalarOpts().

◆ initializeMetaRenamerPass()

void llvm::initializeMetaRenamerPass ( PassRegistry )

◆ initializeMicroMipsSizeReducePass()

void llvm::initializeMicroMipsSizeReducePass ( PassRegistry )

◆ initializeMipsBranchExpansionPass()

void llvm::initializeMipsBranchExpansionPass ( PassRegistry )

◆ initializeMipsDelaySlotFillerPass()

void llvm::initializeMipsDelaySlotFillerPass ( PassRegistry )

◆ initializeMipsPreLegalizerCombinerPass()

void llvm::initializeMipsPreLegalizerCombinerPass ( PassRegistry )

◆ initializeMIRCanonicalizerPass()

void llvm::initializeMIRCanonicalizerPass ( PassRegistry )

Referenced by initializeCodeGen().

◆ initializeMIRPrintingPassPass()

void llvm::initializeMIRPrintingPassPass ( PassRegistry )

◆ initializeModuleDebugInfoPrinterPass()

void llvm::initializeModuleDebugInfoPrinterPass ( PassRegistry )

Referenced by initializeAnalysis().

◆ initializeModuleSummaryIndexWrapperPassPass()

void llvm::initializeModuleSummaryIndexWrapperPassPass ( PassRegistry )

◆ initializeMustExecutePrinterPass()

void llvm::initializeMustExecutePrinterPass ( PassRegistry )

◆ initializeNameAnonGlobalLegacyPassPass()

void llvm::initializeNameAnonGlobalLegacyPassPass ( PassRegistry )

◆ initializeNaryReassociateLegacyPassPass()

void llvm::initializeNaryReassociateLegacyPassPass ( PassRegistry )

Referenced by initializeScalarOpts().

◆ InitializeNativeTarget()

bool llvm::InitializeNativeTarget ( )
inline

InitializeNativeTarget - The main program should call this function to initialize the native target corresponding to the host.

This is useful for JIT applications to ensure that the target gets linked in correctly.

It is legal for a client to make multiple calls to this function.

Definition at line 116 of file TargetSelect.h.

◆ InitializeNativeTargetAsmParser()

bool llvm::InitializeNativeTargetAsmParser ( )
inline

InitializeNativeTargetAsmParser - The main program should call this function to initialize the native target asm parser.

Definition at line 142 of file TargetSelect.h.

◆ InitializeNativeTargetAsmPrinter()

bool llvm::InitializeNativeTargetAsmPrinter ( )
inline

InitializeNativeTargetAsmPrinter - The main program should call this function to initialize the native target asm printer.

Definition at line 130 of file TargetSelect.h.

◆ InitializeNativeTargetDisassembler()

bool llvm::InitializeNativeTargetDisassembler ( )
inline

InitializeNativeTargetDisassembler - The main program should call this function to initialize the native target disassembler.

Definition at line 154 of file TargetSelect.h.

◆ initializeNewGVNLegacyPassPass()

void llvm::initializeNewGVNLegacyPassPass ( PassRegistry )

◆ initializeNVPTXAllocaHoistingPass()

void llvm::initializeNVPTXAllocaHoistingPass ( PassRegistry )

◆ initializeNVPTXAssignValidGlobalNamesPass()

void llvm::initializeNVPTXAssignValidGlobalNamesPass ( PassRegistry )

◆ initializeNVPTXLowerAggrCopiesPass()

void llvm::initializeNVPTXLowerAggrCopiesPass ( PassRegistry )

◆ initializeNVPTXLowerAllocaPass()

void llvm::initializeNVPTXLowerAllocaPass ( PassRegistry )

◆ initializeNVPTXLowerArgsPass()

void llvm::initializeNVPTXLowerArgsPass ( PassRegistry )

◆ initializeNVPTXPeepholePass()

void llvm::initializeNVPTXPeepholePass ( PassRegistry )

◆ initializeNVPTXProxyRegErasurePass()

void llvm::initializeNVPTXProxyRegErasurePass ( PassRegistry )

◆ initializeNVVMIntrRangePass()

void llvm::initializeNVVMIntrRangePass ( PassRegistry )

◆ initializeNVVMReflectPass()

void llvm::initializeNVVMReflectPass ( PassRegistry )

◆ initializeObjCARCAAWrapperPassPass()

void llvm::initializeObjCARCAAWrapperPassPass ( PassRegistry )

◆ initializeObjCARCAPElimPass()

void llvm::initializeObjCARCAPElimPass ( PassRegistry )

Referenced by initializeObjCARCOpts().

◆ initializeObjCARCContractPass()

void llvm::initializeObjCARCContractPass ( PassRegistry )

Referenced by initializeObjCARCOpts().

◆ initializeObjCARCExpandPass()

void llvm::initializeObjCARCExpandPass ( PassRegistry )

Referenced by initializeObjCARCOpts().

◆ initializeObjCARCOptPass()

void llvm::initializeObjCARCOptPass ( PassRegistry )

Referenced by initializeObjCARCOpts().

◆ initializeObjCARCOpts()

void llvm::initializeObjCARCOpts ( PassRegistry Registry)

Initialize all passes linked into the ObjCARCOpts library.

initializeObjCARCOptsPasses - Initialize all passes linked into the ObjCARCOpts library.

Definition at line 29 of file ObjCARC.cpp.

References initializeObjCARCAAWrapperPassPass(), initializeObjCARCAPElimPass(), initializeObjCARCContractPass(), initializeObjCARCExpandPass(), initializeObjCARCOptPass(), and initializePAEvalPass().

Referenced by LLVMInitializeObjCARCOpts().

◆ initializeOptimizationRemarkEmitterWrapperPassPass()

void llvm::initializeOptimizationRemarkEmitterWrapperPassPass ( PassRegistry )

◆ initializeOptimizePHIsPass()

void llvm::initializeOptimizePHIsPass ( PassRegistry )

Referenced by initializeCodeGen().

◆ initializeOptimizeReturnedPass()

void llvm::initializeOptimizeReturnedPass ( PassRegistry )

◆ initializePAEvalPass()

void llvm::initializePAEvalPass ( PassRegistry )

Referenced by initializeObjCARCOpts().

◆ initializePartialInlinerLegacyPassPass()

void llvm::initializePartialInlinerLegacyPassPass ( PassRegistry )

Referenced by initializeIPO().

◆ initializePartiallyInlineLibCallsLegacyPassPass()

void llvm::initializePartiallyInlineLibCallsLegacyPassPass ( PassRegistry )

◆ initializePatchableFunctionPass()

void llvm::initializePatchableFunctionPass ( PassRegistry )

Referenced by initializeCodeGen().

◆ initializePeepholeOptimizerPass()

void llvm::initializePeepholeOptimizerPass ( PassRegistry )

Referenced by initializeCodeGen().

◆ initializePEIPass()

void llvm::initializePEIPass ( PassRegistry )

Referenced by initializeCodeGen().

◆ initializePGOIndirectCallPromotionLegacyPassPass()

void llvm::initializePGOIndirectCallPromotionLegacyPassPass ( PassRegistry )

◆ initializePGOInstrumentationGenLegacyPassPass()

void llvm::initializePGOInstrumentationGenLegacyPassPass ( PassRegistry )

◆ initializePGOInstrumentationUseLegacyPassPass()

void llvm::initializePGOInstrumentationUseLegacyPassPass ( PassRegistry )

◆ initializePGOMemOPSizeOptLegacyPassPass()

void llvm::initializePGOMemOPSizeOptLegacyPassPass ( PassRegistry )

◆ initializePHIEliminationPass()

void llvm::initializePHIEliminationPass ( PassRegistry )

Referenced by initializeCodeGen().

◆ initializePhiValuesWrapperPassPass()

void llvm::initializePhiValuesWrapperPassPass ( PassRegistry )

◆ initializePhysicalRegisterUsageInfoPass()

void llvm::initializePhysicalRegisterUsageInfoPass ( PassRegistry )

◆ initializePlaceBackedgeSafepointsImplPass()

void llvm::initializePlaceBackedgeSafepointsImplPass ( PassRegistry )

Referenced by initializeScalarOpts().

◆ initializePlaceSafepointsPass()

void llvm::initializePlaceSafepointsPass ( PassRegistry )

Referenced by initializeScalarOpts().

◆ initializePostDominatorTreeWrapperPassPass()

void llvm::initializePostDominatorTreeWrapperPassPass ( PassRegistry )

◆ initializePostDomOnlyPrinterPass()

void llvm::initializePostDomOnlyPrinterPass ( PassRegistry )

◆ initializePostDomOnlyViewerPass()

void llvm::initializePostDomOnlyViewerPass ( PassRegistry )

◆ initializePostDomPrinterPass()

void llvm::initializePostDomPrinterPass ( PassRegistry )

◆ initializePostDomViewerPass()

void llvm::initializePostDomViewerPass ( PassRegistry )

◆ initializePostInlineEntryExitInstrumenterPass()

void llvm::initializePostInlineEntryExitInstrumenterPass ( PassRegistry )

◆ initializePostMachineSchedulerPass()

void llvm::initializePostMachineSchedulerPass ( PassRegistry )

◆ initializePostOrderFunctionAttrsLegacyPassPass()

void llvm::initializePostOrderFunctionAttrsLegacyPassPass ( PassRegistry )

◆ initializePostRAHazardRecognizerPass()

void llvm::initializePostRAHazardRecognizerPass ( PassRegistry )

Referenced by initializeCodeGen().

◆ initializePostRAMachineSinkingPass()

void llvm::initializePostRAMachineSinkingPass ( PassRegistry )

Referenced by initializeCodeGen().

◆ initializePostRASchedulerPass()

void llvm::initializePostRASchedulerPass ( PassRegistry )

Referenced by initializeCodeGen().

◆ initializePPCBoolRetToIntPass()

void llvm::initializePPCBoolRetToIntPass ( PassRegistry )

◆ initializePPCBranchCoalescingPass()

void llvm::initializePPCBranchCoalescingPass ( PassRegistry )

◆ initializePPCBSelPass()

void llvm::initializePPCBSelPass ( PassRegistry )

◆ initializePPCCTRLoopsPass()

void llvm::initializePPCCTRLoopsPass ( PassRegistry )

◆ initializePPCCTRLoopsVerifyPass()

void llvm::initializePPCCTRLoopsVerifyPass ( PassRegistry )

◆ initializePPCEarlyReturnPass()

void llvm::initializePPCEarlyReturnPass ( PassRegistry )

◆ initializePPCExpandISELPass()

void llvm::initializePPCExpandISELPass ( PassRegistry )

◆ initializePPCLoopPreIncPrepPass()

void llvm::initializePPCLoopPreIncPrepPass ( PassRegistry )

◆ initializePPCMIPeepholePass()

void llvm::initializePPCMIPeepholePass ( PassRegistry )

◆ initializePPCPreEmitPeepholePass()

void llvm::initializePPCPreEmitPeepholePass ( PassRegistry )

◆ initializePPCQPXLoadSplatPass()

void llvm::initializePPCQPXLoadSplatPass ( PassRegistry )

◆ initializePPCReduceCRLogicalsPass()

void llvm::initializePPCReduceCRLogicalsPass ( PassRegistry )

◆ initializePPCTLSDynamicCallPass()

void llvm::initializePPCTLSDynamicCallPass ( PassRegistry )

◆ initializePPCTOCRegDepsPass()

void llvm::initializePPCTOCRegDepsPass ( PassRegistry )

◆ initializePPCVSXCopyPass()

void llvm::initializePPCVSXCopyPass ( PassRegistry )

◆ initializePPCVSXFMAMutatePass()

void llvm::initializePPCVSXFMAMutatePass ( PassRegistry )

◆ initializePPCVSXSwapRemovalPass()

void llvm::initializePPCVSXSwapRemovalPass ( PassRegistry )

◆ initializePredicateInfoPrinterLegacyPassPass()

void llvm::initializePredicateInfoPrinterLegacyPassPass ( PassRegistry )

◆ initializePreISelIntrinsicLoweringLegacyPassPass()

void llvm::initializePreISelIntrinsicLoweringLegacyPassPass ( PassRegistry )

Referenced by initializeCodeGen().

◆ initializePrintBasicBlockPassPass()

void llvm::initializePrintBasicBlockPassPass ( PassRegistry )

Referenced by initializeCore().

◆ initializePrintFunctionPassWrapperPass()

void llvm::initializePrintFunctionPassWrapperPass ( PassRegistry )

Referenced by initializeCore().

◆ initializePrintModulePassWrapperPass()

void llvm::initializePrintModulePassWrapperPass ( PassRegistry )

Referenced by initializeCore().

◆ initializeProcessImplicitDefsPass()

void llvm::initializeProcessImplicitDefsPass ( PassRegistry )

Referenced by initializeCodeGen().

◆ initializeProfileSummaryInfoWrapperPassPass()

void llvm::initializeProfileSummaryInfoWrapperPassPass ( PassRegistry )

Referenced by INITIALIZE_PASS().

◆ initializePromoteLegacyPassPass()

void llvm::initializePromoteLegacyPassPass ( PassRegistry )

◆ initializePruneEHPass()

void llvm::initializePruneEHPass ( PassRegistry )

◆ initializeR600ClauseMergePassPass()

void llvm::initializeR600ClauseMergePassPass ( PassRegistry )

◆ initializeR600ControlFlowFinalizerPass()

void llvm::initializeR600ControlFlowFinalizerPass ( PassRegistry )

◆ initializeR600EmitClauseMarkersPass()

void llvm::initializeR600EmitClauseMarkersPass ( PassRegistry )

◆ initializeR600ExpandSpecialInstrsPassPass()

void llvm::initializeR600ExpandSpecialInstrsPassPass ( PassRegistry )

◆ initializeR600PacketizerPass()

void llvm::initializeR600PacketizerPass ( PassRegistry )

◆ initializeR600VectorRegMergerPass()

void llvm::initializeR600VectorRegMergerPass ( PassRegistry )

◆ initializeRABasicPass()

void llvm::initializeRABasicPass ( PassRegistry )

Referenced by initializeCodeGen().

◆ initializeRAGreedyPass()

void llvm::initializeRAGreedyPass ( PassRegistry )

Referenced by initializeCodeGen().

◆ initializeReachingDefAnalysisPass()

void llvm::initializeReachingDefAnalysisPass ( PassRegistry )

◆ initializeReassociateLegacyPassPass()

void llvm::initializeReassociateLegacyPassPass ( PassRegistry )

◆ initializeRegAllocFastPass()

void llvm::initializeRegAllocFastPass ( PassRegistry )

Referenced by initializeCodeGen().

◆ initializeRegBankSelectPass()

void llvm::initializeRegBankSelectPass ( PassRegistry )

◆ initializeRegionInfoPassPass()

void llvm::initializeRegionInfoPassPass ( PassRegistry )

◆ initializeRegionOnlyPrinterPass()

void llvm::initializeRegionOnlyPrinterPass ( PassRegistry )

◆ initializeRegionOnlyViewerPass()

void llvm::initializeRegionOnlyViewerPass ( PassRegistry )

◆ initializeRegionPrinterPass()

void llvm::initializeRegionPrinterPass ( PassRegistry )

◆ initializeRegionViewerPass()

void llvm::initializeRegionViewerPass ( PassRegistry )

◆ initializeRegisterCoalescerPass()

void llvm::initializeRegisterCoalescerPass ( PassRegistry )

Referenced by initializeCodeGen().

◆ initializeRegToMemPass()

void llvm::initializeRegToMemPass ( PassRegistry )

Referenced by initializeScalarOpts().

◆ initializeRegUsageInfoCollectorPass()

void llvm::initializeRegUsageInfoCollectorPass ( PassRegistry )

Referenced by initializeCodeGen().

◆ initializeRegUsageInfoPropagationPass()

void llvm::initializeRegUsageInfoPropagationPass ( PassRegistry )

Referenced by initializeCodeGen().

◆ initializeRenameIndependentSubregsPass()

void llvm::initializeRenameIndependentSubregsPass ( PassRegistry )

Referenced by initializeCodeGen().

◆ initializeResetMachineFunctionPass()

void llvm::initializeResetMachineFunctionPass ( PassRegistry )

◆ initializeReversePostOrderFunctionAttrsLegacyPassPass()

void llvm::initializeReversePostOrderFunctionAttrsLegacyPassPass ( PassRegistry )

◆ initializeRewriteStatepointsForGCLegacyPassPass()

void llvm::initializeRewriteStatepointsForGCLegacyPassPass ( PassRegistry )

◆ initializeRewriteSymbolsLegacyPassPass()

void llvm::initializeRewriteSymbolsLegacyPassPass ( PassRegistry )

◆ initializeRISCVExpandPseudoPass()

void llvm::initializeRISCVExpandPseudoPass ( PassRegistry )

◆ initializeRISCVMergeBaseOffsetOptPass()

void llvm::initializeRISCVMergeBaseOffsetOptPass ( PassRegistry )

◆ initializeSafepointIRVerifierPass()

void llvm::initializeSafepointIRVerifierPass ( PassRegistry )

Referenced by initializeCore().

◆ initializeSafeStackLegacyPassPass()

void llvm::initializeSafeStackLegacyPassPass ( PassRegistry )

Referenced by initializeCodeGen().

◆ initializeSampleProfileLoaderLegacyPassPass()

void llvm::initializeSampleProfileLoaderLegacyPassPass ( PassRegistry )

Referenced by initializeIPO().

◆ initializeSanitizerCoverageModulePass()

void llvm::initializeSanitizerCoverageModulePass ( PassRegistry )

◆ initializeScalarEvolutionWrapperPassPass()

void llvm::initializeScalarEvolutionWrapperPassPass ( PassRegistry )

◆ initializeScalarizeMaskedMemIntrinPass()

void llvm::initializeScalarizeMaskedMemIntrinPass ( PassRegistry )

Referenced by initializeCodeGen().

◆ initializeScalarizerLegacyPassPass()

void llvm::initializeScalarizerLegacyPassPass ( PassRegistry )

Referenced by initializeScalarOpts().

◆ initializeScalarOpts()

void llvm::initializeScalarOpts ( PassRegistry Registry)

Initialize all passes linked into the ScalarOpts library.

initializeScalarOptsPasses - Initialize all passes linked into the ScalarOpts library.

Definition at line 36 of file Scalar.cpp.

References initializeADCELegacyPassPass(), initializeAlignmentFromAssumptionsPass(), initializeBDCELegacyPassPass(), initializeCallSiteSplittingLegacyPassPass(), initializeCFGSimplifyPassPass(), initializeConstantHoistingLegacyPassPass(), initializeConstantPropagationPass(), initializeCorrelatedValuePropagationPass(), initializeDCELegacyPassPass(), initializeDeadInstEliminationPass(), initializeDivRemPairsLegacyPassPass(), initializeDSELegacyPassPass(), initializeEarlyCSELegacyPassPass(), initializeEarlyCSEMemSSALegacyPassPass(), initializeEntryExitInstrumenterPass(), initializeFlattenCFGPassPass(), initializeFloat2IntLegacyPassPass(), initializeGuardWideningLegacyPassPass(), initializeGVNHoistLegacyPassPass(), initializeGVNLegacyPassPass(), initializeGVNSinkLegacyPassPass(), initializeIndVarSimplifyLegacyPassPass(), initializeInferAddressSpacesPass(), initializeInstSimplifyLegacyPassPass(), initializeIRCELegacyPassPass(), initializeJumpThreadingPass(), initializeLegacyLICMPassPass(), initializeLegacyLoopSinkPassPass(), initializeLoopAccessLegacyAnalysisPass(), initializeLoopDataPrefetchLegacyPassPass(), initializeLoopDeletionLegacyPassPass(), initializeLoopDistributeLegacyPass(), initializeLoopGuardWideningLegacyPassPass(), initializeLoopIdiomRecognizeLegacyPassPass(), initializeLoopInstSimplifyLegacyPassPass(), initializeLoopInterchangePass(), initializeLoopLoadEliminationPass(), initializeLoopPredicationLegacyPassPass(), initializeLoopRerollPass(), initializeLoopRotateLegacyPassPass(), initializeLoopSimplifyCFGLegacyPassPass(), initializeLoopStrengthReducePass(), initializeLoopUnrollAndJamPass(), initializeLoopUnrollPass(), initializeLoopUnswitchPass(), initializeLoopVersioningLICMPass(), initializeLoopVersioningPassPass(), initializeLowerAtomicLegacyPassPass(), initializeLowerExpectIntrinsicPass(), initializeLowerGuardIntrinsicLegacyPassPass(), initializeMakeGuardsExplicitLegacyPassPass(), initializeMemCpyOptLegacyPassPass(), initializeMergedLoadStoreMotionLegacyPassPass(), initializeMergeICmpsPass(), initializeNaryReassociateLegacyPassPass(), initializeNewGVNLegacyPassPass(), initializePartiallyInlineLibCallsLegacyPassPass(), initializePlaceBackedgeSafepointsImplPass(), initializePlaceSafepointsPass(), initializePostInlineEntryExitInstrumenterPass(), initializeReassociateLegacyPassPass(), initializeRegToMemPass(), initializeRewriteStatepointsForGCLegacyPassPass(), initializeScalarizerLegacyPassPass(), initializeSCCPLegacyPassPass(), initializeSeparateConstOffsetFromGEPPass(), initializeSimpleLoopUnswitchLegacyPassPass(), initializeSinkingLegacyPassPass(), initializeSpeculativeExecutionLegacyPassPass(), initializeSROALegacyPassPass(), initializeStraightLineStrengthReducePass(), initializeStructurizeCFGPass(), initializeTailCallElimPass(), and initializeWarnMissedTransformationsLegacyPass().

Referenced by LLVMInitializeScalarOpts().

◆ initializeScavengerTestPass()

void llvm::initializeScavengerTestPass ( PassRegistry )

◆ initializeSCCPLegacyPassPass()

void llvm::initializeSCCPLegacyPassPass ( PassRegistry )

◆ initializeSCEVAAWrapperPassPass()

void llvm::initializeSCEVAAWrapperPassPass ( PassRegistry )

◆ initializeScopedNoAliasAAWrapperPassPass()

void llvm::initializeScopedNoAliasAAWrapperPassPass ( PassRegistry )

◆ initializeSeparateConstOffsetFromGEPPass()

void llvm::initializeSeparateConstOffsetFromGEPPass ( PassRegistry )

Referenced by initializeScalarOpts().

◆ initializeShadowCallStackPass()

void llvm::initializeShadowCallStackPass ( PassRegistry )

Referenced by LLVMInitializeX86Target().

◆ initializeShadowStackGCLoweringPass()

void llvm::initializeShadowStackGCLoweringPass ( PassRegistry )

◆ initializeShrinkWrapPass()

void llvm::initializeShrinkWrapPass ( PassRegistry )

Referenced by initializeCodeGen().

◆ initializeSIAddIMGInitPass()

void llvm::initializeSIAddIMGInitPass ( PassRegistry )

◆ initializeSIAnnotateControlFlowPass()

void llvm::initializeSIAnnotateControlFlowPass ( PassRegistry )

◆ initializeSIDebuggerInsertNopsPass()

void llvm::initializeSIDebuggerInsertNopsPass ( PassRegistry )

◆ initializeSIFixSGPRCopiesPass()

void llvm::initializeSIFixSGPRCopiesPass ( PassRegistry )

◆ initializeSIFixupVectorISelPass()

void llvm::initializeSIFixupVectorISelPass ( PassRegistry )

◆ initializeSIFixVGPRCopiesPass()

void llvm::initializeSIFixVGPRCopiesPass ( PassRegistry )

◆ initializeSIFixWWMLivenessPass()

void llvm::initializeSIFixWWMLivenessPass ( PassRegistry )

◆ initializeSIFoldOperandsPass()

void llvm::initializeSIFoldOperandsPass ( PassRegistry )

◆ initializeSIFormMemoryClausesPass()

void llvm::initializeSIFormMemoryClausesPass ( PassRegistry )

◆ initializeSIInsertSkipsPass()

void llvm::initializeSIInsertSkipsPass ( PassRegistry )

◆ initializeSIInsertWaitcntsPass()

void llvm::initializeSIInsertWaitcntsPass ( PassRegistry )

◆ initializeSILoadStoreOptimizerPass()

void llvm::initializeSILoadStoreOptimizerPass ( PassRegistry )

◆ initializeSILowerControlFlowPass()

void llvm::initializeSILowerControlFlowPass ( PassRegistry )

◆ initializeSILowerI1CopiesPass()

void llvm::initializeSILowerI1CopiesPass ( PassRegistry )

◆ initializeSIMemoryLegalizerPass()

void llvm::initializeSIMemoryLegalizerPass ( PassRegistry )

◆ initializeSIModeRegisterPass()

void llvm::initializeSIModeRegisterPass ( PassRegistry )

◆ initializeSimpleInlinerPass()

void llvm::initializeSimpleInlinerPass ( PassRegistry )

◆ initializeSimpleLoopUnswitchLegacyPassPass()

void llvm::initializeSimpleLoopUnswitchLegacyPassPass ( PassRegistry )

◆ initializeSingleLoopExtractorPass()

void llvm::initializeSingleLoopExtractorPass ( PassRegistry )

Referenced by initializeIPO().

◆ initializeSinkingLegacyPassPass()

void llvm::initializeSinkingLegacyPassPass ( PassRegistry )

◆ initializeSIOptimizeExecMaskingPass()

void llvm::initializeSIOptimizeExecMaskingPass ( PassRegistry )

◆ initializeSIOptimizeExecMaskingPreRAPass()

void llvm::initializeSIOptimizeExecMaskingPreRAPass ( PassRegistry )

◆ initializeSIPeepholeSDWAPass()

void llvm::initializeSIPeepholeSDWAPass ( PassRegistry )

◆ initializeSIShrinkInstructionsPass()

void llvm::initializeSIShrinkInstructionsPass ( PassRegistry )

◆ initializeSIWholeQuadModePass()

void llvm::initializeSIWholeQuadModePass ( PassRegistry )

◆ initializeSjLjEHPreparePass()

void llvm::initializeSjLjEHPreparePass ( PassRegistry )

◆ initializeSlotIndexesPass()

void llvm::initializeSlotIndexesPass ( PassRegistry )

◆ initializeSLPVectorizerPass()

void llvm::initializeSLPVectorizerPass ( PassRegistry )

◆ initializeSpeculativeExecutionLegacyPassPass()

void llvm::initializeSpeculativeExecutionLegacyPassPass ( PassRegistry )

Referenced by initializeScalarOpts().

◆ initializeSpillPlacementPass()

void llvm::initializeSpillPlacementPass ( PassRegistry )

◆ initializeSROALegacyPassPass()

void llvm::initializeSROALegacyPassPass ( PassRegistry )

◆ initializeStackColoringPass()

void llvm::initializeStackColoringPass ( PassRegistry )

Referenced by initializeCodeGen().

◆ initializeStackMapLivenessPass()

void llvm::initializeStackMapLivenessPass ( PassRegistry )

◆ initializeStackProtectorPass()

void llvm::initializeStackProtectorPass ( PassRegistry )

◆ initializeStackSafetyGlobalInfoWrapperPassPass()

void llvm::initializeStackSafetyGlobalInfoWrapperPassPass ( PassRegistry )

◆ initializeStackSafetyInfoWrapperPassPass()

void llvm::initializeStackSafetyInfoWrapperPassPass ( PassRegistry )

◆ initializeStackSlotColoringPass()

void llvm::initializeStackSlotColoringPass ( PassRegistry )

Referenced by initializeCodeGen().

◆ initializeStraightLineStrengthReducePass()

void llvm::initializeStraightLineStrengthReducePass ( PassRegistry )

Referenced by initializeScalarOpts().

◆ initializeStripDeadDebugInfoPass()

void llvm::initializeStripDeadDebugInfoPass ( PassRegistry )

Referenced by initializeIPO().

◆ initializeStripDeadPrototypesLegacyPassPass()

void llvm::initializeStripDeadPrototypesLegacyPassPass ( PassRegistry )

◆ initializeStripDebugDeclarePass()

void llvm::initializeStripDebugDeclarePass ( PassRegistry )

Referenced by initializeIPO().

◆ initializeStripGCRelocatesPass()

void llvm::initializeStripGCRelocatesPass ( PassRegistry )

◆ initializeStripNonDebugSymbolsPass()

void llvm::initializeStripNonDebugSymbolsPass ( PassRegistry )

Referenced by initializeIPO().

◆ initializeStripNonLineTableDebugInfoPass()

void llvm::initializeStripNonLineTableDebugInfoPass ( PassRegistry )

◆ initializeStripSymbolsPass()

void llvm::initializeStripSymbolsPass ( PassRegistry )

Referenced by initializeIPO().

◆ initializeStructurizeCFGPass()

void llvm::initializeStructurizeCFGPass ( PassRegistry )

Referenced by initializeScalarOpts().

◆ initializeSystemZExpandPseudoPass()

void llvm::initializeSystemZExpandPseudoPass ( PassRegistry )

◆ initializeSystemZTDCPassPass()

void llvm::initializeSystemZTDCPassPass ( PassRegistry )

◆ initializeTailCallElimPass()

void llvm::initializeTailCallElimPass ( PassRegistry )

◆ initializeTailDuplicatePass()

void llvm::initializeTailDuplicatePass ( PassRegistry )

Referenced by initializeCodeGen().

◆ initializeTarget()

void llvm::initializeTarget ( PassRegistry Registry)

Initialize all passes linked into the CodeGen library.

Definition at line 39 of file Target.cpp.

References initializeTargetLibraryInfoWrapperPassPass(), and initializeTargetTransformInfoWrapperPassPass().

Referenced by LLVMInitializeTarget().

◆ initializeTargetLibraryInfoWrapperPassPass()

void llvm::initializeTargetLibraryInfoWrapperPassPass ( PassRegistry )

◆ initializeTargetPassConfigPass()

void llvm::initializeTargetPassConfigPass ( PassRegistry )

Referenced by initializeCodeGen().

◆ initializeTargetTransformInfoWrapperPassPass()

void llvm::initializeTargetTransformInfoWrapperPassPass ( PassRegistry )

◆ initializeThreadSanitizerLegacyPassPass()

void llvm::initializeThreadSanitizerLegacyPassPass ( PassRegistry )

◆ initializeThumb2SizeReducePass()

void llvm::initializeThumb2SizeReducePass ( PassRegistry )

Referenced by LLVMInitializeARMTarget().

◆ initializeTransformUtils()

void llvm::initializeTransformUtils ( PassRegistry Registry)

◆ initializeTwoAddressInstructionPassPass()

void llvm::initializeTwoAddressInstructionPassPass ( PassRegistry )

Referenced by initializeCodeGen().

◆ initializeTypeBasedAAWrapperPassPass()

void llvm::initializeTypeBasedAAWrapperPassPass ( PassRegistry )

◆ initializeUnifyFunctionExitNodesPass()

void llvm::initializeUnifyFunctionExitNodesPass ( PassRegistry )

◆ initializeUnpackMachineBundlesPass()

void llvm::initializeUnpackMachineBundlesPass ( PassRegistry )

Referenced by initializeCodeGen().

◆ initializeUnreachableBlockElimLegacyPassPass()

void llvm::initializeUnreachableBlockElimLegacyPassPass ( PassRegistry )

◆ initializeUnreachableMachineBlockElimPass()

void llvm::initializeUnreachableMachineBlockElimPass ( PassRegistry )

Referenced by initializeCodeGen().

◆ initializeVectorization()

void llvm::initializeVectorization ( PassRegistry Registry)

Initialize all passes linked into the Vectorize library.

initializeVectorizationPasses - Initialize all passes linked into the Vectorization library.

Definition at line 27 of file Vectorize.cpp.

References initializeLoadStoreVectorizerLegacyPassPass(), initializeLoopVectorizePass(), and initializeSLPVectorizerPass().

Referenced by LLVMInitializeVectorization().

◆ initializeVerifierLegacyPassPass()

void llvm::initializeVerifierLegacyPassPass ( PassRegistry )

Referenced by initializeCore(), and verifyModule().

◆ initializeVirtRegMapPass()

void llvm::initializeVirtRegMapPass ( PassRegistry )

Referenced by initializeCodeGen().

◆ initializeVirtRegRewriterPass()

void llvm::initializeVirtRegRewriterPass ( PassRegistry )

Referenced by initializeCodeGen().

◆ initializeWarnMissedTransformationsLegacyPass()

void llvm::initializeWarnMissedTransformationsLegacyPass ( PassRegistry )

◆ initializeWasmEHPreparePass()

void llvm::initializeWasmEHPreparePass ( PassRegistry )

Referenced by initializeCodeGen().

◆ initializeWebAssemblyAddMissingPrototypesPass()

void llvm::initializeWebAssemblyAddMissingPrototypesPass ( PassRegistry )

◆ initializeWebAssemblyArgumentMovePass()

void llvm::initializeWebAssemblyArgumentMovePass ( PassRegistry )

◆ initializeWebAssemblyCallIndirectFixupPass()

void llvm::initializeWebAssemblyCallIndirectFixupPass ( PassRegistry )

◆ initializeWebAssemblyCFGSortPass()

void llvm::initializeWebAssemblyCFGSortPass ( PassRegistry )

◆ initializeWebAssemblyCFGStackifyPass()

void llvm::initializeWebAssemblyCFGStackifyPass ( PassRegistry )

◆ initializeWebAssemblyEHRestoreStackPointerPass()

void llvm::initializeWebAssemblyEHRestoreStackPointerPass ( PassRegistry )

◆ initializeWebAssemblyExceptionInfoPass()

void llvm::initializeWebAssemblyExceptionInfoPass ( PassRegistry )

◆ initializeWebAssemblyExplicitLocalsPass()

void llvm::initializeWebAssemblyExplicitLocalsPass ( PassRegistry )

◆ initializeWebAssemblyFixIrreducibleControlFlowPass()

void llvm::initializeWebAssemblyFixIrreducibleControlFlowPass ( PassRegistry )

◆ initializeWebAssemblyLateEHPreparePass()

void llvm::initializeWebAssemblyLateEHPreparePass ( PassRegistry )

◆ initializeWebAssemblyLowerBrUnlessPass()

void llvm::initializeWebAssemblyLowerBrUnlessPass ( PassRegistry )

◆ initializeWebAssemblyLowerEmscriptenEHSjLjPass()

void llvm::initializeWebAssemblyLowerEmscriptenEHSjLjPass ( PassRegistry )

◆ initializeWebAssemblyMemIntrinsicResultsPass()

void llvm::initializeWebAssemblyMemIntrinsicResultsPass ( PassRegistry )

◆ initializeWebAssemblyOptimizeLiveIntervalsPass()

void llvm::initializeWebAssemblyOptimizeLiveIntervalsPass ( PassRegistry )

◆ initializeWebAssemblyPeepholePass()

void llvm::initializeWebAssemblyPeepholePass ( PassRegistry )

◆ initializeWebAssemblyPrepareForLiveIntervalsPass()

void llvm::initializeWebAssemblyPrepareForLiveIntervalsPass ( PassRegistry )

◆ initializeWebAssemblyRegColoringPass()

void llvm::initializeWebAssemblyRegColoringPass ( PassRegistry )

◆ initializeWebAssemblyRegNumberingPass()

void llvm::initializeWebAssemblyRegNumberingPass ( PassRegistry )

◆ initializeWebAssemblyRegStackifyPass()

void llvm::initializeWebAssemblyRegStackifyPass ( PassRegistry )

◆ initializeWebAssemblyReplacePhysRegsPass()

void llvm::initializeWebAssemblyReplacePhysRegsPass ( PassRegistry )

◆ initializeWebAssemblySetP2AlignOperandsPass()

void llvm::initializeWebAssemblySetP2AlignOperandsPass ( PassRegistry )

◆ initializeWholeProgramDevirtPass()

void llvm::initializeWholeProgramDevirtPass ( PassRegistry )

◆ initializeWinEHPreparePass()

void llvm::initializeWinEHPreparePass ( PassRegistry )

Referenced by initializeCodeGen().

◆ initializeWinEHStatePassPass()

void llvm::initializeWinEHStatePassPass ( PassRegistry )

Referenced by LLVMInitializeX86Target().

◆ initializeWriteBitcodePassPass()

void llvm::initializeWriteBitcodePassPass ( PassRegistry )

◆ initializeWriteThinLTOBitcodePass()

void llvm::initializeWriteThinLTOBitcodePass ( PassRegistry )

◆ initializeX86AvoidSFBPassPass()

void llvm::initializeX86AvoidSFBPassPass ( PassRegistry )

Referenced by LLVMInitializeX86Target().

◆ initializeX86CallFrameOptimizationPass()

void llvm::initializeX86CallFrameOptimizationPass ( PassRegistry )

Referenced by LLVMInitializeX86Target().

◆ initializeX86CmovConverterPassPass()

void llvm::initializeX86CmovConverterPassPass ( PassRegistry )

Referenced by LLVMInitializeX86Target().

◆ initializeX86CondBrFoldingPassPass()

void llvm::initializeX86CondBrFoldingPassPass ( PassRegistry )

Referenced by LLVMInitializeX86Target().

◆ initializeX86DomainReassignmentPass()

void llvm::initializeX86DomainReassignmentPass ( PassRegistry )

Referenced by LLVMInitializeX86Target().

◆ initializeX86ExecutionDomainFixPass()

void llvm::initializeX86ExecutionDomainFixPass ( PassRegistry )

Referenced by LLVMInitializeX86Target().

◆ initializeX86FlagsCopyLoweringPassPass()

void llvm::initializeX86FlagsCopyLoweringPassPass ( PassRegistry )

Referenced by LLVMInitializeX86Target().

◆ initializeX86SpeculativeLoadHardeningPassPass()

void llvm::initializeX86SpeculativeLoadHardeningPassPass ( PassRegistry )

Referenced by LLVMInitializeX86Target().

◆ initializeXCoreLowerThreadLocalPass()

void llvm::initializeXCoreLowerThreadLocalPass ( PassRegistry p)

◆ initializeXRayInstrumentationPass()

void llvm::initializeXRayInstrumentationPass ( PassRegistry )

Referenced by initializeCodeGen().

◆ InlineFunction() [1/3]

llvm::InlineResult llvm::InlineFunction ( CallInst C,
InlineFunctionInfo IFI,
AAResults CalleeAAR = nullptr,
bool  InsertLifetime = true 
)

This function inlines the called function into the basic block of the caller.

This returns false if it is not possible to inline this call. The program is still in a well defined state if this occurs though.

Note that this only does one level of inlining. For example, if the instruction 'call B' is inlined, and 'B' calls 'C', then the call to 'C' now exists in the instruction stream. Similarly this will inline a recursive function by one level.

Note that while this routine is allowed to cleanup and optimize the inlined code to minimize the actual inserted code, it must not delete code in the caller as users of this routine may have pointers to instructions in the caller that need to remain stable.

If ForwardVarArgsTo is passed, inlining a function with varargs is allowed and all varargs at the callsite will be passed to any calls to ForwardVarArgsTo. The caller of InlineFunction has to make sure any varargs are only used by ForwardVarArgsTo.

Definition at line 88 of file InlineFunction.cpp.

Referenced by callsiteIsHot(), hasProfileData(), InlineCallIfPossible(), InlineFunction(), InsertSafepointPoll(), llvm::InlineFunctionInfo::reset(), llvm::AlwaysInlinerPass::run(), and llvm::InlinerPass::run().

◆ InlineFunction() [2/3]

llvm::InlineResult llvm::InlineFunction ( InvokeInst II,
InlineFunctionInfo IFI,
AAResults CalleeAAR = nullptr,
bool  InsertLifetime = true 
)

◆ InlineFunction() [3/3]

llvm::InlineResult llvm::InlineFunction ( CallSite  CS,
InlineFunctionInfo IFI,
AAResults CalleeAAR = nullptr,
bool  InsertLifetime = true,
Function ForwardVarArgsTo = nullptr 
)

This function inlines the called function into the basic block of the caller.

This returns false if it is not possible to inline this call. The program is still in a well defined state if this occurs though.

Note that this only does one level of inlining. For example, if the instruction 'call B' is inlined, and 'B' calls 'C', then the call to 'C' now exists in the instruction stream. Similarly this will inline a recursive function by one level.

Definition at line 1502 of file InlineFunction.cpp.

References AddAliasScopeMetadata(), AddAlignmentAssumptions(), llvm::PHINode::addIncoming(), allocaWouldBeStaticInEntry(), llvm::SmallVectorImpl< T >::append(), llvm::CallSiteBase< FunTy, BBTy, ValTy, UserTy, UseTy, InstrTy, CallTy, InvokeTy, IterTy >::arg_begin(), llvm::Function::arg_begin(), llvm::CallBase::arg_begin(), llvm::Function::arg_end(), llvm::CallBase::arg_end(), llvm::CallBase::arg_operands(), assert(), llvm::Intrinsic::assume, llvm::AMDGPU::HSAMD::Kernel::Key::Attrs, llvm::SmallVectorTemplateCommon< T >::begin(), llvm::BasicBlock::begin(), llvm::Function::begin(), llvm::InlineFunctionInfo::CalleeBFI, llvm::InlineFunctionInfo::CallerBFI, llvm::InlineFunctionInfo::CG, changeToUnreachable(), classifyEHPersonality(), llvm::SmallVectorImpl< T >::clear(), CloneAliasScopeMetadata(), CloneAndPruneFunctionInto(), llvm::ClonedCodeInfo::ContainsCalls, llvm::ClonedCodeInfo::ContainsDynamicAllocas, llvm::CallInst::Create(), llvm::PHINode::Create(), llvm::BranchInst::Create(), llvm::InvokeInst::Create(), llvm::IRBuilder< T, Inserter >::CreateBitCast(), llvm::IRBuilder< T, Inserter >::CreateRet(), llvm::CallSiteBase< FunTy, BBTy, ValTy, UserTy, UseTy, InstrTy, CallTy, InvokeTy, IterTy >::doesNotThrow(), dyn_cast(), E, llvm::SmallVectorImpl< T >::emplace_back(), llvm::SmallVectorBase::empty(), llvm::SmallVectorTemplateCommon< T >::end(), llvm::Function::end(), llvm::iplist_impl< IntrusiveListT, TraitsT >::erase(), llvm::SmallVectorImpl< T >::erase(), llvm::Instruction::eraseFromParent(), llvm::BasicBlock::eraseFromParent(), llvm::Intrinsic::experimental_deoptimize, F(), fixupLineNumbers(), llvm::BasicBlock::front(), llvm::Function::front(), llvm::ConstantInt::get(), llvm::AttributeList::get(), llvm::UndefValue::get(), llvm::AllocaInst::getAllocatedType(), llvm::CallSiteBase< FunTy, BBTy, ValTy, UserTy, UseTy, InstrTy, CallTy, InvokeTy, IterTy >::getArgOperand(), llvm::AllocaInst::getArraySize(), llvm::InlineFunctionInfo::GetAssumptionCache, llvm::CallSiteBase< FunTy, BBTy, ValTy, UserTy, UseTy, InstrTy, CallTy, InvokeTy, IterTy >::getAttributes(), llvm::CallBase::getAttributes(), llvm::Function::getBasicBlockList(), llvm::BlockFrequencyInfo::getBlockFreq(), llvm::CallSiteBase< FunTy, BBTy, ValTy, UserTy, UseTy, InstrTy, CallTy, InvokeTy, IterTy >::getCalledFunction(), llvm::CallBase::getCalledFunction(), llvm::CallSiteBase< FunTy, BBTy, ValTy, UserTy, UseTy, InstrTy, CallTy, InvokeTy, IterTy >::getCalledValue(), llvm::CallBase::getCalledValue(), llvm::Function::getCallingConv(), llvm::CallBase::getCallingConv(), llvm::Value::getContext(), llvm::Module::getDataLayout(), getDebugLoc(), llvm::Instruction::getDebugLoc(), llvm::Intrinsic::getDeclaration(), llvm::Function::getEntryBlock(), llvm::Function::getEntryCount(), llvm::BasicBlock::getFirstNonPHI(), llvm::AttributeList::getFnAttributes(), llvm::BlockFrequency::getFrequency(), llvm::Instruction::getFunction(), llvm::Function::getFunctionType(), llvm::CallBase::getFunctionType(), llvm::Function::getGC(), llvm::BasicBlock::getInstList(), llvm::CallSiteBase< FunTy, BBTy, ValTy, UserTy, UseTy, InstrTy, CallTy, InvokeTy, IterTy >::getInstruction(), llvm::Type::getInt64Ty(), llvm::ilist_node_impl< OptionsT >::getIterator(), llvm::Value::getName(), llvm::CallSiteBase< FunTy, BBTy, ValTy, UserTy, UseTy, InstrTy, CallTy, InvokeTy, IterTy >::getNumArgOperands(), llvm::CallSiteBase< FunTy, BBTy, ValTy, UserTy, UseTy, InstrTy, CallTy, InvokeTy, IterTy >::getNumOperandBundles(), llvm::FunctionType::getNumParams(), llvm::Instruction::getOpcode(), llvm::CallSiteBase< FunTy, BBTy, ValTy, UserTy, UseTy, InstrTy, CallTy, InvokeTy, IterTy >::getOperandBundle(), llvm::CallSiteBase< FunTy, BBTy, ValTy, UserTy, UseTy, InstrTy, CallTy, InvokeTy, IterTy >::getOperandBundleAt(), llvm::CallSiteBase< FunTy, BBTy, ValTy, UserTy, UseTy, InstrTy, CallTy, InvokeTy, IterTy >::getOperandBundlesAsDefs(), llvm::CallBase::getOperandBundlesAsDefs(), llvm::Function::getParamAlignment(), llvm::AttributeList::getParamAttributes(), llvm::Instruction::getParent(), llvm::BasicBlock::getParent(), llvm::GlobalValue::getParent(), llvm::Function::getPersonalityFn(), llvm::AttributeList::getRetAttributes(), llvm::Function::getReturnType(), llvm::ReturnInst::getReturnValue(), llvm::Function::getSubprogram(), llvm::OperandBundleUse::getTagID(), llvm::CallInst::getTailCallKind(), llvm::BasicBlock::getTerminatingDeoptimizeCall(), llvm::BasicBlock::getTerminatingMustTailCall(), llvm::BasicBlock::getTerminator(), llvm::Value::getType(), getUnwindDestToken(), HandleByValArgument(), HandleByValArgumentInit(), HandleInlinedEHPad(), HandleInlinedLandingPad(), llvm::Function::hasGC(), hasLifetimeMarkers(), llvm::CallSiteBase< FunTy, BBTy, ValTy, UserTy, UseTy, InstrTy, CallTy, InvokeTy, IterTy >::hasOperandBundles(), llvm::Function::hasPersonalityFn(), I, llvm::InlineFunctionInfo::InlinedCallSites, llvm::OperandBundleUse::Inputs, isAsynchronousEHPersonality(), llvm::CallSiteBase< FunTy, BBTy, ValTy, UserTy, UseTy, InstrTy, CallTy, InvokeTy, IterTy >::isByValArgument(), llvm::CallSiteBase< FunTy, BBTy, ValTy, UserTy, UseTy, InstrTy, CallTy, InvokeTy, IterTy >::isCall(), llvm::GlobalValue::isDeclaration(), llvm::Instruction::isEHPad(), llvm::AttributeList::isEmpty(), llvm::CallInst::isMustTailCall(), isScopedEHPersonality(), llvm::AllocaInst::isSwiftError(), llvm::Type::isVoidTy(), make_range(), max(), MSVC_CXX, llvm::DIExpression::NoDeref, llvm::LLVMContext::OB_deopt, llvm::LLVMContext::OB_funclet, llvm::ClonedCodeInfo::OperandBundleCallSites, llvm::iplist_impl< IntrusiveListT, TraitsT >::pop_back(), pred_begin(), pred_end(), PropagateParallelLoopAccessMetadata(), llvm::InlineFunctionInfo::PSI, llvm::SmallVectorTemplateBase< T >::push_back(), remove_if(), llvm::Value::replaceAllUsesWith(), replaceDbgDeclareForAlloca(), llvm::SmallVectorImpl< T >::reserve(), llvm::InlineFunctionInfo::reset(), llvm::CallBase::setAttributes(), llvm::BlockFrequencyInfo::setBlockFreq(), llvm::Function::setCallingConv(), llvm::CallBase::setCallingConv(), llvm::Instruction::setDebugLoc(), llvm::CallBase::setDoesNotThrow(), llvm::Function::setGC(), llvm::User::setOperand(), llvm::Function::setPersonalityFn(), llvm::CallInst::setTailCallKind(), SimplifyInstruction(), llvm::SmallVectorBase::size(), llvm::iplist_impl< IntrusiveListT, TraitsT >::splice(), llvm::BasicBlock::splitBasicBlock(), llvm::Intrinsic::stackrestore, llvm::Intrinsic::stacksave, llvm::InlineFunctionInfo::StaticAllocas, llvm::Constant::stripPointerCasts(), llvm::Value::stripPointerCasts(), std::swap(), Tag, llvm::Value::takeName(), llvm::CallInst::TCK_None, llvm::CallInst::TCK_NoTail, updateCalleeCount(), updateCallerBFI(), UpdateCallGraphAfterInlining(), updateCallProfile(), and llvm::Value::use_empty().

◆ insertDebugValuesForPHIs()

void llvm::insertDebugValuesForPHIs ( BasicBlock BB,
SmallVectorImpl< PHINode *> &  InsertedPHIs 
)

◆ InsertPreheaderForLoop()

BasicBlock * llvm::InsertPreheaderForLoop ( Loop L,
DominatorTree DT,
LoopInfo LI,
bool  PreserveLCSSA 
)

InsertPreheaderForLoop - Once we discover that a loop doesn't have a preheader, this method is called to insert one.

This method has two phases: preheader insertion and analysis updating.

Definition at line 117 of file LoopSimplify.cpp.

References llvm::LoopBase< BlockT, LoopT >::contains(), dbgs(), llvm::LoopBase< BlockT, LoopT >::getHeader(), llvm::Value::getName(), llvm::BasicBlock::getTerminator(), LLVM_DEBUG, P, placeSplitBlockCarefully(), pred_begin(), pred_end(), llvm::SmallVectorTemplateBase< T >::push_back(), and SplitBlockPredecessors().

Referenced by asmClobbersCTR(), GetPointerOperand(), moveLCSSAPhis(), and simplifyOneLoop().

◆ inst_begin() [1/4]

inst_iterator llvm::inst_begin ( Function F)
inline

◆ inst_begin() [2/4]

const_inst_iterator llvm::inst_begin ( const Function F)
inline

Definition at line 137 of file InstIterator.h.

◆ inst_begin() [3/4]

inst_iterator llvm::inst_begin ( Function F)
inline

Definition at line 146 of file InstIterator.h.

◆ inst_begin() [4/4]

const_inst_iterator llvm::inst_begin ( const Function F)
inline

Definition at line 151 of file InstIterator.h.

◆ inst_end() [1/4]

inst_iterator llvm::inst_end ( Function F)
inline

◆ inst_end() [2/4]

const_inst_iterator llvm::inst_end ( const Function F)
inline

Definition at line 140 of file InstIterator.h.

◆ inst_end() [3/4]

inst_iterator llvm::inst_end ( Function F)
inline

Definition at line 147 of file InstIterator.h.

◆ inst_end() [4/4]

const_inst_iterator llvm::inst_end ( const Function F)
inline

Definition at line 154 of file InstIterator.h.

◆ install_bad_alloc_error_handler()

void llvm::install_bad_alloc_error_handler ( fatal_error_handler_t  handler,
void *  user_data = nullptr 
)

Installs a new bad alloc error handler that should be used whenever a bad alloc error, e.g.

failing malloc/calloc, is encountered by LLVM.

The user can install a bad alloc handler, in order to define the behavior in case of failing allocations, e.g. throwing an exception. Note that this handler must not trigger any additional allocations itself.

If no error handler is installed the default is to print the error message to stderr, and call exit(1). If an error handler is installed then it is the handler's responsibility to log the message, it will no longer be printed to stderr. If the error handler returns, then exit(1) will be called.

Parameters
user_data- An argument which will be passed to the installed error handler.

Definition at line 129 of file ErrorHandling.cpp.

References assert(), BadAllocErrorHandler, BadAllocErrorHandlerMutex, BadAllocErrorHandlerUserData, ErrorHandler, and Lock.

Referenced by llvm::ScopedFatalErrorHandler::~ScopedFatalErrorHandler().

◆ install_fatal_error_handler()

void llvm::install_fatal_error_handler ( fatal_error_handler_t  handler,
void *  user_data = nullptr 
)

install_fatal_error_handler - Installs a new error handler to be used whenever a serious (non-recoverable) error is encountered by LLVM.

If no error handler is installed the default is to print the error message to stderr, and call exit(1). If an error handler is installed then it is the handler's responsibility to log the message, it will no longer be printed to stderr. If the error handler returns, then exit(1) will be called.

It is dangerous to naively use an error handler which throws an exception. Even though some applications desire to gracefully recover from arbitrary faults, blindly throwing exceptions through unfamiliar code isn't a way to achieve this.

Parameters
user_data- An argument which will be passed to the install error handler.

Definition at line 64 of file ErrorHandling.cpp.

References assert(), ErrorHandler, ErrorHandlerMutex, ErrorHandlerUserData, and Lock.

Referenced by LLVMInstallFatalErrorHandler(), and llvm::ScopedFatalErrorHandler::ScopedFatalErrorHandler().

◆ install_out_of_memory_new_handler()

void llvm::install_out_of_memory_new_handler ( )

◆ instrprof_category()

const std::error_category & llvm::instrprof_category ( )

Definition at line 137 of file InstrProf.cpp.

References ErrorCategory.

Referenced by getPGOFuncNameMetadataName(), and make_error_code().

◆ instructions() [1/4]

inst_range llvm::instructions ( Function F)
inline

◆ instructions() [2/4]

const_inst_range llvm::instructions ( const Function F)
inline

Definition at line 143 of file InstIterator.h.

References inst_begin(), and inst_end().

◆ instructions() [3/4]

inst_range llvm::instructions ( Function F)
inline

Definition at line 148 of file InstIterator.h.

References inst_begin(), and inst_end().

◆ instructions() [4/4]

const_inst_range llvm::instructions ( const Function F)
inline

Definition at line 157 of file InstIterator.h.

References inst_begin(), and inst_end().

◆ intCCToAVRCC()

static AVRCC::CondCodes llvm::intCCToAVRCC ( ISD::CondCode  CC)
static

◆ internalizeModule()

bool llvm::internalizeModule ( Module TheModule,
std::function< bool(const GlobalValue &)>  MustPreserveGV,
CallGraph CG = nullptr 
)
inline

Helper function to internalize functions and variables in a Module.

Definition at line 71 of file Internalize.h.

References llvm::InternalizePass::InternalizePass().

Referenced by llvm::LTOCodeGenerator::compile(), and thinLTOInternalizeModule().

◆ interpretDecimal()

static void llvm::interpretDecimal ( StringRef::iterator  begin,
StringRef::iterator  end,
decimalInfo D 
)
static

◆ intersectAccessGroups()

MDNode * llvm::intersectAccessGroups ( const Instruction Inst1,
const Instruction Inst2 
)

Compute the access-group list of access groups that Inst1 and Inst2 are both in.

If either instruction does not access memory at all, it is considered to be in every list.

If the list contains just one access group, it is returned directly. If the list is empty, returns nullptr.

Definition at line 509 of file VectorUtils.cpp.

References addToAccessGroupList(), assert(), llvm::SmallPtrSetImpl< PtrType >::count(), llvm::Instruction::getMetadata(), llvm::MDNode::getNumOperands(), isValidAsAccessGroup(), llvm::Instruction::mayReadOrWriteMemory(), llvm::LLVMContext::MD_access_group, and llvm::SmallVectorTemplateBase< T >::push_back().

Referenced by combineMetadata(), and propagateMetadata().

◆ intersectModRef()

LLVM_NODISCARD ModRefInfo llvm::intersectModRef ( const ModRefInfo  MRI1,
const ModRefInfo  MRI2 
)
inline

◆ intervals_begin() [1/2]

function_interval_iterator llvm::intervals_begin ( Function F,
bool  DeleteInts = true 
)
inline

◆ intervals_begin() [2/2]

interval_part_interval_iterator llvm::intervals_begin ( IntervalPartition IP,
bool  DeleteIntervals = true 
)
inline

Definition at line 258 of file IntervalIterator.h.

◆ intervals_end() [1/2]

function_interval_iterator llvm::intervals_end ( Function )
inline

◆ intervals_end() [2/2]

interval_part_interval_iterator llvm::intervals_end ( IntervalPartition IP)
inline

Definition at line 262 of file IntervalIterator.h.

◆ IntrinsicIDToOverflowCheckFlavor()

static OverflowCheckFlavor llvm::IntrinsicIDToOverflowCheckFlavor ( unsigned  ID)
inlinestatic

◆ inverse_children()

template<class GraphType >
iterator_range<typename GraphTraits<Inverse<GraphType> >::ChildIteratorType> llvm::inverse_children ( const typename GraphTraits< GraphType >::NodeRef &  G)

Definition at line 129 of file GraphTraits.h.

References make_range().

◆ inverse_depth_first()

template<class T >
iterator_range<idf_iterator<T> > llvm::inverse_depth_first ( const T G)

Definition at line 277 of file DepthFirstIterator.h.

References idf_begin(), idf_end(), and make_range().

◆ inverse_depth_first_ext()

template<class T , class SetTy >
iterator_range<idf_ext_iterator<T, SetTy> > llvm::inverse_depth_first_ext ( const T G,
SetTy S 
)

Definition at line 301 of file DepthFirstIterator.h.

References idf_ext_begin(), idf_ext_end(), and make_range().

Referenced by isSafeToPromoteArgument(), and MarkBlocksLiveIn().

◆ inverse_nodes()

template<class GraphType >
iterator_range<typename GraphTraits<Inverse<GraphType> >::nodes_iterator> llvm::inverse_nodes ( const GraphType &  G)

Definition at line 115 of file GraphTraits.h.

References make_range().

◆ inverse_post_order()

template<class T >
iterator_range<ipo_iterator<T> > llvm::inverse_post_order ( const T G)

Definition at line 231 of file PostOrderIterator.h.

References ipo_begin(), ipo_end(), and make_range().

◆ inverse_post_order_ext()

template<class T , class SetType >
iterator_range<ipo_ext_iterator<T, SetType> > llvm::inverse_post_order_ext ( const T G,
SetType &  S 
)

◆ ipo_begin()

template<class T >
ipo_iterator<T> llvm::ipo_begin ( const T G)

◆ ipo_end()

template<class T >
ipo_iterator<T> llvm::ipo_end ( const T G)

◆ ipo_ext_begin()

template<class T , class SetType >
ipo_ext_iterator<T, SetType> llvm::ipo_ext_begin ( const T G,
SetType &  S 
)

◆ ipo_ext_end()

template<class T , class SetType >
ipo_ext_iterator<T, SetType> llvm::ipo_ext_end ( const T G,
SetType &  S 
)

◆ is_contained()

template<typename R , typename E >
bool llvm::is_contained ( R &&  Range,
const E Element 
)

Wrapper function around std::find to detect if an element exists in a container.

Definition at line 1245 of file STLExtras.h.

References adl_begin(), adl_end(), and find().

Referenced by llvm::MCAssembler::addFileName(), addRegDescribedVar(), llvm::GlobalsAAResult::alias(), llvm::AllocationOrder::AllocationOrder(), canMoveAboveCall(), llvm::TailDuplicator::canTailDuplicate(), llvm::TargetRegisterInfo::checkAllSuperRegsMarked(), colorEHFunclets(), ContainsReg(), llvm::VPRecipeBuilder::createEdgeMask(), createRdxShuffleMask(), DoInitialMatch(), llvm::object::ELFObjectFile< ELFT >::dynamic_relocation_sections(), llvm::Evaluator::EvaluateFunction(), FindAllMemoryUses(), FindMostPopularDest(), foldPatchpoint(), getChainID(), getInputChainForNode(), getInterfaceValue(), getNames(), llvm::DOTGraphTraits< BoUpSLP * >::getNodeAttributes(), getReassignedChan(), llvm::ARMBaseRegisterInfo::getRegAllocationHints(), llvm::TargetRegisterInfo::getRegAllocationHints(), llvm::cl::getRegisteredOptions(), llvm::LoopBase< BasicBlock, Loop >::getUniqueExitBlocks(), guessSuccessors(), llvm::CallBase::hasOperandBundlesOtherThan(), llvm::HexagonBlockRanges::RangeList::include(), llvm::MDNode::intersect(), isCallPromotable(), isEphemeralValueOf(), isExitBlock(), llvm::AllocationOrder::isHint(), isImageReadOnly(), isImageReadWrite(), isImageWriteOnly(), llvm::VLIWResourceModel::isInPacket(), llvm::LoadAndStorePromoter::isInstInList(), isLoopIncrement(), llvm::MachineBasicBlock::isPredecessor(), isSampler(), llvm::LiveIntervalUnion::Query::isSeenInterference(), llvm::MachineBasicBlock::isSuccessor(), llvm::Value::isUsedInBasicBlock(), lowerStatepointMetaArgs(), lowerV8I16GeneralSingleInputVectorShuffle(), matchPair(), mayUsePostIncMode(), llvm::pdb::NativeEnumGlobals::NativeEnumGlobals(), llvm::pdb::NativeEnumTypes::NativeEnumTypes(), llvm::PBQP::Graph< SolverT >::NodeItr::operator*(), llvm::PBQP::Graph< SolverT >::EdgeItr::operator*(), llvm::slpvectorizer::BoUpSLP::optimizeGatherSequence(), llvm::opt::OptTable::OptTable(), llvm::yaml::Scanner::peekNext(), populateExternalRelations(), llvm::PMDataManager::preserveHigherLevelAnalysis(), propagateMetadata(), llvm::SDValue::reachesChainWithoutSideEffects(), rematerializeLiveValues(), RemoveInstInputs(), llvm::PMDataManager::removeNotPreservedAnalysis(), llvm::DICompositeType::replaceElements(), llvm::DIMacroFile::replaceElements(), llvm::SelectionDAGISel::SelectCodeCommon(), llvm::MachineBasicBlock::SplitCriticalEdge(), llvm::slpvectorizer::BoUpSLP::vectorizeTree(), llvm::MemorySSA::verifyDomination(), and llvm::LoopBase< BasicBlock, Loop >::verifyLoop().

◆ is_splat()

template<typename R >
bool llvm::is_splat ( R &&  Range)

Wrapper function around std::equal to detect if all elements in a container are same.

Definition at line 1307 of file STLExtras.h.

References adl_begin(), adl_end(), llvm::lltok::equal, Size, and size().

Referenced by hasOnlySelectUsers().

◆ is_TC1()

bool llvm::is_TC1 ( unsigned  SchedClass)
inline

◆ is_TC2()

bool llvm::is_TC2 ( unsigned  SchedClass)
inline

Definition at line 72 of file HexagonDepTimingClasses.h.

Referenced by llvm::HexagonInstrInfo::isTC2().

◆ is_TC2early()

bool llvm::is_TC2early ( unsigned  SchedClass)
inline

Definition at line 47 of file HexagonDepTimingClasses.h.

Referenced by llvm::HexagonInstrInfo::isTC2Early().

◆ is_TC3x()

bool llvm::is_TC3x ( unsigned  SchedClass)
inline

◆ is_TC4x()

bool llvm::is_TC4x ( unsigned  SchedClass)
inline

◆ isa()

template<class X , class Y >
LLVM_NODISCARD bool llvm::isa ( const Y Val)
inline

Definition at line 142 of file Casting.h.

References X, and Y.

Referenced by llvm::DwarfUnit::applySubprogramAttributes(), and llvm::MCDwarfLoc::setIsa().

◆ isAArch64FrameOffsetLegal()

int llvm::isAArch64FrameOffsetLegal ( const MachineInstr MI,
int &  Offset,
bool OutUseUnscaledOp = nullptr,
unsigned OutUnscaledOp = nullptr,
int *  EmittableOffset = nullptr 
)

Check if the Offset is a valid frame offset for MI.

The returned value reports the validity of the frame offset for MI. It uses the values defined by AArch64FrameOffsetStatus for that. If result == AArch64FrameOffsetCannotUpdate, MI cannot be updated to use an offset.eq If result & AArch64FrameOffsetIsLegal, Offset can completely be rewritten in MI. If result & AArch64FrameOffsetCanUpdate, Offset contains the amount that is off the limit of the legal offset. If set, OutUseUnscaledOp will contain the whether MI should be turned into an unscaled operator, which opcode is in OutUnscaledOp. If set, EmittableOffset contains the amount that can be set in MI (possibly with OutUnscaledOp if OutUseUnscaledOp is true) and that is a legal offset.

Definition at line 3142 of file AArch64InstrInfo.cpp.

References AArch64FrameOffsetCannotUpdate, AArch64FrameOffsetCanUpdate, AArch64FrameOffsetIsLegal, llvm::MachineOperand::getImm(), llvm::MachineInstr::getOpcode(), llvm::MachineInstr::getOperand(), and llvm_unreachable.

Referenced by estimateRSStackSizeLimit(), llvm::AArch64RegisterInfo::isFrameOffsetLegal(), and rewriteAArch64FrameIndex().

◆ isAcquireOrStronger()

bool llvm::isAcquireOrStronger ( AtomicOrdering  ao)
inline

◆ isAESPair()

static bool llvm::isAESPair ( const MachineInstr FirstMI,
const MachineInstr SecondMI 
)
static

Definition at line 23 of file ARMMacroFusion.cpp.

References llvm::MachineInstr::getOpcode().

Referenced by shouldScheduleAdjacent().

◆ isAllocaPromotable()

bool llvm::isAllocaPromotable ( const AllocaInst AI)

Return true if this alloca is legal for promotion.

This is true if there are only loads, stores, and lifetime markers (transitively) using this alloca. This also enforces that there is only ever one layer of bitcasts or GEPs between the alloca and the lifetime markers.

Definition at line 65 of file PromoteMemoryToRegister.cpp.

References assert(), B, llvm::ArrayRef< T >::back(), llvm::ArrayRef< T >::begin(), llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::clear(), clear(), llvm::TinyPtrVector< EltTy >::clear(), llvm::SmallVectorImpl< T >::clear(), ComputeLiveInBlocks(), E, llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::end(), llvm::ArrayRef< T >::end(), llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::erase(), llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::find(), FindDbgAddrUses(), llvm::PointerType::getAddressSpace(), llvm::Module::getDataLayout(), llvm::Type::getInt8PtrTy(), llvm::User::getOperand(), llvm::Instruction::getParent(), llvm::BasicBlock::getParent(), llvm::GlobalValue::getParent(), llvm::DominatorTreeBase< NodeT, IsPostDom >::getRoot(), llvm::AllocaInst::getType(), I, Info, onlyUsedByLifetimeMarkers(), P, pred_size(), llvm::SmallVectorTemplateBase< T >::push_back(), SI, llvm::Value::user_begin(), llvm::Value::user_end(), llvm::Value::users(), and llvm::IndexedInstrProf::Version.

Referenced by GlobalWasGeneratedByCompiler(), promoteMemoryToRegister(), promoteSingleBlockAlloca(), and RetagMask().

◆ isAllocationFn()

bool llvm::isAllocationFn ( const Value V,
const TargetLibraryInfo TLI,
bool  LookThroughBitCast = false 
)

Tests if a value is a call or invoke to a library function that allocates or reallocates memory (either malloc, calloc, realloc, or strdup like).

Definition at line 223 of file MemoryBuiltins.cpp.

References AnyAlloc, and getAllocationData().

Referenced by CleanupPointerRootUsers(), isNoAliasFn(), IsSafeComputationToRemove(), and llvm::InstCombiner::visitGetElementPtrInst().

◆ isAllocLikeFn()

bool llvm::isAllocLikeFn ( const Value V,
const TargetLibraryInfo TLI,
bool  LookThroughBitCast = false 
)

Tests if a value is a call or invoke to a library function that allocates memory (either malloc, calloc, or strdup like).

Definition at line 262 of file MemoryBuiltins.cpp.

References AllocLike, and getAllocationData().

Referenced by computePointerICmp(), eliminateDeadStores(), findInitTrampoline(), llvm::GlobalsAAResult::getModRefBehavior(), handleEndBlock(), isNeverEqualToUnescapedAlloc(), isSafeToExecuteUnconditionally(), promoteLoopAccessesToScalars(), and wouldInstructionBeTriviallyDead().

◆ isAllOnesConstant()

bool llvm::isAllOnesConstant ( SDValue  V)

◆ isAllOnesOrAllOnesSplat()

bool llvm::isAllOnesOrAllOnesSplat ( SDValue  V)

Return true if the value is a constant -1 integer or a splatted vector of a constant -1 integer (with no undefs).

Does not permit build vector implicit truncation.

Definition at line 8638 of file SelectionDAG.cpp.

References C, llvm::SDValue::getScalarValueSizeInBits(), llvm::SDNode::getValueSizeInBits(), llvm::ConstantSDNode::isAllOnesValue(), isConstOrConstSplat(), and peekThroughBitcasts().

Referenced by calculateByteProvider(), llvm::ConstantFPSDNode::classof(), getAsNonOpaqueConstant(), simplifyDivRem(), and tryFoldToZero().

◆ isAlnum()

bool llvm::isAlnum ( char  C)
inline

Checks whether character C is either a decimal digit or an uppercase or lowercase letter as classified by "C" locale.

Definition at line 89 of file StringExtras.h.

References isAlpha(), and isDigit().

Referenced by IsIdentifierChar().

◆ isAlpha()

bool llvm::isAlpha ( char  C)
inline

Checks if character C is a valid letter as classified by "C" locale.

Definition at line 83 of file StringExtras.h.

Referenced by isAlnum().

◆ isARMArea1Register()

static bool llvm::isARMArea1Register ( unsigned  Reg,
bool  isIOS 
)
inlinestatic

isARMArea1Register - Returns true if the register is a low register (r0-r7) or a stack/pc register that we should push/pop.

Definition at line 44 of file ARMBaseRegisterInfo.h.

References R2, R4, and R6.

Referenced by llvm::ARMFrameLowering::restoreCalleeSavedRegisters(), and llvm::ARMFrameLowering::spillCalleeSavedRegisters().

◆ isARMArea2Register()

static bool llvm::isARMArea2Register ( unsigned  Reg,
bool  isIOS 
)
inlinestatic

◆ isARMArea3Register()

static bool llvm::isARMArea3Register ( unsigned  Reg,
bool  isIOS 
)
inlinestatic

◆ isARMLowRegister()

static bool llvm::isARMLowRegister ( unsigned  Reg)
inlinestatic

◆ isASCII() [1/2]

bool llvm::isASCII ( char  C)
inline

Checks whether character C is valid ASCII (high bit is zero).

Definition at line 92 of file StringExtras.h.

References C.

Referenced by isASCII(), and llvm::json::isUTF8().

◆ isASCII() [2/2]

bool llvm::isASCII ( llvm::StringRef  S)
inline

Checks whether all characters in S are ASCII.

Definition at line 95 of file StringExtras.h.

References C, isASCII(), and LLVM_UNLIKELY.

◆ isAssumeLikeIntrinsic()

bool llvm::isAssumeLikeIntrinsic ( const Instruction I)

◆ isAsynchronousEHPersonality()

bool llvm::isAsynchronousEHPersonality ( EHPersonality  Pers)
inline

◆ isAtLeastOrStrongerThan()

bool llvm::isAtLeastOrStrongerThan ( AtomicOrdering  ao,
AtomicOrdering  other 
)
inline

◆ isBasePlusOffsetMemoryAccess()

bool llvm::isBasePlusOffsetMemoryAccess ( unsigned  Opcode,
unsigned AddrIdx,
bool IsStore = nullptr 
)

◆ isBitcode()

bool llvm::isBitcode ( const unsigned char BufPtr,
const unsigned char BufEnd 
)
inline

isBitcode - Return true if the given bytes are the magic bytes for LLVM IR bitcode, either with or without a wrapper.

Definition at line 218 of file BitcodeReader.h.

References isBitcodeWrapper(), and isRawBitcode().

◆ isBitcodeContainingObjCCategory()

Expected< bool > llvm::isBitcodeContainingObjCCategory ( MemoryBufferRef  Buffer)

Return true if Buffer contains a bitcode file with ObjC code (category or class) in it.

Definition at line 6076 of file BitcodeReader.cpp.

References hasObjCCategory(), initStream(), and llvm::Expected< T >::takeError().

◆ isBitcodeWrapper()

bool llvm::isBitcodeWrapper ( const unsigned char BufPtr,
const unsigned char BufEnd 
)
inline

isBitcodeWrapper - Return true if the given bytes are the magic bytes for an LLVM IR bitcode wrapper.

Definition at line 192 of file BitcodeReader.h.

Referenced by initStream(), and isBitcode().

◆ isBitcodeWriterPass()

bool llvm::isBitcodeWriterPass ( Pass P)

Check whether a pass is a BitcodeWriterPass.

Definition at line 84 of file BitcodeWriterPass.cpp.

References llvm::Pass::getPassID().

◆ isBitwiseNot()

bool llvm::isBitwiseNot ( SDValue  V)

◆ isBytewiseValue()

Value * llvm::isBytewiseValue ( Value V)

If the specified value can be set by repeating the same byte in memory, return the i8 value that it is represented with.

This is true for all i8 values obviously, but is also true for i32 0, i32 -1, i16 0xF0F0, double 0.0 etc. If the value can't be handled with a repeated byte store (e.g. i16 0x1234), return null. If the value is entirely undef and padding, return undef.

Definition at line 3110 of file ValueTracking.cpp.

References assert(), C, dyn_cast(), E, llvm::ConstantInt::get(), llvm::UndefValue::get(), llvm::ConstantExpr::getBitCast(), llvm::Value::getContext(), llvm::Type::getInt16Ty(), llvm::Type::getInt32Ty(), llvm::Type::getInt64Ty(), llvm::Type::getInt8Ty(), llvm::Constant::getNullValue(), llvm::User::getNumOperands(), llvm::User::getOperand(), getSplatValue(), llvm::Value::getType(), I, llvm::Type::isIntegerTy(), llvm::Constant::isNullValue(), and Merge.

Referenced by getMemSetPatternValue(), getNumBytes(), hasUndefContents(), and moveUp().

◆ isCalleeSavedRegister()

static bool llvm::isCalleeSavedRegister ( unsigned  Reg,
const MCPhysReg CSRegs 
)
inlinestatic

Definition at line 90 of file ARMBaseRegisterInfo.h.

Referenced by isCSRestore(), and tryFoldSPUpdateIntoPushPop().

◆ isCallocLikeFn()

bool llvm::isCallocLikeFn ( const Value V,
const TargetLibraryInfo TLI,
bool  LookThroughBitCast = false 
)

Tests if a value is a call or invoke to a library function that allocates zero-filled memory (such as calloc).

Definition at line 247 of file MemoryBuiltins.cpp.

References CallocLike, and getAllocationData().

Referenced by alwaysAvailable(), eliminateNoopStore(), extractCallocCall(), and reportMayClobberedLoad().

◆ isCanonicalPredicate()

static bool llvm::isCanonicalPredicate ( CmpInst::Predicate  Pred)
inlinestatic

Predicate canonicalization reduces the number of patterns that need to be matched by other transforms.

For example, we may swap the operands of a conditional branch or select to create a compare with a canonical (inverted) predicate which is then more likely to be matched with other values.

Definition at line 99 of file InstCombineInternal.h.

References llvm::CmpInst::FCMP_OGE, llvm::CmpInst::FCMP_OLE, llvm::CmpInst::FCMP_ONE, llvm::CmpInst::ICMP_NE, llvm::CmpInst::ICMP_SGE, llvm::CmpInst::ICMP_SLE, llvm::CmpInst::ICMP_UGE, and llvm::CmpInst::ICMP_ULE.

Referenced by canonicalizeSaturatedSubtract(), and llvm::InstCombiner::visitBranchInst().

◆ isCondBranchOpcode() [1/2]

static bool llvm::isCondBranchOpcode ( int  Opc)
inlinestatic

◆ isCondBranchOpcode() [2/2]

static bool llvm::isCondBranchOpcode ( int  Opc)
inlinestatic

Definition at line 482 of file ARMBaseInstrInfo.h.

◆ isConsecutiveAccess()

bool llvm::isConsecutiveAccess ( Value A,
Value B,
const DataLayout DL,
ScalarEvolution SE,
bool  CheckType = true 
)

◆ IsConstantOffsetFromGlobal()

bool llvm::IsConstantOffsetFromGlobal ( Constant C,
GlobalValue *&  GV,
APInt Offset,
const DataLayout DL 
)

If this constant is a constant offset from a global, return the global and the constant.

Because of constantexprs, this function is recursive.

Definition at line 285 of file ConstantFolding.cpp.

References C, dyn_cast(), GEP, llvm::DataLayout::getIndexTypeSizeInBits(), and llvm::GlobalValue::getType().

Referenced by ConstantFoldLoadFromConstPtr(), ConstantFoldLoadThroughBitcast(), llvm::AsmPrinter::lowerConstant(), and SimplifyRelativeLoad().

◆ isConstOrConstSplat()

ConstantSDNode * llvm::isConstOrConstSplat ( SDValue  N,
bool  AllowUndefs = false 
)

◆ isConstOrConstSplatFP()

ConstantFPSDNode * llvm::isConstOrConstSplatFP ( SDValue  N,
bool  AllowUndefs = false 
)

◆ isCopyMulResult()

static bool llvm::isCopyMulResult ( MachineBasicBlock::iterator const I)
static

◆ IsCPSRDead()

template<typename InstrType >
bool llvm::IsCPSRDead ( const InstrType *  Instr)

Referenced by isV8EligibleForIT().

◆ IsCPSRDead< MachineInstr >()

◆ IsCPSRDead< MCInst >()

template<>
bool llvm::IsCPSRDead< MCInst > ( const MCInst Instr)
inline

Definition at line 9161 of file ARMAsmParser.cpp.

References llvm::ARMCC::AL, llvm::MCSubtargetInfo::ApplyFeatureFlag(), ARMMnemonicSpellCheck(), assert(), llvm::ARMBuildAttrs::AttrTypeFromString(), llvm::AsmToken::Comma, llvm::ARMBuildAttrs::compatibility, llvm::ARMBuildAttrs::CPU_name, llvm::ARMBuildAttrs::CPU_raw_name, llvm::MCSymbolRefExpr::create(), dbgs(), llvm::AsmToken::Dollar, llvm::MCInst::dump_pretty(), dyn_cast(), llvm::MCStreamer::EmitInstruction(), llvm::AsmToken::EndOfStatement, Error, Features, llvm::MCInstrDesc::findFirstPredOperandIdx(), Format, llvm::ARM::getArchName(), llvm::MCSubtargetInfo::getFeatureBits(), llvm::ARM::getFPUFeatures(), llvm::AsmToken::getIdentifier(), llvm::AsmToken::getIntVal(), llvm::AsmToken::getLoc(), llvm::MCInst::getOpcode(), llvm::MCInst::getOperand(), llvm::ARMCC::getOppositeCondition(), llvm::AsmToken::getString(), llvm::AsmToken::getStringContents(), getSubtargetFeatureName(), llvm::MCAsmParser::getTok(), getToken(), llvm::MCConstantExpr::getValue(), llvm::MCInstrDesc::hasDefOfPhysReg(), llvm::AsmToken::Hash, llvm::AsmToken::Identifier, llvm::AsmToken::Integer, llvm::ARM::INVALID, llvm::AsmToken::is(), llvm::MCInstrDesc::isBranch(), llvm::MCInstrDesc::isCall(), llvm::MCObjectFileInfo::IsCOFF, llvm::MCInstrDesc::isIndirectBranch(), llvm::MCObjectFileInfo::IsMachO, llvm::AsmToken::isNot(), llvm::MCInstrDesc::isPredicable(), llvm::MCInstrDesc::isReturn(), llvm::MCInstrDesc::isTerminator(), isThumb(), isV8EligibleForIT(), llvm::MCAsmParser::Lex(), LLVM_DEBUG, llvm_unreachable, llvm::StringRef::lower(), MCAF_Code16, MCAF_Code32, Mode, MRI, Name, llvm::ARM::EHABI::NUM_PERSONALITY_INDEX, llvm::SystemZISD::OC, llvm::ARM::parseArch(), llvm::MCParserUtils::parseAssignmentExpression(), llvm::MCAsmParser::parseExpression(), llvm::ARM::parseFPU(), llvm::MCAsmParser::parseIdentifier(), llvm::MCAsmParser::parseOptionalToken(), llvm::MCAsmParser::parseToken(), llvm::SmallVectorTemplateBase< T >::push_back(), Reg, llvm::ARMBuildAttrs::Section, llvm::MCSubtargetInfo::setDefaultFeatures(), llvm::MCInst::setLoc(), Size, llvm::AsmToken::String, llvm::ARMBuildAttrs::Symbol, T, Tag, llvm::StringRef::trim(), llvm::MCSection::UseCodeAlign(), llvm::MCSymbolRefExpr::VK_ARM_TLSDESCSEQ, and Warning.

◆ isCriticalEdge()

bool llvm::isCriticalEdge ( const Instruction TI,
unsigned  SuccNum,
bool  AllowIdenticalEdges = false 
)

Return true if the specified edge is a critical edge.

isCriticalEdge - Return true if the specified edge is a critical edge.

Critical edges are edges from a block with multiple successors to a block with multiple predecessors.

Definition at line 88 of file CFG.cpp.

References assert(), E, llvm::Instruction::getNumSuccessors(), llvm::Instruction::getSuccessor(), I, llvm::Instruction::isTerminator(), pred_begin(), and pred_end().

Referenced by llvm::CFGMST< Edge, BBInfo >::buildEdges(), DemoteRegToStack(), isOnlyReachableViaThisEdge(), and SplitCriticalEdge().

◆ isCurrentDebugType()

bool llvm::isCurrentDebugType ( const char DebugType)

isCurrentDebugType - Return true if the specified string is the debug type specified on the command line, or if none was specified on the command line with the -debug-only=X option.

Return true if the specified string is the debug type specified on the command line, or if none was specified on the command line with the -debug-only=X option.

Definition at line 51 of file Debug.cpp.

References setCurrentDebugTypes().

Referenced by INITIALIZE_PASS(), and isDebug().

◆ isDereferenceableAndAlignedPointer() [1/2]

bool llvm::isDereferenceableAndAlignedPointer ( const Value V,
unsigned  Align,
const DataLayout DL,
const Instruction CtxI = nullptr,
const DominatorTree DT = nullptr 
)

Returns true if V is always a dereferenceable pointer with alignment greater or equal than requested.

If the context instruction is specified performs context-sensitive analysis and returns true if the pointer is dereferenceable at the specified instruction.

Definition at line 129 of file Loads.cpp.

References llvm::DataLayout::getABITypeAlignment(), llvm::DataLayout::getIndexTypeSizeInBits(), llvm::Type::getPointerElementType(), llvm::Value::getType(), llvm::DataLayout::getTypeStoreSize(), isDereferenceableAndAlignedPointer(), and llvm::Type::isSized().

Referenced by canTransformToMemCmp(), createMemDerefPrinter(), llvm::MachinePointerInfo::isDereferenceable(), isDereferenceableAndAlignedPointer(), isDereferenceableForAllocaSize(), isDereferenceablePointer(), isSafeToLoadUnconditionally(), isSafeToSpeculativelyExecute(), and promoteLoopAccessesToScalars().

◆ isDereferenceableAndAlignedPointer() [2/2]

bool llvm::isDereferenceableAndAlignedPointer ( const Value V,
unsigned  Align,
const APInt Size,
const DataLayout DL,
const Instruction CtxI = nullptr,
const DominatorTree DT = nullptr 
)

Returns true if V is always dereferenceable for Size byte with alignment greater or equal than requested.

If the context instruction is specified performs context-sensitive analysis and returns true if the pointer is dereferenceable at the specified instruction.

Definition at line 119 of file Loads.cpp.

References isDereferenceableAndAlignedPointer().

◆ isDereferenceablePointer()

bool llvm::isDereferenceablePointer ( const Value V,
const DataLayout DL,
const Instruction CtxI = nullptr,
const DominatorTree DT = nullptr 
)

Return true if this is always a dereferenceable pointer.

If the context instruction is specified perform context-sensitive analysis and return true if the pointer is dereferenceable at the specified instruction.

Definition at line 153 of file Loads.cpp.

References isDereferenceableAndAlignedPointer().

Referenced by allCallersPassInValidPointerForArgument(), createMemDerefPrinter(), and hasOnlySelectUsers().

◆ isDigit()

bool llvm::isDigit ( char  C)
inline

Checks if character C is one of the 10 decimal digits.

Definition at line 77 of file StringExtras.h.

Referenced by llvm::StringRef::compare_numeric(), doHexLookAhead(), GetAutoSenseRadix(), intToken(), isAlnum(), IsIdentifierChar(), parseNamePrefix(), and llvm::AsmLexer::setBuffer().

◆ isFreeCall() [1/2]

const CallInst * llvm::isFreeCall ( const Value I,
const TargetLibraryInfo TLI 
)

◆ isFreeCall() [2/2]

CallInst* llvm::isFreeCall ( Value I,
const TargetLibraryInfo TLI 
)
inline

Definition at line 141 of file MemoryBuiltins.h.

References isFreeCall().

◆ IsFreeToInvert()

static bool llvm::IsFreeToInvert ( Value V,
bool  WillInvertAllUses 
)
inlinestatic

Return true if the specified value is free to invert (apply ~ to).

This happens in cases where the ~ can be eliminated. If WillInvertAllUses is true, work under the assumption that the caller intends to remove all uses of V and only keep uses of ~V.

Definition at line 142 of file InstCombineInternal.h.

References llvm::MCID::Add, llvm::Value::getType(), llvm::Type::getVectorNumElements(), llvm::Type::isVectorTy(), llvm::PatternMatch::m_Not(), llvm::PatternMatch::m_Select(), llvm::PatternMatch::m_Value(), and llvm::PatternMatch::match().

Referenced by canonicalizeSaturatedSubtract(), matchDeMorgansLaws(), sinkNotIntoXor(), llvm::InstCombiner::visitAnd(), llvm::InstCombiner::visitSub(), and llvm::InstCombiner::visitXor().

◆ isFuncletEHPersonality()

bool llvm::isFuncletEHPersonality ( EHPersonality  Pers)
inline

◆ isFunctionInPrintList()

bool llvm::isFunctionInPrintList ( StringRef  FunctionName)

isFunctionInPrintList - returns true if a function should be printed via

Definition at line 132 of file LegacyPassManager.cpp.

Referenced by llvm::CallGraphSCCPass::getAnalysisUsage(), llvm::PrintModulePass::run(), and llvm::PrintFunctionPass::run().

◆ isGCRelocate() [1/2]

bool llvm::isGCRelocate ( ImmutableCallSite  CS)

◆ isGCRelocate() [2/2]

bool llvm::isGCRelocate ( const Value V)

Definition at line 47 of file Statepoint.cpp.

References isGCRelocate().

◆ isGCResult() [1/2]

bool llvm::isGCResult ( ImmutableCallSite  CS)

◆ isGCResult() [2/2]

bool llvm::isGCResult ( const Value V)

Definition at line 57 of file Statepoint.cpp.

References isGCResult().

◆ isGEPBasedOnPointerToString()

bool llvm::isGEPBasedOnPointerToString ( const GEPOperator GEP,
unsigned  CharSize = 8 
)

◆ isGlobalRelativeToPICBase()

static bool llvm::isGlobalRelativeToPICBase ( unsigned char  TargetFlag)
inlinestatic

isGlobalRelativeToPICBase - Return true if the specified global value reference is relative to a 32-bit PIC base (X86ISD::GlobalBaseReg).

If this is true, the addressing mode has the PIC base register added in (e.g. EBX).

Definition at line 130 of file X86InstrInfo.h.

References llvm::X86II::MO_DARWIN_NONLAZY_PIC_BASE, llvm::X86II::MO_GOT, llvm::X86II::MO_GOTOFF, llvm::X86II::MO_PIC_BASE_OFFSET, and llvm::X86II::MO_TLVP.

Referenced by getLeaOP(), llvm::X86TargetLowering::isLegalAddressingMode(), and LowerEXTRACT_SUBVECTOR().

◆ isGlobalStubReference()

static bool llvm::isGlobalStubReference ( unsigned char  TargetFlag)
inlinestatic

isGlobalStubReference - Return true if the specified TargetFlag operand is a reference to a stub for a global, not the global itself.

Definition at line 113 of file X86InstrInfo.h.

References llvm::X86II::MO_COFFSTUB, llvm::X86II::MO_DARWIN_NONLAZY, llvm::X86II::MO_DARWIN_NONLAZY_PIC_BASE, llvm::X86II::MO_DLLIMPORT, llvm::X86II::MO_GOT, and llvm::X86II::MO_GOTPCREL.

Referenced by getLeaOP(), llvm::X86TargetLowering::isLegalAddressingMode(), llvm::X86TargetLowering::LowerAsmOperandForConstraint(), and LowerEXTRACT_SUBVECTOR().

◆ isGuaranteedToExecuteForEveryIteration()

bool llvm::isGuaranteedToExecuteForEveryIteration ( const Instruction I,
const Loop L 
)

Return true if this function can prove that the instruction I is executed for every iteration of the loop L.

Note that this currently only considers the loop header.

Definition at line 4344 of file ValueTracking.cpp.

References llvm::LoopBase< BlockT, LoopT >::getHeader(), llvm::Instruction::getParent(), isGuaranteedToTransferExecutionToSuccessor(), and llvm_unreachable.

Referenced by getRangeForAffineARHelper(), and isMustExecuteIn().

◆ isGuaranteedToTransferExecutionToSuccessor() [1/2]

bool llvm::isGuaranteedToTransferExecutionToSuccessor ( const Instruction I)

Return true if this function can prove that the instruction I will always transfer execution to one of its successors (including the next instruction that follows within a basic block).

E.g. this is not guaranteed for function calls that could loop infinitely.

In other words, this function returns false for instructions that may transfer execution or fail to transfer execution in a way that is not captured in the CFG nor in the sequence of instructions within a basic block.

Undefined behavior is assumed not to happen, so e.g. division is guaranteed to transfer execution to the following instruction even though division by zero might cause undefined behavior.

Definition at line 4274 of file ValueTracking.cpp.

References llvm::PatternMatch::match(), and SI.

Referenced by addArgumentAttrsFromCallsites(), llvm::SimpleLoopSafetyInfo::computeLoopSafetyInfo(), getRangeForAffineARHelper(), isGuaranteedToExecuteForEveryIteration(), isGuaranteedToTransferExecutionToSuccessor(), llvm::ImplicitControlFlowTracking::isSpecialInstruction(), llvm::JumpThreadingPass::ProcessBlock(), ReplaceFoldableUses(), llvm::InstCombiner::simplifyDivRemOfSelectWithZeroOp(), and llvm::JumpThreadingPass::SimplifyPartiallyRedundantLoad().

◆ isGuaranteedToTransferExecutionToSuccessor() [2/2]

bool llvm::isGuaranteedToTransferExecutionToSuccessor ( const BasicBlock BB)

Returns true if this block does not contain a potential implicit exit.

This is equivelent to saying that all instructions within the basic block are guaranteed to transfer execution to their successor within the basic block. This has the same assumptions w.r.t. undefined behavior as the instruction variant of this function.

Definition at line 4335 of file ValueTracking.cpp.

References llvm::BasicBlock::begin(), E, llvm::BasicBlock::end(), I, and isGuaranteedToTransferExecutionToSuccessor().

◆ isGuard()

bool llvm::isGuard ( const User U)

◆ isHexDigit()

bool llvm::isHexDigit ( char  C)
inline

Checks if character C is a hexadecimal numeric character.

Definition at line 80 of file StringExtras.h.

References hexDigitValue().

Referenced by doHexLookAhead(), hasConflictingReferenceFlags(), intToken(), and llvm::AsmLexer::setBuffer().

◆ isIdentifiedFunctionLocal()

bool llvm::isIdentifiedFunctionLocal ( const Value V)

Return true if V is umabigously identified at the function-level.

Different IdentifiedFunctionLocals can't alias. Further, an IdentifiedFunctionLocal can not alias with any function arguments other than itself, which is not necessarily true for IdentifiedObjects.

Definition at line 804 of file AliasAnalysis.cpp.

References isNoAliasArgument(), and isNoAliasCall().

Referenced by AddAliasScopeMetadata(), llvm::AAResultBase< TypeBasedAAResult >::getModRefInfo(), and MergeAliasResults().

◆ isIdentifiedObject()

bool llvm::isIdentifiedObject ( const Value V)

Return true if this pointer refers to a distinct and identifiable object.

This returns true for: Global Variables and Functions (but not Global Aliases) Allocas ByVal and NoAlias Arguments NoAlias returns (e.g. calls to malloc)

Definition at line 792 of file AliasAnalysis.cpp.

References isNoAliasCall().

Referenced by llvm::GlobalsAAResult::alias(), llvm::AAResults::callCapturesBefore(), llvm::AAResultBase< TypeBasedAAResult >::getModRefInfo(), getUnderlyingObjects(), getUnderlyingObjectsForCodeGen(), getUnderlyingObjectsForInstr(), isObjectSmallerThan(), MergeAliasResults(), and underlyingObjectsAlias().

◆ isImage()

bool llvm::isImage ( const Value val)

Definition at line 211 of file NVPTXUtilities.cpp.

References isImageReadOnly(), isImageReadWrite(), and isImageWriteOnly().

Referenced by getOpenCLAlignment().

◆ isImageReadOnly()

bool llvm::isImageReadOnly ( const Value val)

Definition at line 175 of file NVPTXUtilities.cpp.

References findAllNVVMAnnotation(), llvm::GlobalValue::getParent(), and is_contained().

Referenced by isImage().

◆ isImageReadWrite()

bool llvm::isImageReadWrite ( const Value val)

◆ isImageWriteOnly()

bool llvm::isImageWriteOnly ( const Value val)

◆ isImmSExti16i8Value()

bool llvm::isImmSExti16i8Value ( uint64_t  Value)
inline

Definition at line 17 of file X86AsmParserCommon.h.

References isInt< 8 >(), and isUInt< 16 >().

Referenced by llvm::X86Operand::isImmSExti16i8().

◆ isImmSExti32i8Value()

bool llvm::isImmSExti32i8Value ( uint64_t  Value)
inline

Definition at line 22 of file X86AsmParserCommon.h.

References isInt< 8 >(), and isUInt< 32 >().

Referenced by llvm::X86Operand::isImmSExti32i8().

◆ isImmSExti64i32Value()

bool llvm::isImmSExti64i32Value ( uint64_t  Value)
inline

Definition at line 31 of file X86AsmParserCommon.h.

References isInt< 32 >().

Referenced by llvm::X86Operand::isImmSExti64i32().

◆ isImmSExti64i8Value()

bool llvm::isImmSExti64i8Value ( uint64_t  Value)
inline

Definition at line 27 of file X86AsmParserCommon.h.

References isInt< 8 >().

Referenced by llvm::X86Operand::isImmSExti64i8().

◆ isImmUnsignedi8Value()

bool llvm::isImmUnsignedi8Value ( uint64_t  Value)
inline

Definition at line 35 of file X86AsmParserCommon.h.

References isInt< 8 >(), and isUInt< 8 >().

Referenced by llvm::X86Operand::isImmUnsignedi8().

◆ isImpliedByDomCondition()

Optional< bool > llvm::isImpliedByDomCondition ( const Value Cond,
const Instruction ContextI,
const DataLayout DL 
)

◆ isImpliedCondition()

Optional< bool > llvm::isImpliedCondition ( const Value LHS,
const Value RHS,
const DataLayout DL,
bool  LHSIsTrue = true,
unsigned  Depth = 0 
)

Return true if RHS is known to be implied true by LHS.

Return false if RHS is known to be implied false by LHS. Otherwise, return None if no implication can be made. A & B must be i1 (boolean) values or a vector of such values. Note that the truth table for implication is the same as <=u on i1 values (but not <=s!). The truth table for both is: | T | F (B) T | T | F F | T | T (A)

Definition at line 5360 of file ValueTracking.cpp.

References assert(), dyn_cast(), llvm::BinaryOperator::getOpcode(), llvm::Value::getType(), isImpliedCondAndOr(), isImpliedCondICmps(), llvm::Type::isIntegerTy(), llvm::Type::isIntOrIntVectorTy(), llvm::Type::isVectorTy(), and None.

Referenced by isImpliedByDomCondition(), isImpliedCondAndOr(), matchSelectPattern(), llvm::JumpThreadingPass::ProcessImpliedCondition(), processUGT_ADDCST_ADD(), simplifyICmpOfBools(), and llvm::JumpThreadingPass::ThreadGuard().

◆ isIndirectBranchOpcode() [1/2]

static bool llvm::isIndirectBranchOpcode ( int  Opc)
inlinestatic

◆ isIndirectBranchOpcode() [2/2]

static bool llvm::isIndirectBranchOpcode ( int  Opc)
inlinestatic

Definition at line 493 of file ARMBaseInstrInfo.h.

◆ isInlineViable()

bool llvm::isInlineViable ( Function Callee)

◆ isInstructionTriviallyDead()

bool llvm::isInstructionTriviallyDead ( Instruction I,
const TargetLibraryInfo TLI = nullptr 
)

◆ isInt()

template<unsigned N>
constexpr bool llvm::isInt ( int64_t  x)
inline

Checks if an integer fits into the given bit width.

Definition at line 299 of file MathExtras.h.

References N.

Referenced by llvm::BitTracker::MachineEvaluator::getRef().

◆ isInt< 16 >()

template<>
constexpr bool llvm::isInt< 16 > ( int64_t  x)
inline

Definition at line 306 of file MathExtras.h.

Referenced by llvm::PPCFrameLowering::addScavengingSpillSlot(), adjustFixupValue(), adjustPqBits(), llvm::MipsSEInstrInfo::adjustStackPtr(), llvm::Mips16InstrInfo::adjustStackPtr(), CC_MipsO32_FP64(), combineADDToADDZE(), llvm::PPCInstrInfo::convertToImmediateForm(), countMCSymbolRefExpr(), llvm::HexagonDAGToDAGISel::DetectUseSxtw(), llvm::PPCFrameLowering::eliminateCallFramePseudoInstr(), llvm::LanaiRegisterInfo::eliminateFrameIndex(), llvm::PPCRegisterInfo::eliminateFrameIndex(), llvm::PPCFrameLowering::emitEpilogue(), emitIncrement(), llvm::MipsTargetStreamer::emitLoadWithImmOffset(), llvm::MipsSEFrameLowering::emitPrologue(), llvm::PPCFrameLowering::emitPrologue(), llvm::MipsTargetStreamer::emitStoreWithImmOffset(), getComparePred(), llvm::SystemZTTIImpl::getIntImmCost(), llvm::PPCTTIImpl::getIntImmCost(), llvm::LanaiTTIImpl::getIntImmCost(), getLoadStoreOffsetAlign(), llvm::SystemZTargetLowering::getSingleConstraintMatchWeight(), llvm::MipsTargetLowering::getTypeForExtReturn(), llvm::MipsSEFrameLowering::hasReservedCallFrame(), INITIALIZE_PASS(), llvm::MipsAnalyzeImmediate::Inst::Inst(), isDebug(), llvm::PPCRegisterInfo::isFrameOffsetLegal(), llvm::SIInstrInfo::isInlineConstant(), isKImmOperand(), isKImmOrKUImmOperand(), llvm::PPCTargetLowering::isLegalAddImmediate(), llvm::PPCTargetLowering::isLegalICmpImmediate(), isRegOrImmWithInputMods(), isShiftedUIntAtAnyPosition(), llvm::SystemZInstrInfo::loadImmediate(), llvm::LanaiTargetLowering::LowerAsmOperandForConstraint(), llvm::SystemZTargetLowering::LowerAsmOperandForConstraint(), llvm::PPCTargetLowering::LowerAsmOperandForConstraint(), llvm::PPCRegisterInfo::lowerDynamicAlloc(), llvm::Mips16InstrInfo::makeFrame(), mayUseP9Setb(), Mips16WhichOp8uOr16simm(), nextReg(), PeepholePPC64ZExtGather(), llvm::AMDGPUInstPrinter::printInst(), llvm::PPCFrameLowering::replaceFPWithRealFP(), llvm::R600TargetLowering::ReplaceNodeResults(), llvm::Mips16InstrInfo::restoreFrame(), selectI64Imm(), selectI64ImmDirect(), selectI64ImmInstrCountDirect(), shouldSwapCmpOperands(), shouldUseLA(), supportedAddressingMode(), tryBuildVectorReplicate(), llvm::Mips16InstrInfo::validImmediate(), and llvm::SIInstrInfo::verifyInstruction().

◆ isInt< 32 >()

template<>
constexpr bool llvm::isInt< 32 > ( int64_t  x)
inline

◆ isInt< 8 >()

template<>
constexpr bool llvm::isInt< 8 > ( int64_t  x)
inline

◆ isInTailCallPosition()

bool llvm::isInTailCallPosition ( ImmutableCallSite  CS,
const TargetMachine TM 
)

◆ isIntN()

bool llvm::isIntN ( unsigned  N,
int64_t  x 
)
inline

◆ isIntrinsicReturningPointerAliasingArgumentWithoutCapturing()

bool llvm::isIntrinsicReturningPointerAliasingArgumentWithoutCapturing ( const CallBase Call)

◆ isIntS16Immediate() [1/2]

bool llvm::isIntS16Immediate ( SDNode N,
int16_t &  Imm 
)

isIntS16Immediate - This method tests to see if the node is either a 32-bit or 64-bit immediate, and if the value can be accurately represented as a sign extension from a 16-bit value.

If so, this returns true and the immediate.

Definition at line 2191 of file PPCISelLowering.cpp.

References llvm::SDNode::getValueType(), llvm::MVT::i32, and N.

Referenced by llvm::PPCTargetLowering::functionArgumentNeedsConsecutiveRegisters(), getVCmpInst(), isIntS16Immediate(), mayUseP9Setb(), llvm::PPCTargetLowering::SelectAddressRegImm(), llvm::PPCTargetLowering::SelectAddressRegReg(), llvm::PPCTargetLowering::SelectAddressRegRegOnly(), and selectI64Imm().

◆ isIntS16Immediate() [2/2]

bool llvm::isIntS16Immediate ( SDValue  Op,
int16_t &  Imm 
)

Definition at line 2201 of file PPCISelLowering.cpp.

References llvm::SDValue::getNode(), and isIntS16Immediate().

◆ isIRPGOFlagSet()

bool llvm::isIRPGOFlagSet ( const Module M)

Check if INSTR_PROF_RAW_VERSION_VAR is defined.

This global is only being set in IR PGO compilation.

Definition at line 952 of file InstrProf.cpp.

References llvm::Module::getNamedGlobal().

Referenced by getInstrProfNameSeparator(), and getVarName().

◆ isIRPrintingPass()

bool llvm::isIRPrintingPass ( Pass P)

Return true if a pass is for IR printing.

Definition at line 155 of file IRPrintingPasses.cpp.

References llvm::Pass::getPassID().

◆ isJumpTableBranchOpcode()

static bool llvm::isJumpTableBranchOpcode ( int  Opc)
inlinestatic

Definition at line 486 of file ARMBaseInstrInfo.h.

Referenced by llvm::ARMBaseInstrInfo::analyzeBranch().

◆ isKernelFunction()

bool llvm::isKernelFunction ( const Function F)

◆ isKnownNegation()

bool llvm::isKnownNegation ( const Value X,
const Value Y,
bool  NeedNSW = false 
)

Return true if the two given values are negation.

Currently can recoginze Value pair: 1: <X, Y> if X = sub (0, Y) or Y = sub (0, X) 2: <X, Y> if X = sub (A, B) and Y = sub (B, A)

Definition at line 4768 of file ValueTracking.cpp.

References assert(), B, llvm::PatternMatch::m_NSWSub(), llvm::PatternMatch::m_Specific(), llvm::PatternMatch::m_Sub(), llvm::PatternMatch::m_Value(), llvm::PatternMatch::m_ZeroInt(), and llvm::PatternMatch::match().

Referenced by canonicalizeSaturatedSubtract(), matchSelectPattern(), SimplifyAddInst(), SimplifySDivInst(), and SimplifySRemInst().

◆ isKnownNegative()

bool llvm::isKnownNegative ( const Value V,
const DataLayout DL,
unsigned  Depth = 0,
AssumptionCache AC = nullptr,
const Instruction CxtI = nullptr,
const DominatorTree DT = nullptr,
bool  UseInstrInfo = true 
)

◆ isKnownNegativeInLoop()

bool llvm::isKnownNegativeInLoop ( const SCEV S,
const Loop L,
ScalarEvolution SE 
)

Returns true if we can prove that S is defined and always negative in loop L.

Definition at line 935 of file LoopUtils.cpp.

References llvm::SCEV::getType(), llvm::ScalarEvolution::getZero(), llvm::CmpInst::ICMP_SLT, llvm::ScalarEvolution::isAvailableAtLoopEntry(), and llvm::ScalarEvolution::isLoopEntryGuardedByCond().

◆ isKnownNeverNaN()

bool llvm::isKnownNeverNaN ( const Value V,
const TargetLibraryInfo TLI,
unsigned  Depth = 0 
)

◆ isKnownNonEqual()

bool llvm::isKnownNonEqual ( const Value V1,
const Value V2,
const DataLayout DL,
AssumptionCache AC = nullptr,
const Instruction CxtI = nullptr,
const DominatorTree DT = nullptr,
bool  UseInstrInfo = true 
)

Return true if the given values are known to be non-equal when defined.

Supports scalar integer types only.

Definition at line 278 of file ValueTracking.cpp.

References isKnownNonEqual(), llvm::BitmaskEnumDetail::Mask(), MaskedValueIsZero(), Query(), and safeCxtI().

Referenced by aliasSameBasePointerGEPs(), isKnownNegative(), and SimplifyICmpInst().

◆ isKnownNonNegative()

bool llvm::isKnownNonNegative ( const Value V,
const DataLayout DL,
unsigned  Depth = 0,
AssumptionCache AC = nullptr,
const Instruction CxtI = nullptr,
const DominatorTree DT = nullptr,
bool  UseInstrInfo = true 
)

◆ isKnownNonNegativeInLoop()

bool llvm::isKnownNonNegativeInLoop ( const SCEV S,
const Loop L,
ScalarEvolution SE 
)

Returns true if we can prove that S is defined and always non-negative in loop L.

Definition at line 942 of file LoopUtils.cpp.

References llvm::SCEV::getType(), llvm::ScalarEvolution::getZero(), llvm::CmpInst::ICMP_SGE, llvm::ScalarEvolution::isAvailableAtLoopEntry(), and llvm::ScalarEvolution::isLoopEntryGuardedByCond().

◆ isKnownNonZero()

bool llvm::isKnownNonZero ( const Value V,
const DataLayout DL,
unsigned  Depth = 0,
AssumptionCache AC = nullptr,
const Instruction CxtI = nullptr,
const DominatorTree DT = nullptr,
bool  UseInstrInfo = true 
)

Return true if the given value is known to be non-zero when defined.

For vectors, return true if every element is known to be non-zero when defined. For pointers, if the context instruction and dominator tree are specified, perform context-sensitive analysis and return true if the pointer couldn't possibly be null at the specified instruction. Supports values with integer or pointer type and vectors of integers.

Definition at line 240 of file ValueTracking.cpp.

References isKnownNonZero(), Query(), and safeCxtI().

Referenced by computeKnownBitsFromShiftOperator(), computeKnownBitsMul(), computePointerICmp(), findInitTrampoline(), foldCttzCtlz(), getFromRangeMetadata(), llvm::LazyValueInfo::getPredicateAt(), llvm::ScalarEvolution::getSignedRangeMax(), isAddOfNonZero(), isDereferenceableAndAlignedPointer(), isGEPKnownNonNull(), isKnownNonZero(), isKnownPositive(), isKnownToBeAPowerOfTwo(), llvm::ScalarEvolution::isLoopInvariantPredicate(), isObjectDereferencedInBlock(), isReturnNonNull(), matchSelectPattern(), promoteSingleBlockAlloca(), rewriteSingleStoreAlloca(), simplifyICmpWithZero(), updateForIncomingValueLocation(), llvm::InstCombiner::visitCallInst(), and llvm::InstCombiner::visitPHINode().

◆ isKnownPositive()

bool llvm::isKnownPositive ( const Value V,
const DataLayout DL,
unsigned  Depth = 0,
AssumptionCache AC = nullptr,
const Instruction CxtI = nullptr,
const DominatorTree DT = nullptr,
bool  UseInstrInfo = true 
)

◆ isKnownToBeAPowerOfTwo()

bool llvm::isKnownToBeAPowerOfTwo ( const Value V,
const DataLayout DL,
bool  OrZero = false,
unsigned  Depth = 0,
AssumptionCache AC = nullptr,
const Instruction CxtI = nullptr,
const DominatorTree DT = nullptr,
bool  UseInstrInfo = true 
)

Return true if the given value is known to have exactly one bit set when defined.

For vectors return true if every element is known to be a power of two when defined. Supports values with integer or pointer type and vectors of integers. If 'OrZero' is set, then return true if the given value is either a power of two or zero.

Definition at line 230 of file ValueTracking.cpp.

References isKnownNonZero(), isKnownToBeAPowerOfTwo(), Query(), and safeCxtI().

Referenced by computeKnownBitsFromAssume(), foldAndOrOfEqualityCmpsWithConstants(), isKnownNonZero(), isKnownToBeAPowerOfTwo(), llvm::InstCombiner::isKnownToBeAPowerOfTwo(), isOnlyUsedInZeroEqualityComparison(), SimplifyAndInst(), llvm::InstCombiner::visitICmpInst(), llvm::InstCombiner::visitSDiv(), and llvm::InstCombiner::visitURem().

◆ isLeaMem()

static bool llvm::isLeaMem ( const MachineInstr MI,
unsigned  Op 
)
inlinestatic

◆ isLegalToPromote()

bool llvm::isLegalToPromote ( CallSite  CS,
Function Callee,
const char **  FailureReason = nullptr 
)

◆ isLegalUTF8()

static Boolean llvm::isLegalUTF8 ( const UTF8 source,
int  length 
)
static

◆ isLegalUTF8Sequence()

Boolean llvm::isLegalUTF8Sequence ( const UTF8 source,
const UTF8 sourceEnd 
)

Definition at line 413 of file ConvertUTF.cpp.

References isLegalUTF8().

Referenced by findMaximalSubpartOfIllFormedUTF8Sequence().

◆ isLegalUTF8String()

Boolean llvm::isLegalUTF8String ( const UTF8 **  source,
const UTF8 sourceEnd 
)

Definition at line 530 of file ConvertUTF.cpp.

References isLegalUTF8().

Referenced by ConvertUTF8toWide(), and llvm::json::isUTF8().

◆ isLiteralsPair()

static bool llvm::isLiteralsPair ( const MachineInstr FirstMI,
const MachineInstr SecondMI 
)
static

Definition at line 39 of file ARMMacroFusion.cpp.

References llvm::MachineInstr::getOpcode().

Referenced by shouldScheduleAdjacent().

◆ isMallocLikeFn()

bool llvm::isMallocLikeFn ( const Value V,
const TargetLibraryInfo TLI,
bool  LookThroughBitCast = false 
)

Tests if a value is a call or invoke to a library function that allocates uninitialized memory (such as malloc).

Definition at line 240 of file MemoryBuiltins.cpp.

References getAllocationData(), and MallocLike.

Referenced by alwaysAvailable(), extractMallocCall(), getMallocArraySize(), getMallocType(), and reportMayClobberedLoad().

◆ isMallocOrCallocLikeFn()

bool llvm::isMallocOrCallocLikeFn ( const Value V,
const TargetLibraryInfo TLI,
bool  LookThroughBitCast = false 
)

Tests if a value is a call or invoke to a library function that allocates memory similar to malloc or calloc.

Definition at line 254 of file MemoryBuiltins.cpp.

References getAllocationData(), and MallocOrCallocLike.

Referenced by llvm::BasicAAResult::getModRefInfo().

◆ isManaged()

bool llvm::isManaged ( const Value val)

Definition at line 215 of file NVPTXUtilities.cpp.

References assert(), and findOneNVVMAnnotation().

Referenced by llvm::NVPTXAsmPrinter::doFinalization().

◆ isMask_32()

constexpr bool llvm::isMask_32 ( uint32_t  Value)
inline

Return true if the argument is a non-empty sequence of ones starting at the least significant bit with the remainder zero (32 bit version).

Ex. isMask_32(0x0000FFFFU) == true.

Definition at line 405 of file MathExtras.h.

Referenced by CombineANDShift(), isImmMskBitp(), isShiftedMask_32(), and isStackPtrRelative().

◆ isMask_64()

constexpr bool llvm::isMask_64 ( uint64_t  Value)
inline

Return true if the argument is a non-empty sequence of ones starting at the least significant bit with the remainder zero (64 bit version).

Definition at line 411 of file MathExtras.h.

Referenced by llvm::AArch64TargetLowering::isDesirableToCommuteWithShift(), isEndChunk(), llvm::APInt::isMask(), isSeveralBitsExtractOpFromShr(), isShiftedMask_64(), isStartChunk(), and mayUseP9Setb().

◆ isMathLibCallNoop()

bool llvm::isMathLibCallNoop ( CallSite  CS,
const TargetLibraryInfo TLI 
)

◆ isMem()

static bool llvm::isMem ( const MachineInstr MI,
unsigned  Op 
)
inlinestatic

◆ isModAndRefSet()

LLVM_NODISCARD bool llvm::isModAndRefSet ( const ModRefInfo  MRI)
inline

◆ isModOrRefSet()

LLVM_NODISCARD bool llvm::isModOrRefSet ( const ModRefInfo  MRI)
inline

◆ isModSet()

LLVM_NODISCARD bool llvm::isModSet ( const ModRefInfo  MRI)
inline

◆ isMustSet()

LLVM_NODISCARD bool llvm::isMustSet ( const ModRefInfo  MRI)
inline

Definition at line 156 of file AliasAnalysis.h.

References MRI, and NoModRef.

Referenced by llvm::AAResults::getModRefInfo(), and instructionClobbersQuery().

◆ isNoAliasArgument()

bool llvm::isNoAliasArgument ( const Value V)

Return true if this is an argument with the noalias attribute.

Definition at line 786 of file AliasAnalysis.cpp.

Referenced by llvm::AAResultBase< TypeBasedAAResult >::getModRefInfo(), and isIdentifiedFunctionLocal().

◆ isNoAliasCall()

bool llvm::isNoAliasCall ( const Value V)

◆ isNoAliasFn()

bool llvm::isNoAliasFn ( const Value V,
const TargetLibraryInfo TLI,
bool  LookThroughBitCast = false 
)

Tests if a value is a call or invoke to a function that returns a NoAlias pointer (including malloc/calloc/realloc/strdup-like functions).

Definition at line 230 of file MemoryBuiltins.cpp.

References hasNoAliasAttr(), and isAllocationFn().

Referenced by llvm::MemoryDependenceResults::getSimplePointerDependencyFrom().

◆ isNoModRef()

LLVM_NODISCARD bool llvm::isNoModRef ( const ModRefInfo  MRI)
inline

◆ isNoOpWithoutInvoke()

bool llvm::isNoOpWithoutInvoke ( EHPersonality  Pers)
inline

Return true if this personality may be safely removed if there are no invoke instructions remaining in the current function.

Definition at line 96 of file EHPersonalities.h.

References canSimplifyInvokeNoUnwind(), F(), llvm_unreachable, and Unknown.

Referenced by llvm::DwarfCFIException::beginFunction(), llvm::WinException::beginFunction(), llvm::ARMException::endFunction(), and needFuncLabelsForEHOrDebugInfo().

◆ isNullConstant()

bool llvm::isNullConstant ( SDValue  V)

Returns true if V is a constant integer zero.

Definition at line 8555 of file SelectionDAG.cpp.

References dyn_cast(), and llvm::ConstantSDNode::isNullValue().

Referenced by AddCombineTo64bitUMAAL(), calculateByteProvider(), canFoldInAddressingMode(), checkBoolTestAndOrSetCCCombine(), llvm::ConstantFPSDNode::classof(), combineBitcast(), combineCMov(), combineCMP(), combineExtractVectorElt(), combineFMA(), combineInsertSubvector(), combineMaskedLoadConstantMask(), combineMinNumMaxNum(), combineOrCmpEqZeroToCtlzSrl(), combineSelect(), combineSetCC(), combineVectorSizedSetCCEquality(), llvm::ARMTargetLowering::computeKnownBitsForTargetNode(), llvm::AMDGPUTargetLowering::ComputeNumSignBitsForTargetNode(), llvm::SelectionDAG::computeOverflowKind(), ConvertSelectToConcatVector(), createShuffleMaskFromVSELECT(), emitComparison(), emitConditionalComparison(), EmitKORTEST(), EmitTest(), expandf64Toi32(), foldAddSubBoolOfMaskedVal(), foldAddSubOfSignBit(), generateEquivalentSub(), llvm::PPC::get_VSPLTI_elt(), getAsCarry(), getEstimate(), haveEfficientBuildVectorPattern(), isBooleanFlip(), isBSwapHWordElement(), isCMN(), isFloatingPointZero(), isLegalMaskCompare(), isLowerSaturatingConditional(), isSplatZeroExtended(), isTruncWithZeroHighBitsInput(), llvm::SelectionDAG::isUndef(), isXor1OfSetCC(), llvm::X86::isZeroNode(), isZeroOrAllOnes(), LookThroughSetCC(), LowerEXTRACT_VECTOR_ELT_SSE4(), llvm::SelectionDAG::matchBinOpReduction(), mayTailCallThisCC(), PerformAddcSubcCombine(), performBRCONDCombine(), llvm::ARMTargetLowering::PerformCMOVCombine(), llvm::ARMTargetLowering::PerformCMOVToBFICombine(), llvm::PPCTargetLowering::PerformDAGCombine(), PerformUMLALCombine(), recoverFramePointer(), reduceBuildVecToShuffleWithZero(), llvm::R600TargetLowering::ReplaceNodeResults(), replaceShuffleOfInsert(), replaceZeroVectorStore(), llvm::TargetLowering::SimplifyDemandedBits(), llvm::TargetLowering::SimplifyDemandedVectorElts(), simplifyDivRem(), tryFoldToZero(), and llvm::X86InstrInfo::unfoldMemoryOperand().

◆ isNullFPConstant()

bool llvm::isNullFPConstant ( SDValue  V)

◆ isNullOrNullSplat()

bool llvm::isNullOrNullSplat ( SDValue  V)

Return true if the value is a constant 0 integer or a splatted vector of a constant 0 integer (with no undefs).

Build vector implicit truncation is not an issue for null values.

Definition at line 8625 of file SelectionDAG.cpp.

References C, isConstOrConstSplat(), and llvm::ConstantSDNode::isNullValue().

Referenced by calculateByteProvider(), llvm::ConstantFPSDNode::classof(), ConvertSelectToConcatVector(), foldAddSubOfSignBit(), getAsCarry(), getAsNonOpaqueConstant(), isTruncateOf(), simplifyDivRem(), llvm::SelectionDAG::simplifyShift(), and tryFoldToZero().

◆ isOfRegClass()

bool llvm::isOfRegClass ( const TargetInstrInfo::RegSubRegPair P,
const TargetRegisterClass TRC,
MachineRegisterInfo MRI 
)
inline

◆ isOneConstant()

bool llvm::isOneConstant ( SDValue  V)

◆ isOneOrOneSplat()

bool llvm::isOneOrOneSplat ( SDValue  V)

Return true if the value is a constant 1 integer or a splatted vector of a constant 1 integer (with no undefs).

Does not permit build vector implicit truncation.

Definition at line 8631 of file SelectionDAG.cpp.

References C, llvm::SDValue::getScalarValueSizeInBits(), llvm::SDNode::getValueSizeInBits(), isConstOrConstSplat(), and llvm::ConstantSDNode::isOne().

Referenced by llvm::ConstantFPSDNode::classof(), foldAddSubOfSignBit(), getAsCarry(), and isBooleanFlip().

◆ isOnlyUsedInZeroEqualityComparison()

bool llvm::isOnlyUsedInZeroEqualityComparison ( const Instruction CxtI)

Definition at line 215 of file ValueTracking.cpp.

References C, isKnownToBeAPowerOfTwo(), Query(), and llvm::Value::users().

Referenced by canTransformToMemCmp(), and getMemCmpLoad().

◆ isOverflowIntrinsicNoWrap()

bool llvm::isOverflowIntrinsicNoWrap ( const IntrinsicInst II,
const DominatorTree DT 
)

Returns true if the arithmetic part of the II 's result is used only along the paths control dependent on the computation not overflowing, II being an <op>.with.overflow intrinsic.

Definition at line 4194 of file ValueTracking.cpp.

References any_of(), assert(), B, llvm::DominatorTree::dominates(), llvm::IntrinsicInst::getIntrinsicID(), llvm::SmallVectorTemplateBase< T >::push_back(), Results, llvm::Intrinsic::sadd_with_overflow, llvm::Intrinsic::smul_with_overflow, llvm::Intrinsic::ssub_with_overflow, llvm::Intrinsic::uadd_with_overflow, llvm::Intrinsic::umul_with_overflow, llvm::Value::users(), and llvm::Intrinsic::usub_with_overflow.

Referenced by MatchBinaryOp().

◆ isPopOpcode()

static bool llvm::isPopOpcode ( int  Opc)
inlinestatic

Definition at line 497 of file ARMBaseInstrInfo.h.

Referenced by isCSRestore(), and tryFoldSPUpdateIntoPushPop().

◆ isPotentiallyReachable() [1/2]

bool llvm::isPotentiallyReachable ( const Instruction From,
const Instruction To,
const DominatorTree DT = nullptr,
const LoopInfo LI = nullptr 
)

Determine whether instruction 'To' is reachable from 'From', returning true if uncertain.

Determine whether there is a path from From to To within a single function. Returns false only if we can prove that once 'From' has been executed then 'To' can not be executed. Conservatively returns true.

This function is linear with respect to the number of blocks in the CFG, walking down successors from From to reach To, with a fixed threshold. Using DT or LI allows us to answer more quickly. LI reduces the cost of an entire loop of any number of blocks to be the same as the cost of a single block. DT reduces the cost by allowing the search to terminate when we find a block that dominates the block containing 'To'. DT is most useful on branchy code but not loops, and LI is most useful on code with loops but does not help on branchy code outside loops.

Definition at line 187 of file CFG.cpp.

References assert(), E, llvm::BasicBlock::end(), llvm::Function::getEntryBlock(), llvm::ilist_node_impl< OptionsT >::getIterator(), llvm::LoopInfoBase< BlockT, LoopT >::getLoopFor(), llvm::Instruction::getParent(), llvm::BasicBlock::getParent(), I, isPotentiallyReachableFromMany(), succ_begin(), and succ_end().

Referenced by createDwarfEHPass(), foldOperationIntoPhiValue(), MergeAliasResults(), and llvm::CaptureTracker::shouldExplore().

◆ isPotentiallyReachable() [2/2]

bool llvm::isPotentiallyReachable ( const BasicBlock From,
const BasicBlock To,
const DominatorTree DT = nullptr,
const LoopInfo LI = nullptr 
)

Determine whether block 'To' is reachable from 'From', returning true if uncertain.

Determine whether there is a path from From to To within a single function. Returns false only if we can prove that once 'From' has been reached then 'To' can not be executed. Conservatively returns true.

Definition at line 175 of file CFG.cpp.

References assert(), llvm::BasicBlock::getParent(), isPotentiallyReachableFromMany(), and llvm::SmallVectorTemplateBase< T, bool >::push_back().

◆ isPotentiallyReachableFromMany()

bool llvm::isPotentiallyReachableFromMany ( SmallVectorImpl< BasicBlock *> &  Worklist,
BasicBlock StopBB,
const DominatorTree DT = nullptr,
const LoopInfo LI = nullptr 
)

Determine whether there is at least one path from a block in 'Worklist' to 'StopBB', returning true if uncertain.

Determine whether there is a path from at least one block in Worklist to StopBB within a single function. Returns false only if we can prove that once any block in 'Worklist' has been reached then 'StopBB' can not be executed. Conservatively returns true.

Definition at line 131 of file CFG.cpp.

References llvm::SmallVectorImpl< T >::append(), llvm::DominatorTree::dominates(), llvm::SmallVectorBase::empty(), getOutermostLoop(), llvm::SmallPtrSetImpl< PtrType >::insert(), llvm::DominatorTree::isReachableFromEntry(), loopContainsBoth(), llvm::SmallVectorImpl< T >::pop_back_val(), succ_begin(), and succ_end().

Referenced by isPotentiallyReachable(), and llvm::CaptureTracker::shouldExplore().

◆ isPowerOf2_32()

constexpr bool llvm::isPowerOf2_32 ( uint32_t  Value)
inline

Return true if the argument is a power of two > 0.

Ex. isPowerOf2_32(0x00100000U) == true (32 bit edition.)

Definition at line 429 of file MathExtras.h.

Referenced by llvm::AArch64LegalizerInfo::AArch64LegalizerInfo(), llvm::AttrBuilder::addAlignmentAttr(), llvm::AttrBuilder::addStackAlignmentAttr(), AddThumb1SBit(), adjustDown(), adjustUp(), llvm::HexagonFrameLowering::assignCalleeSavedSpillSlots(), BBHasFallthrough(), branchMaxOffsets(), calculateByteProvider(), canLowerByDroppingEvenElements(), CanMergeParamLoadStoresStartingAt(), canonicalizeSaturatedSubtract(), clampDynamicVectorIndex(), llvm::FoldingSetBase::clear(), combineAddToSUBUS(), combineMaskedLoad(), combineMaskedStore(), combineMulToPMULDQ(), combineSelect(), combineShiftRightLogical(), combineStore(), combineTruncateWithSat(), combineVectorTruncation(), combineX86ShufflesRecursively(), llvm::LoopVectorizationCostModel::computeMaxVF(), convert_i1_to_i8(), createLVMissedAnalysis(), llvm::IRBuilderBase::CreateMemCpy(), llvm::IRBuilderBase::CreateMemMove(), createRdxShuffleMask(), decodeLLVMAttributesForBitcode(), DecodeVALIGNMask(), detectAVGPattern(), detectPMADDUBSW(), emitClzero(), llvm::PPCFrameLowering::emitPrologue(), ExtractBitFromMaskVector(), extractSubVector(), FindMemType(), findUser(), foldGuardedRotateToFunnelShift(), foldVecTruncToExtElt(), getChainID(), getContiguousRangeOfSetBits(), llvm::BasicTTIImplBase< AMDGPUTTIImpl >::getIntrinsicInstrCost(), llvm::VNCoercion::getLoadValueForLoad(), llvm::X86TTIImpl::getMaskedMemoryOpCost(), llvm::X86TTIImpl::getMemoryOpCost(), getNegativeIsTrueBoolVec(), llvm::DOTGraphTraits< BoUpSLP * >::getNodeAttributes(), llvm::InnerLoopVectorizer::getOrCreateVectorTripCount(), getParentPad(), getPlatformName(), llvm::X86TTIImpl::getPopcntSupport(), llvm::SystemZTTIImpl::getPopcntSupport(), llvm::WebAssemblyTTIImpl::getPopcntSupport(), llvm::PPCTTIImpl::getPopcntSupport(), llvm::AArch64TTIImpl::getPopcntSupport(), llvm::GCNTTIImpl::getPopcntSupport(), getShiftAmountTyForConstant(), getShuffleReduction(), getUnderlyingArgReg(), llvm::TargetLoweringBase::getVectorTypeBreakdown(), getVectorTypeBreakdownMVT(), llvm::Attribute::getWithAlignment(), llvm::Attribute::getWithStackAlignment(), hasValueBeenRAUWed(), INITIALIZE_PASS(), InsertBitToMaskVector(), insertSubVector(), instrumentMaskedLoadOrStore(), isAlwaysLive(), llvm::ARMTargetLowering::isLegalAddressingMode(), llvm::X86TTIImpl::isLegalMaskedGather(), llvm::ARMTargetLowering::isLegalT2ScaledAddressingMode(), llvm::SelectionDAGISel::isOrEquivalentToAdd(), llvm::IntegerType::isPowerOf2ByteWidth(), isReInterleaveMask(), isSafeToLoadUnconditionally(), isSlicingProfitable(), isSplatZeroExtended(), llvm::ShuffleVectorInst::isTransposeMask(), llvm::HexagonInstrInfo::isValidOffset(), isVectorReductionOp(), LowerCONCAT_VECTORSvXi1(), LowerLoad(), matchPairwiseReduction(), matchPMADDWD(), matchPMADDWD_2(), matchRotate(), matchVectorSplittingReduction(), llvm::LegalityPredicates::memSizeInBytesNotPow2(), llvm::rdf::NodeAllocator::NodeAllocator(), llvm::LegalityPredicates::numElementsNotPow2(), parseOptionalLinkageAux(), parseTexFail(), PerformMULCombine(), PerformSTORECombine(), llvm::LoopVectorizationPlanner::plan(), llvm::LoopVectorizationPlanner::planInVPlanNativePath(), PrintQuotedString(), scalarizeExtractedBinop(), llvm::HexagonDAGToDAGISel::SelectVAlignAddr(), llvm::MCSymbol::setCommon(), llvm::TargetLoweringBase::setJumpIsExpensive(), shouldReorderOperands(), llvm::TargetLowering::ShrinkDemandedOp(), shrinkScalarLogicOp(), simplifyNeonVld1(), llvm::LegalityPredicates::sizeNotPow2(), truncateVectorWithPACK(), UnrollRuntimeLoopRemainder(), UpgradeX86ALIGNIntrinsics(), llvm::AMDGPULibCalls::useNative(), useSinCos(), llvm::InstCombiner::visitCallInst(), and llvm::InstCombiner::visitLShr().

◆ isPowerOf2_64()

constexpr bool llvm::isPowerOf2_64 ( uint64_t  Value)
inline

◆ isPrefixedHexStyle()

bool llvm::isPrefixedHexStyle ( HexPrintStyle  S)

Definition at line 250 of file NativeFormatting.cpp.

References PrefixLower, and PrefixUpper.

Referenced by llvm::detail::HelperFunctions::consumeNumHexDigits().

◆ isPreISelGenericOpcode()

bool llvm::isPreISelGenericOpcode ( unsigned  Opcode)
inline

◆ isPrint()

bool llvm::isPrint ( char  C)
inline

Checks whether character C is printable.

Locale-independent version of the C standard library isprint whose results may differ on different platforms.

Definition at line 106 of file StringExtras.h.

References C.

Referenced by llvm::TextInstrProfReader::hasFormat(), llvm::raw_ostream::operator<<(), printEscapedString(), PrintQuotedString(), and llvm::raw_ostream::write_escaped().

◆ isPushOpcode()

static bool llvm::isPushOpcode ( int  Opc)
inlinestatic

◆ isRawBitcode()

bool llvm::isRawBitcode ( const unsigned char BufPtr,
const unsigned char BufEnd 
)
inline

isRawBitcode - Return true if the given bytes are the magic bytes for raw LLVM IR bitcode (without a wrapper).

Definition at line 205 of file BitcodeReader.h.

Referenced by isBitcode().

◆ isReadOnlyData()

static bool llvm::isReadOnlyData ( const SectionRef  Section)
static

◆ isRefSet()

LLVM_NODISCARD bool llvm::isRefSet ( const ModRefInfo  MRI)
inline

◆ isReleaseOrStronger()

bool llvm::isReleaseOrStronger ( AtomicOrdering  ao)
inline

◆ isRequiredForExecution()

static bool llvm::isRequiredForExecution ( const SectionRef  Section)
static

◆ isRMOpcode()

static bool llvm::isRMOpcode ( unsigned  Opcode)
inlinestatic

◆ isRRMOpcode()

static bool llvm::isRRMOpcode ( unsigned  Opcode)
inlinestatic

Definition at line 168 of file LanaiInstrInfo.h.

Referenced by PostOperandDecodeAdjust().

◆ isRunOfOnes()

static bool llvm::isRunOfOnes ( unsigned  Val,
unsigned MB,
unsigned ME 
)
inlinestatic

Returns true iff Val consists of one contiguous run of 1s with any number of 0s on either side.

The 1s are allowed to wrap from LSB to MSB, so 0x000FFF0, 0x0000FFFF, and 0xFF0000FF are all runs. 0x0F0F0000 is not, since all 1s are not contiguous.

Definition at line 63 of file PPCMCTargetDesc.h.

References countLeadingZeros(), and isShiftedMask_32().

Referenced by addNegOperand(), isOpcWithIntImmediate(), and mayUseP9Setb().

◆ isSafeToDestroyConstant()

bool llvm::isSafeToDestroyConstant ( const Constant C)

It is safe to destroy a constant iff it is only used by constants itself.

Note that constants cannot be cyclic, so this test is pretty easy to implement recursively.

Definition at line 46 of file GlobalStatus.cpp.

References llvm::Value::users().

Referenced by analyzeGlobalAux(), CleanupConstantGlobalUsers(), CleanupPointerRootUsers(), eliminateAvailableExternally(), isSafeSROAElementUse(), and llvm::GlobalDCEPass::run().

◆ isSafeToExpand()

bool llvm::isSafeToExpand ( const SCEV S,
ScalarEvolution SE 
)

Return true if the given expression is safe to expand in the sense that all materialized values are safe to speculate anywhere their operands are defined.

Definition at line 2334 of file ScalarEvolutionExpander.cpp.

References visitAll().

Referenced by canFoldIVIncExpr(), ConvertToSInt(), GetPointerOperand(), isSafeToExpandAt(), llvm::LoopPredicationPass::run(), and llvm::LoopDataPrefetchPass::run().

◆ isSafeToExpandAt()

bool llvm::isSafeToExpandAt ( const SCEV S,
const Instruction InsertionPoint,
ScalarEvolution SE 
)

Return true if the given expression is safe to expand in the sense that all materialized values are defined and safe to speculate at the specified location and their operands are defined at this location.

Definition at line 2340 of file ScalarEvolutionExpander.cpp.

References llvm::ScalarEvolution::dominates(), llvm::Instruction::getParent(), and isSafeToExpand().

◆ isSafeToLoadUnconditionally()

bool llvm::isSafeToLoadUnconditionally ( Value V,
unsigned  Align,
const DataLayout DL,
Instruction ScanFrom = nullptr,
const DominatorTree DT = nullptr 
)

Return true if we know that executing a load from this value cannot trap.

Check if executing a load of this pointer value cannot trap.

If DT and ScanFrom are specified this method performs context-sensitive analysis and returns true if it is safe to load immediately before ScanFrom.

If it is not obviously safe to load from the specified pointer, we do a quick local scan of the basic block containing ScanFrom, to determine if the address is already accessed.

If DT and ScanFrom are specified this method performs context-sensitive analysis and returns true if it is safe to load immediately before ScanFrom.

If it is not obviously safe to load from the specified pointer, we do a quick local scan of the basic block containing ScanFrom, to determine if the address is already accessed.

This uses the pointee type to determine how many bytes need to be safe to load from the pointer.

Definition at line 201 of file Loads.cpp.

References llvm::AMDGPU::HSAMD::Kernel::Arg::Key::Align, AreEquivalentAddressValues(), assert(), llvm::BasicBlock::begin(), DefMaxInstsToScan, E, llvm::DataLayout::getABITypeAlignment(), llvm::PointerType::getElementType(), llvm::ilist_node_impl< OptionsT >::getIterator(), llvm::Instruction::getParent(), GetPointerBaseWithConstantOffset(), llvm::Type::getPointerElementType(), llvm::DataLayout::getPrefTypeAlignment(), llvm::Value::getType(), llvm::DataLayout::getTypeAllocSize(), llvm::DataLayout::getTypeStoreSize(), llvm::cl::Hidden, llvm::cl::init(), isDereferenceableAndAlignedPointer(), isPowerOf2_32(), llvm::Type::isSized(), SI, and llvm::Value::stripPointerCasts().

Referenced by canMoveAboveCall(), isSafePHIToSpeculate(), isSafeSelectToSpeculate(), and llvm::InstCombiner::visitLoadInst().

◆ isSafeToSpeculativelyExecute()

bool llvm::isSafeToSpeculativelyExecute ( const Value V,
const Instruction CtxI = nullptr,
const DominatorTree DT = nullptr 
)

Return true if the instruction does not have any effects besides calculating the result and does not have undefined behavior.

This method never returns true for an instruction that returns true for mayHaveSideEffects; however, this method also does some other checks in addition. It checks for undefined behavior, like dividing by zero or loading from an invalid pointer (but not for undefined results, like a shift with a shift amount larger than the width of the result). It checks for malloc and alloca because speculatively executing them might cause a memory leak. It also returns false for instructions related to control flow, specifically terminators and PHI nodes.

If the CtxI is specified this method performs context-sensitive analysis and returns true if it is safe to execute the instruction immediately before the CtxI.

If the CtxI is NOT specified this method only looks at the instruction itself and its operands, so if this method returns true, it is safe to move the instruction as long as the correct dominance relationships for the operands and users hold.

This method can return true for instructions that read memory; for such instructions, moving them may change the resulting value.

Definition at line 3838 of file ValueTracking.cpp.

References C, llvm::MCID::Call, Callee, dyn_cast(), llvm::LoadInst::getAlignment(), llvm::Module::getDataLayout(), llvm::Instruction::getFunction(), llvm::Instruction::getModule(), llvm::User::getNumOperands(), llvm::Operator::getOpcode(), llvm::User::getOperand(), llvm::LoadInst::getPointerOperand(), llvm::Function::hasFnAttribute(), isDereferenceableAndAlignedPointer(), llvm::APInt::isMinSignedValue(), llvm::LoadInst::isUnordered(), llvm::SPII::Load, llvm::PatternMatch::m_APInt(), llvm::PatternMatch::match(), llvm::MipsISD::Ret, llvm::Attribute::SanitizeAddress, llvm::Attribute::SanitizeHWAddress, llvm::Attribute::SanitizeThread, and llvm::SPII::Store.

Referenced by llvm::IVUsers::AddUsersImpl(), appendSpeculatableOperands(), CanPHITrans(), ComputeSpeculationCost(), ComputeSpeculationCost(), DominatesMergePoint(), FoldBranchToCommonDest(), GetUnderlyingObject(), HoistThenElseCodeToIf(), isEphemeralValueOf(), isHoistable(), isIgnorableInst(), isInTailCallPosition(), isOnlyReachableViaThisEdge(), isSafeToExecuteUnconditionally(), isValidAssumeForContext(), llvm::Loop::makeLoopInvariant(), mayBeMemoryDependent(), llvm::PHITransAddr::PHITranslateWithInsertion(), RemoveInstInputs(), reportMayClobberedLoad(), shouldMergeGEPs(), llvm::JumpThreadingPass::SimplifyPartiallyRedundantLoad(), SinkCommonCodeFromPredecessors(), sinkSelectOperand(), SpeculativelyExecuteBB(), and llvm::InstCombiner::visitCallInst().

◆ isSafeToUnrollAndJam()

bool llvm::isSafeToUnrollAndJam ( Loop L,
ScalarEvolution SE,
DominatorTree DT,
DependenceInfo DI 
)

◆ isSampler()

bool llvm::isSampler ( const Value val)

◆ isScale()

static bool llvm::isScale ( const MachineOperand MO)
inlinestatic

Definition at line 143 of file X86InstrInfo.h.

References llvm::MachineOperand::getImm(), and llvm::MachineOperand::isImm().

Referenced by isLeaMem().

◆ isScopedEHPersonality()

bool llvm::isScopedEHPersonality ( EHPersonality  Pers)
inline

◆ isShiftedInt()

template<unsigned N, unsigned S>
constexpr bool llvm::isShiftedInt ( int64_t  x)
inline

Checks if a signed integer is an N bit number shifted left by S.

Definition at line 315 of file MathExtras.h.

References N.

◆ isShiftedMask_32()

constexpr bool llvm::isShiftedMask_32 ( uint32_t  Value)
inline

Return true if the argument contains a non-empty sequence of ones with the remainder zero (32 bit version.) Ex.

isShiftedMask_32(0x0000FF00U) == true.

Definition at line 417 of file MathExtras.h.

References isMask_32().

Referenced by CombineANDShift(), llvm::PPCTTIImpl::getIntImmCost(), llvm::ARM::isBitFieldInvertedMask(), isPerfectIncrement(), isRunOfOnes(), and isShiftedMask().

◆ isShiftedMask_64()

constexpr bool llvm::isShiftedMask_64 ( uint64_t  Value)
inline

Return true if the argument contains a non-empty sequence of ones with the remainder zero (64 bit version.)

Definition at line 423 of file MathExtras.h.

References isMask_64().

Referenced by foldMaskedShiftToBEXTR(), llvm::PPCTTIImpl::getIntImmCost(), getPermuteMask(), isBitfieldPositioningOp(), llvm::APInt::isShiftedMask(), isShiftedMask(), optimizeLogicalImm(), and llvm::AArch64_AM::processLogicalImmediate().

◆ isShiftedUInt()

template<unsigned N, unsigned S>
constexpr bool llvm::isShiftedUInt ( uint64_t  x)
inline

Checks if a unsigned integer is an N bit number shifted left by S.

Definition at line 355 of file MathExtras.h.

References N.

◆ isSPLSOpcode()

static bool llvm::isSPLSOpcode ( unsigned  Opcode)
inlinestatic

◆ isStatepoint() [1/3]

bool llvm::isStatepoint ( ImmutableCallSite  CS)

◆ isStatepoint() [2/3]

bool llvm::isStatepoint ( const Value V)

Definition at line 33 of file Statepoint.cpp.

References isStatepoint().

◆ isStatepoint() [3/3]

bool llvm::isStatepoint ( const Value V)

Definition at line 39 of file Statepoint.cpp.

References isStatepoint().

◆ isStatepointDirectiveAttr()

bool llvm::isStatepointDirectiveAttr ( Attribute  Attr)

Return true if the Attr is an attribute that is a statepoint directive.

Definition at line 63 of file Statepoint.cpp.

References llvm::Attribute::hasAttribute().

Referenced by legalizeCallAttributes().

◆ isStrongerThan()

bool llvm::isStrongerThan ( AtomicOrdering  ao,
AtomicOrdering  other 
)
inline

Returns true if ao is stronger than other as defined by the AtomicOrdering lattice, which is based on C++'s definition.

Definition at line 90 of file AtomicOrdering.h.

References lookup().

Referenced by llvm::InstructionSelector::executeMatchTable(), FunctionNumber(), llvm::AAResults::getModRefInfo(), isContiguous(), isStrongerThanMonotonic(), isStrongerThanUnordered(), and llvm::StoreInst::setAlignment().

◆ isStrongerThanMonotonic()

bool llvm::isStrongerThanMonotonic ( AtomicOrdering  ao)
inline

◆ isStrongerThanUnordered()

bool llvm::isStrongerThanUnordered ( AtomicOrdering  ao)
inline

◆ isSurface()

bool llvm::isSurface ( const Value val)

Definition at line 143 of file NVPTXUtilities.cpp.

References assert(), and findOneNVVMAnnotation().

Referenced by llvm::NVPTXAsmPrinter::doFinalization(), and INITIALIZE_PASS().

◆ isTargetSpecificOpcode()

bool llvm::isTargetSpecificOpcode ( unsigned  Opcode)
inline

Check whether the given Opcode is a target-specific opcode.

Definition at line 37 of file TargetOpcodes.h.

Referenced by constrainOperandRegClass().

◆ isTexture()

bool llvm::isTexture ( const Value val)

Definition at line 132 of file NVPTXUtilities.cpp.

References assert(), and findOneNVVMAnnotation().

Referenced by llvm::NVPTXAsmPrinter::doFinalization(), and INITIALIZE_PASS().

◆ isThumbFunc()

static bool llvm::isThumbFunc ( symbol_iterator  Symbol,
const ObjectFile Obj,
section_iterator  Section 
)
static

◆ isTriviallyDead()

bool llvm::isTriviallyDead ( const MachineInstr MI,
const MachineRegisterInfo MRI 
)

◆ isTriviallyVectorizable()

bool llvm::isTriviallyVectorizable ( Intrinsic::ID  ID)

◆ isUInt() [1/2]

template<unsigned N>
constexpr std::enable_if<(N < 64), bool>::type llvm::isUInt ( uint64_t  X)
inline

Checks if an unsigned integer fits into the given bit width.

This is written as two functions rather than as simply

return N >= 64 || X < (UINT64_C(1) << N);

to keep MSVC from (incorrectly) warning on isUInt<64> that we're shifting left too many places.

Definition at line 332 of file MathExtras.h.

References N.

Referenced by getSpecialRegForName().

◆ isUInt() [2/2]

template<unsigned N>
constexpr bool ::type llvm::isUInt ( uint64_t  X)
inline

Definition at line 338 of file MathExtras.h.

◆ isUInt< 16 >()

template<>
constexpr bool llvm::isUInt< 16 > ( uint64_t  x)
inline

◆ isUInt< 32 >()

template<>
constexpr bool llvm::isUInt< 32 > ( uint64_t  x)
inline

◆ isUInt< 8 >()

template<>
constexpr bool llvm::isUInt< 8 > ( uint64_t  x)
inline

◆ isUIntN()

bool llvm::isUIntN ( unsigned  N,
uint64_t  x 
)
inline

◆ isUncondBranchOpcode() [1/2]

static bool llvm::isUncondBranchOpcode ( int  Opc)
inlinestatic

◆ isUncondBranchOpcode() [2/2]

static bool llvm::isUncondBranchOpcode ( int  Opc)
inlinestatic

Definition at line 477 of file ARMBaseInstrInfo.h.

References B.

◆ isUniformLoop()

static bool llvm::isUniformLoop ( Loop Lp,
Loop OuterLp 
)
static

◆ isUniformLoopNest()

static bool llvm::isUniformLoopNest ( Loop Lp,
Loop OuterLp 
)
static

◆ isV8EligibleForIT()

template<typename InstrType >
bool llvm::isV8EligibleForIT ( const InstrType *  Instr)
inline

Definition at line 25 of file ARMFeatures.h.

References IsCPSRDead().

Referenced by IsCPSRDead< MCInst >(), and llvm::ARMBaseInstrInfo::isPredicable().

◆ isValidAsAccessGroup()

bool llvm::isValidAsAccessGroup ( MDNode AccGroup)

Return whether an MDNode might represent an access group.

Access group metadata nodes have to be distinct and empty. Being always-empty ensures that it never needs to be changed (which – because MDNodes are designed immutable – would require creating a new MDNode). Note that this is not a sufficient condition: not every distinct and empty NDNode is representing an access group.

Definition at line 760 of file LoopInfo.cpp.

Referenced by addToAccessGroupList(), intersectAccessGroups(), llvm::Loop::isAnnotatedParallel(), and llvm::LoopInfoWrapperPass::releaseMemory().

◆ isValidAssumeForContext()

bool llvm::isValidAssumeForContext ( const Instruction I,
const Instruction CxtI,
const DominatorTree DT = nullptr 
)

◆ isValidAtomicOrdering()

template<typename Int >
bool llvm::isValidAtomicOrdering ( Int  I)
inline

Definition at line 75 of file AtomicOrdering.h.

References NotAtomic, and SequentiallyConsistent.

◆ isValidAtomicOrderingCABI()

template<typename Int >
bool llvm::isValidAtomicOrderingCABI ( Int  I)
inline

Definition at line 45 of file AtomicOrdering.h.

References relaxed, and seq_cst.

◆ isValidMCLOHType()

static bool llvm::isValidMCLOHType ( unsigned  Kind)
inlinestatic

◆ isZeroInit()

static bool llvm::isZeroInit ( const SectionRef  Section)
static

◆ itaniumDemangle()

char * llvm::itaniumDemangle ( const char mangled_name,
char buf,
size_t *  n,
int *  status 
)

◆ itostr()

std::string llvm::itostr ( int64_t  X)
inline

◆ jit_noop()

static int llvm::jit_noop ( )
static

◆ jitLinkForORC() [1/2]

void llvm::jitLinkForORC ( object::ObjectFile Obj,
std::unique_ptr< MemoryBuffer UnderlyingBuffer,
RuntimeDyld::MemoryManager MemMgr,
JITSymbolResolver Resolver,
bool  ProcessAllSections,
std::function< Error(std::unique_ptr< LoadedObjectInfo >, std::map< StringRef, JITEvaluatedSymbol >)>  OnLoaded,
std::function< void(Error)>  OnEmitted 
)

◆ jitLinkForORC() [2/2]

void llvm::jitLinkForORC ( object::ObjectFile Obj,
std::unique_ptr< MemoryBuffer UnderlyingBuffer,
RuntimeDyld::MemoryManager MemMgr,
JITSymbolResolver Resolver,
bool  ProcessAllSections,
std::function< Error(std::unique_ptr< RuntimeDyld::LoadedObjectInfo > LoadedObj, std::map< StringRef, JITEvaluatedSymbol >)>  OnLoaded,
std::function< void(Error)>  OnEmitted 
)

◆ jitTargetAddressToPointer()

template<typename T >
T llvm::jitTargetAddressToPointer ( JITTargetAddress  Addr)

Convert a JITTargetAddress to a pointer.

Definition at line 44 of file JITSymbol.h.

References assert().

◆ join() [1/2]

template<typename IteratorT >
std::string llvm::join ( IteratorT  Begin,
IteratorT  End,
StringRef  Separator 
)
inline

Joins the strings in the range [Begin, End), adding Separator between the elements.

Definition at line 371 of file StringExtras.h.

Referenced by checkFeature(), collectPGOFuncNameStrings(), ExpandCryptoAEK(), llvm::SubtargetFeatures::getString(), INITIALIZE_PASS(), isDbgValueDescribedByReg(), join(), and toString().

◆ join() [2/2]

template<typename Range >
std::string llvm::join ( Range &&  R,
StringRef  Separator 
)
inline

Joins the strings in the range [R.begin(), R.end()), adding Separator between the elements.

Definition at line 379 of file StringExtras.h.

References llvm::AMDGPU::HSAMD::Kernel::Key::Args, and join().

◆ join_items()

template<typename Sep , typename... Args>
std::string llvm::join_items ( Sep  Separator,
Args &&...  Items 
)
inline

Joins the strings in the parameter pack Items, adding Separator between the elements.

All arguments must be implicitly convertible to std::string, or there should be an overload of std::string::operator+=() that accepts the argument explicitly.

Definition at line 388 of file StringExtras.h.

References llvm::detail::join_items_impl(), llvm::detail::join_items_size(), and llvm::detail::join_one_item_size().

◆ joinErrors()

Error llvm::joinErrors ( Error  E1,
Error  E2 
)
inline

◆ left_justify()

FormattedString llvm::left_justify ( StringRef  Str,
unsigned  Width 
)
inline

left_justify - append spaces after string so total output is Width characters.

If Str is larger that Width, full string is written with no padding.

Definition at line 145 of file Format.h.

References llvm::FormattedString::JustifyLeft.

Referenced by llvm::DWARFUnitIndex::dump(), PrepareCall(), and llvm::DebugCounter::print().

◆ lexMIToken()

StringRef llvm::lexMIToken ( StringRef  Source,
MIToken Token,
function_ref< void(StringRef::iterator, const Twine &)>  ErrorCallback 
)

Consume a single machine instruction token in the given source and return the remaining source string.

Referenced by llvm::MIToken::hasIntegerValue(), and maybeLexEscapedIRValue().

◆ libDriverMain()

int llvm::libDriverMain ( ArrayRef< const char *>  ARgs)

Definition at line 100 of file LibDriver.cpp.

◆ linkAllBuiltinGCs()

void llvm::linkAllBuiltinGCs ( )

FIXME: Collector instances are not useful on their own.

These no longer serve any purpose except to link in the plugins. Ensure the definition of the builtin GCs gets linked in

Definition at line 131 of file BuiltinGCs.cpp.

◆ linkErlangGCPrinter()

void llvm::linkErlangGCPrinter ( )

Creates an erlang-compatible metadata printer.

Definition at line 122 of file ErlangGCPrinter.cpp.

◆ linkOcamlGCPrinter()

void llvm::linkOcamlGCPrinter ( )

Creates an ocaml-compatible metadata printer.

Definition at line 50 of file OcamlGCPrinter.cpp.

◆ lintFunction()

void llvm::lintFunction ( const Function F)

lintFunction - Check a function for errors, printing messages on stderr.

Parameters
FThe function to be checked

Definition at line 736 of file Lint.cpp.

References assert(), llvm::GlobalValue::getParent(), and llvm::GlobalValue::isDeclaration().

◆ lintModule()

void llvm::lintModule ( const Module M)

Check a module.

lintModule - Check a module for errors, printing messages on stderr.

This should only be used for debugging, because it plays games with PassManagers and stuff.

Parameters
MThe module to be checked

Definition at line 748 of file Lint.cpp.

References llvm::legacy::PassManager::add(), and llvm::legacy::PassManager::run().

◆ LLVM_ENABLE_BITMASK_ENUMS_IN_NAMESPACE()

llvm::LLVM_ENABLE_BITMASK_ENUMS_IN_NAMESPACE ( )

◆ llvm_execute_on_thread()

void llvm::llvm_execute_on_thread ( void(*)(void *)  UserFn,
void *  UserData,
unsigned  RequestedStackSize = 0 
)

llvm_execute_on_thread - Execute the given UserFn on a separate thread, passing it the provided UserData and waits for thread completion.

This function does not guarantee that the code will actually be executed on a separate thread or honoring the requested stack size, but tries to do so where system support is available.

Parameters
UserFn- The callback to execute.
UserData- An argument to pass to the callback function.
RequestedStackSize- If non-zero, a requested size (in bytes) for the thread stack.

Referenced by llvm_is_multithreaded(), and llvm::CrashRecoveryContext::RunSafelyOnThread().

◆ llvm_is_multithreaded()

bool llvm::llvm_is_multithreaded ( )

◆ llvm_shutdown()

void llvm::llvm_shutdown ( )

◆ llvm_unreachable_internal()

void llvm::llvm_unreachable_internal ( const char msg = nullptr,
const char file = nullptr,
unsigned  line = 0 
)

This function calls abort(), and prints the optional message to stderr.

Use the llvm_unreachable macro (that adds location info), instead of calling this function directly.

Definition at line 211 of file ErrorHandling.cpp.

References dbgs().

Referenced by llvm::ScopedFatalErrorHandler::~ScopedFatalErrorHandler().

◆ LLVMInitializeAVRTarget()

void llvm::LLVMInitializeAVRTarget ( )

◆ LO10()

static unsigned llvm::LO10 ( int64_t  imm)
inlinestatic

Definition at line 154 of file Sparc.h.

Referenced by LOX10(), replaceFI(), and llvm::SparcFrameLowering::SparcFrameLowering().

◆ Lo_32()

constexpr uint32_t llvm::Lo_32 ( uint64_t  Value)
inline

Return the low 32 bits of a 64 bit value.

Definition at line 289 of file MathExtras.h.

Referenced by bitOpWithConstantIsReducible(), INITIALIZE_PASS(), isDebug(), KnuthDiv(), makeCombineInst(), and llvm::AMDGPUTargetLowering::PerformDAGCombine().

◆ LoadOpt()

static cl::opt<PluginLoader, false, cl::parser<std::string> > llvm::LoadOpt ( "load"  ,
cl::ZeroOrMore  ,
cl::value_desc("pluginfilename")  ,
cl::desc("Load the specified plugin")   
)
static

◆ Log2()

double llvm::Log2 ( double  Value)
inline

Return the log base 2 of the specified value.

Definition at line 528 of file MathExtras.h.

References log2().

Referenced by canConstantFoldCallTo(), getOffsetFromIndices(), performANDCombine(), llvm::TargetLowering::SimplifyDemandedBits(), and llvm::InstCombiner::visitFMul().

◆ log2()

static double llvm::log2 ( double  V)
static

Definition at line 850 of file AMDGPULibCalls.cpp.

References abs(), assert(), llvm::BasicBlock::begin(), llvm::APFloat::convertToDouble(), llvm::APFloat::convertToFloat(), llvm::IRBuilder< T, Inserter >::CreateAnd(), llvm::IRBuilder< T, Inserter >::CreateBitCast(), llvm::IRBuilder< T, Inserter >::CreateFAdd(), llvm::IRBuilder< T, Inserter >::CreateFDiv(), llvm::IRBuilder< T, Inserter >::CreateFMul(), llvm::IRBuilder< T, Inserter >::CreateFPToSI(), llvm::IRBuilder< T, Inserter >::CreateOr(), llvm::IRBuilder< T, Inserter >::CreateShl(), llvm::IRBuilder< T, Inserter >::CreateSIToFP(), llvm::IRBuilder< T, Inserter >::CreateZExtOrBitCast(), dyn_cast(), llvm::AMDGPULibFuncBase::EI_CBRT, llvm::AMDGPULibFuncBase::EI_COS, llvm::AMDGPULibFuncBase::EI_EXP2, llvm::AMDGPULibFuncBase::EI_FABS, llvm::AMDGPULibFuncBase::EI_LOG2, llvm::AMDGPULibFuncBase::EI_POW, llvm::AMDGPULibFuncBase::EI_POWN, llvm::AMDGPULibFuncBase::EI_POWR, llvm::AMDGPULibFuncBase::EI_RSQRT, llvm::AMDGPULibFuncBase::EI_SIN, llvm::AMDGPULibFuncBase::EI_SINCOS, llvm::AMDGPULibFuncBase::EI_SQRT, llvm::StringRef::equals(), llvm::Instruction::eraseFromParent(), errs(), llvm::AMDGPULibFuncBase::F32, llvm::AMDGPULibFuncBase::F64, FindAvailableLoadedValue(), AMDGPUAS::FLAT_ADDRESS, llvm::ConstantFP::get(), llvm::VectorType::get(), llvm::ConstantDataVector::get(), llvm::CallBase::getArgOperand(), getArgType(), llvm::CallBase::getCalledFunction(), llvm::Module::getContext(), llvm::ConstantDataSequential::getElementAsDouble(), llvm::ConstantDataSequential::getElementAsFloat(), llvm::SequentialType::getElementType(), llvm::AMDGPULibFuncBase::getEPtrKindFromAddrSpace(), llvm::AMDGPULibFunc::getId(), llvm::IRBuilderBase::GetInsertPoint(), llvm::IRBuilderBase::getInt32Ty(), llvm::IRBuilderBase::getInt64Ty(), llvm::ilist_node_impl< OptionsT >::getIterator(), llvm::AMDGPULibFunc::getLeads(), llvm::Instruction::getModule(), llvm::Value::getName(), llvm::ConstantDataSequential::getNumElements(), llvm::Value::getNumUses(), llvm::Instruction::getParent(), llvm::Type::getScalarSizeInBits(), llvm::ConstantInt::getSExtValue(), llvm::ConstantDataVector::getSplat(), llvm::ConstantDataVector::getSplatValue(), llvm::Value::getType(), llvm::ConstantFP::getValueAPF(), getVecSize(), HasNative(), I, llvm::Type::isDoubleTy(), llvm::ConstantFP::isExactlyValue(), llvm::Type::isIntegerTy(), llvm::ConstantFP::isNegative(), llvm::AMDGPULibCalls::isUnsafeMath(), llvm::ConstantFP::isZero(), LLVM_DEBUG, llvm::Intrinsic::log, llvm::AMDGPULibFunc::mangle(), llvm::AMDGPULibFuncBase::NATIVE, llvm::AMDGPULibFunc::parse(), llvm::AMDGPULibFuncBase::Param::PtrKind, llvm::SmallVectorTemplateBase< T >::push_back(), llvm::Value::replaceAllUsesWith(), llvm::AMDGPULibCalls::replaceCall(), llvm::AMDGPULibFunc::setId(), and llvm::Value::users().

Referenced by Log2().

◆ Log2_32()

unsigned llvm::Log2_32 ( uint32_t  Value)
inline

Return the floor log base 2 of the specified value, -1 if the value is zero.

(32 bit edition.) Ex. Log2_32(32) == 5, Log2_32(1) == 0, Log2_32(0) == -1, Log2_32(6) == 2

Definition at line 539 of file MathExtras.h.

References countLeadingZeros().

Referenced by BBHasFallthrough(), branchMaxOffsets(), calculateByteProvider(), calculateUnswitchCostMultiplier(), changeFCMPPredToAArch64CC(), clampDynamicVectorIndex(), combineBasicSADPattern(), combineBT(), llvm::SelectionDAG::computeKnownBits(), llvm::TargetLowering::computeKnownBitsForFrameIndex(), computeKnownBitsFromOperator(), ConstantFoldBinaryInstruction(), llvm::AsmPrinter::doFinalization(), llvm::SIRegisterInfo::eliminateFrameIndex(), llvm::AsmPrinter::EmitConstantPool(), llvm::AsmPrinter::EmitJumpTableInfo(), llvm::PPCFrameLowering::emitPrologue(), emitSignedInt64(), llvm::AsmPrinter::EmitSpecialLLVMGlobal(), llvm::BPFSelectionDAGInfo::EmitTargetCodeForMemcpy(), ExpandPowI(), findUser(), llvm::BasicTTIImplBase< AMDGPUTTIImpl >::getArithmeticReductionCost(), getARMFixupKindMachOInfo(), getContiguousRangeOfSetBits(), getCopyFromParts(), getCopyToParts(), getElSizeLog2Diff(), llvm::MCSymbolMachO::getEncodedFlags(), getFalkorUnrollingPreferences(), getGVAlignmentLog2(), llvm::LaneBitmask::getHighestLane(), llvm::HexagonTTIImpl::getMemoryOpCost(), llvm::BasicTTIImplBase< AMDGPUTTIImpl >::getMinMaxReductionCost(), getOffsetFromIndices(), getPlatformName(), llvm::DataLayout::getPreferredAlignmentLog(), llvm::DataLayout::getPreferredTypeAlignmentShift(), llvm::SIInstrInfo::getScratchRsrcWords23(), getShiftAmountTyForConstant(), getStringEncoding(), llvm::GCNSubtarget::getWavefrontSizeLog2(), INITIALIZE_PASS(), isEFLAGSLive(), isImmMskBitp(), isInSymtab(), llvm::HexagonTargetLowering::isLegalAddressingMode(), isTruncateOf(), llvm::HexagonInstrInfo::isValidOffset(), isWorthFoldingADDlow(), llvm::XCoreInstrInfo::loadImmediate(), llvm::TargetLowering::lowerCmpEqZeroToCtlzSrl(), lowerX86CmpEqZeroToCtlzSrl(), llvm::SelectionDAG::matchBinOpReduction(), matchPairwiseReduction(), mayUsePostIncMode(), PerformMULCombine(), llvm::AMDGPUTargetLowering::performTruncateCombine(), printMemExtendImpl(), PrintQuotedString(), llvm::MachineMemOperand::refineAlignment(), llvm::GlobalObject::setAlignment(), llvm::AllocaInst::setAlignment(), llvm::LoadInst::setAlignment(), llvm::StoreInst::setAlignment(), llvm::ISD::ArgFlagsTy::setByValAlign(), llvm::MCSymbol::setCommon(), llvm::ISD::ArgFlagsTy::setOrigAlign(), llvm::AArch64TargetLowering::shouldReduceLoadWidth(), llvm::TargetLowering::SimplifySetCC(), UnrollRuntimeLoopRemainder(), and llvm::InstCombiner::visitLShr().

◆ Log2_32_Ceil()

unsigned llvm::Log2_32_Ceil ( uint32_t  Value)
inline

◆ Log2_64()

unsigned llvm::Log2_64 ( uint64_t  Value)
inline

◆ Log2_64_Ceil()

unsigned llvm::Log2_64_Ceil ( uint64_t  Value)
inline

Return the ceil log base 2 of the specified value, 64 if the value is zero.

(64 bit edition.)

Definition at line 558 of file MathExtras.h.

References countLeadingZeros().

Referenced by buildFrameType(), llvm::ArrayRecycler< T, Align >::Capacity::get(), LowerAndToBT(), LowerToTLSExecModel(), and llvm::raw_ostream::operator<<().

◆ logAllUnhandledErrors()

void llvm::logAllUnhandledErrors ( Error  E,
raw_ostream OS,
Twine  ErrorBanner = {} 
)

Log all errors (if any) in E to OS.

If there are any errors, ErrorBanner will be printed before the first one is logged. A newline will be printed after each error.

This function is compatible with the helpers from Support/WithColor.h. You can pass any of them as the OS. Please consider using them instead of including 'error: ' in the ErrorBanner.

This is useful in the base level of your program to allow clean termination (allowing clean deallocation of resources, etc.), while reporting error information to the user.

Definition at line 62 of file Error.cpp.

Referenced by llvm::RuntimeDyldCheckerImpl::checkAllRulesInBuffer(), doImportingForModule(), emitNullTerminatedSymbolName(), llvm::MCJIT::generateCodeForModule(), llvm::LTOModule::isThinLTO(), isThumbFunc(), LLVMGetSymbolAddress(), LLVMGetSymbolName(), LLVMMoveToContainingSection(), llvm::RuntimeDyldCOFF::loadObject(), llvm::RuntimeDyldMachO::loadObject(), llvm::RuntimeDyldELF::loadObject(), llvm::RuntimeDyldELF::processRelocationRef(), and llvm::OrcCBindingsStack::UnregisterJITEventListener().

◆ lookupFoldTable()

const X86MemoryFoldTableEntry * llvm::lookupFoldTable ( unsigned  RegOp,
unsigned  OpNum 
)

◆ lookupTwoAddrFoldTable()

const X86MemoryFoldTableEntry * llvm::lookupTwoAddrFoldTable ( unsigned  RegOp)

Definition at line 5328 of file X86InstrFoldTables.cpp.

References lookupFoldTableImpl().

Referenced by llvm::X86InstrInfo::foldMemoryOperandImpl().

◆ lookupUnfoldTable()

const X86MemoryFoldTableEntry * llvm::lookupUnfoldTable ( unsigned  MemOp)

◆ LoopRotation()

bool llvm::LoopRotation ( Loop L,
LoopInfo LI,
const TargetTransformInfo TTI,
AssumptionCache AC,
DominatorTree DT,
ScalarEvolution SE,
MemorySSAUpdater MSSAU,
const SimplifyQuery SQ,
bool  RotationOnly = true,
unsigned  Threshold = unsigned(-1),
bool  IsUtilMode = true 
)

Convert a loop into a loop with bottom test.

The utility to convert a loop into a loop with bottom test.

It may perform loop latch simplication as well if the flag RotationOnly is false. The flag Threshold represents the size threshold of the loop header. If the loop header's size exceeds the threshold, the loop rotation will give up. The flag IsUtilMode controls the heuristic used in the LoopRotation. If it is true, the profitability heuristic will be ignored.

Definition at line 674 of file LoopRotationUtils.cpp.

References llvm::MemorySSAUpdater::getMemorySSA(), Threshold, VerifyMemorySSA, and llvm::MemorySSA::verifyMemorySSA().

Referenced by llvm::LoopRotatePass::run().

◆ lostFractionThroughTruncation()

static lostFraction llvm::lostFractionThroughTruncation ( const APFloatBase::integerPart parts,
unsigned int  partCount,
unsigned int  bits 
)
static

◆ lower_bound() [1/2]

template<typename R , typename ForwardIt >
auto llvm::lower_bound ( R &&  Range,
ForwardIt  I 
) -> decltype(adl_begin(Range))

Provide wrappers to std::lower_bound which take ranges instead of having to pass begin/end explicitly.

Definition at line 1282 of file STLExtras.h.

References adl_begin(), adl_end(), and lower_bound().

Referenced by llvm::SlotIndexes::advanceMBBIndex(), buildMultiplyTree(), llvm::LiveIntervals::checkRegMaskInterference(), CompareMBBNumbers(), Find(), llvm::DWARFDebugAranges::findAddress(), llvm::SourceMgr::FindBufferContainingLoc(), findTargetSubtable(), llvm::DWARFUnit::getDIEForOffset(), llvm::MCRegisterInfo::getDwarfRegNum(), getEntryForPercentile(), getFMA3Group(), llvm::InstrProfSymtab::getFuncName(), llvm::InstrProfSymtab::getFunction(), llvm::InstrProfSymtab::getFunctionHashFromAddress(), llvm::BlockFrequencyInfoImplBase::LoopData::getHeaderIndex(), getIntrinsicWithChain(), getIntrinsicWithoutChain(), llvm::BinaryItemStream< T, Traits >::getLength(), llvm::MCRegisterInfo::getLLVMRegNum(), llvm::MCRegisterInfo::getLLVMRegNumFromEH(), llvm::DWARFDebugLoc::getLocationListAtOffset(), llvm::DWARFDebugLoclists::getLocationListAtOffset(), getNumAllocatableRegsForConstraints(), getOffsetFromIndices(), llvm::TargetLibraryInfoImpl::getScalarizedFunction(), llvm::MCSubtargetInfo::getSchedModelForCPU(), llvm::MCSection::getSubsectionInsertionPoint(), llvm::TargetLibraryInfoImpl::getVectorizedFunction(), llvm::MCSubtargetInfo::isCPUStringValid(), isDebug(), llvm::TargetLibraryInfoImpl::isFunctionVectorizable(), IsInRanges(), llvm::SMSchedule::isValidSchedule(), Lookup(), llvm::DWARFDebugLine::LineTable::lookupAddress(), llvm::DWARFDebugLine::LineTable::lookupAddressRange(), lookupFoldTableImpl(), LookupNEONLdSt(), lookupUnfoldTable(), lowerV8I16GeneralSingleInputVectorShuffle(), llvm::DataLayout::operator==(), llvm::DWARFDebugLine::LineTable::parse(), llvm::DWARFDebugFrame::parse(), performCustomAdjustments(), promoteSingleBlockAlloca(), llvm::BitcodeReaderValueList::resolveConstantForwardRefs(), llvm::JumpThreadingPass::SimplifyPartiallyRedundantLoad(), and llvm::LiveIntervals::HMEditor::updateAllRanges().

◆ lower_bound() [2/2]

template<typename R , typename ForwardIt , typename Compare >
auto llvm::lower_bound ( R &&  Range,
ForwardIt  I,
Compare  C 
) -> decltype(adl_begin(Range))

Definition at line 1287 of file STLExtras.h.

References adl_begin(), adl_end(), and C.

Referenced by lower_bound().

◆ LowerARMMachineInstrToMCInst()

void llvm::LowerARMMachineInstrToMCInst ( const MachineInstr MI,
MCInst OutMI,
ARMAsmPrinter AP 
)

◆ LowerDbgDeclare()

bool llvm::LowerDbgDeclare ( Function F)

◆ lowerObjectSizeCall()

ConstantInt * llvm::lowerObjectSizeCall ( IntrinsicInst ObjectSize,
const DataLayout DL,
const TargetLibraryInfo TLI,
bool  MustSucceed 
)

Try to turn a call to @llvm.objectsize into an integer value of the given Type.

Returns null on failure. If MustSucceed is true, this function will not return null, and may return conservative values governed by the second argument of the call to objectsize.

Definition at line 445 of file MemoryBuiltins.cpp.

References llvm::AMDGPU::HSAMD::Kernel::Arg::Key::Align, alignTo(), assert(), llvm::ObjectSizeOpts::EvalMode, llvm::ObjectSizeOpts::Exact, llvm::ConstantInt::get(), llvm::CallBase::getArgOperand(), llvm::IntrinsicInst::getIntrinsicID(), getObjectSize(), llvm::Value::getType(), llvm::APInt::getZExtValue(), isUIntN(), isZero(), llvm::ObjectSizeOpts::Max, llvm::ObjectSizeOpts::Min, llvm::ObjectSizeOpts::NullIsUnknownSize, llvm::Intrinsic::objectsize, Size, and STATISTIC().

Referenced by despeculateCountZeros(), llvm::InstCombiner::visitAllocSite(), and llvm::InstCombiner::visitCallInst().

◆ LowerPPCMachineInstrToMCInst()

void llvm::LowerPPCMachineInstrToMCInst ( const MachineInstr MI,
MCInst OutMI,
AsmPrinter AP,
bool  isDarwin 
)

◆ LowerPPCMachineOperandToMCOperand()

bool llvm::LowerPPCMachineOperandToMCOperand ( const MachineOperand MO,
MCOperand OutMO,
AsmPrinter AP,
bool  isDarwin 
)

◆ LowerRISCVMachineInstrToMCInst()

void llvm::LowerRISCVMachineInstrToMCInst ( const MachineInstr MI,
MCInst OutMI,
const AsmPrinter AP 
)

◆ LowerRISCVMachineOperandToMCOperand()

bool llvm::LowerRISCVMachineOperandToMCOperand ( const MachineOperand MO,
MCOperand MCOp,
const AsmPrinter AP 
)

◆ LowerSparcMachineInstrToMCInst()

void llvm::LowerSparcMachineInstrToMCInst ( const MachineInstr MI,
MCInst OutMI,
AsmPrinter AP 
)

◆ LOX10()

static unsigned llvm::LOX10 ( int64_t  imm)
inlinestatic

Definition at line 162 of file Sparc.h.

References LO10().

Referenced by replaceFI(), and llvm::SparcFrameLowering::SparcFrameLowering().

◆ machineFunctionIsIllegal()

const MachineInstr * llvm::machineFunctionIsIllegal ( const MachineFunction MF)

◆ Make_64()

constexpr uint64_t llvm::Make_64 ( uint32_t  High,
uint32_t  Low 
)
inline

Make a 64-bit integer from a high / low pair of 32-bit integers.

Definition at line 294 of file MathExtras.h.

Referenced by KnuthDiv(), and readInstruction64().

◆ make_early_inc_range()

template<typename RangeT >
iterator_range<early_inc_iterator_impl<detail::IterOfRange<RangeT> > > llvm::make_early_inc_range ( RangeT &&  Range)

Make a range that does early increment to allow mutation of the underlying range without disrupting iteration.

The underlying iterator will be incremented immediately after it is dereferenced, allowing deletion of the current node or insertion of nodes to not disrupt iteration provided they do not invalidate the next iterator – the current iterator can be invalidated.

This requires a very exact pattern of use that is only really suitable to range based for loops and other range algorithms that explicitly guarantee to dereference exactly once each element, and to increment exactly once each element.

Definition at line 514 of file STLExtras.h.

References all_of(), any_of(), llvm::sys::path::begin(), llvm::sys::path::end(), make_range(), and P.

◆ make_error()

template<typename ErrT , typename... ArgTs>
Error llvm::make_error ( ArgTs &&...  Args)

◆ make_error_code() [1/4]

std::error_code llvm::make_error_code ( sampleprof_error  E)
inline

Definition at line 56 of file SampleProf.h.

References sampleprof_category().

◆ make_error_code() [2/4]

std::error_code llvm::make_error_code ( errc  E)
inline

Definition at line 79 of file Errc.h.

◆ make_error_code() [3/4]

std::error_code llvm::make_error_code ( BitcodeError  E)
inline

◆ make_error_code() [4/4]

std::error_code llvm::make_error_code ( instrprof_error  E)
inline

Definition at line 302 of file InstrProf.h.

References instrprof_category().

◆ make_filter_range()

template<typename RangeT , typename PredicateT >
iterator_range<filter_iterator<detail::IterOfRange<RangeT>, PredicateT> > llvm::make_filter_range ( RangeT &&  Range,
PredicateT  Pred 
)

Convenience function that takes a range of elements and a predicate, and return a new filter_iterator range.

FIXME: Currently if RangeT && is a rvalue reference to a temporary, the lifetime of that temporary is not kept by the returned range object, and the temporary is going to be dropped on the floor after the make_iterator_range full expression that contains this function call.

Definition at line 428 of file STLExtras.h.

References llvm::sys::path::begin(), llvm::sys::path::end(), and make_range().

Referenced by alwaysAvailable(), llvm::CFGViewSuccessors< true >::child_begin(), llvm::CFGViewPredecessors< true >::child_begin(), llvm::CFGViewSuccessors< true >::child_end(), llvm::CFGViewPredecessors< true >::child_end(), llvm::RandomIRBuilder::findOrCreateSource(), llvm::RandomIRBuilder::findPointer(), llvm::InjectorIRStrategy::getDefaultOps(), and llvm::BasicBlock::instructionsWithoutDebug().

◆ make_pointee_range()

template<typename RangeT , typename WrappedIteratorT = decltype(std::begin(std::declval<RangeT>()))>
iterator_range<pointee_iterator<WrappedIteratorT> > llvm::make_pointee_range ( RangeT &&  Range)

◆ make_pointer_range()

template<typename RangeT , typename WrappedIteratorT = decltype(std::begin(std::declval<RangeT>()))>
iterator_range<pointer_iterator<WrappedIteratorT> > llvm::make_pointer_range ( RangeT &&  Range)

◆ make_range() [1/2]

template<class T >
iterator_range<T> llvm::make_range ( T  x,
T  y 
)

Convenience function for iterating over sub-ranges.

This provides a bit of syntactic sugar to make using sub-ranges in for loops a bit easier. Analogous to std::make_pair().

Definition at line 54 of file iterator_range.h.

Referenced by addVCallToSet(), llvm::ScheduleDAGInstrs::addVRegDefDeps(), llvm::ScheduleDAGInstrs::addVRegUseDeps(), llvm::Module::aliases(), llvm::SelectionDAG::allnodes(), llvm::BlockFrequencyInfoImplBase::analyzeIrreducible(), llvm::cl::basic_parser_impl::anchor(), llvm::codeview::InlineSiteSym::annotations(), llvm::CallBase::arg_operands(), llvm::CallSiteBase<>::args(), llvm::Function::args(), llvm::CallBase::args(), llvm::DWARFDie::attributes(), llvm::object::COFFObjectFile::base_relocs(), llvm::WebAssemblyException::blocks(), llvm::LoopBase< BasicBlock, Loop >::blocks(), llvm::GCOVFunction::blocks(), llvm::MemoryPhi::blocks(), llvm::PHINode::blocks(), breadth_first(), buildClonedLoopBlocks(), buildPartialUnswitchConditionalBranch(), llvm::CallBase::bundle_op_infos(), llvm::HexagonMCInstrInfo::bundleInstructions(), llvm::StringRef::bytes(), llvm::LoopVectorizationCostModel::calculateRegisterUsage(), llvm::StatepointBase< Function, Instruction, Value, CallSite >::call_args(), CallingConvSupported(), llvm::LazyCallGraph::EdgeSequence::calls(), canRenameComdat(), canSplitCallSite(), llvm::SwitchInst::cases(), llvm::SchedBoundary::checkHazard(), children(), llvm::object::Archive::children(), llvm::DWARFDie::children(), llvm::DIE::children(), children_edges(), clearKillFlags(), llvm::RegionBase< RegionTraits< Function > >::clearNodeCache(), llvm::DebugInfoFinder::compile_units(), llvm::ScheduleDAGMILive::computeCyclicCriticalPath(), computeLiveIns(), concatenateVectors(), llvm::StackMapV2Parser< Endianness >::constants(), ContainsReg(), llvm::GEPOperator::countNonConstantIndices(), createBreakFalseDeps(), createCodeGenPreparePass(), CriticalPathStep(), llvm::mca::EntryStage::cycleEnd(), llvm::OnDiskIterableChainedHashTable< Info >::data(), llvm::CallSiteBase<>::data_ops(), llvm::CallBase::data_ops(), llvm::Module::debug_compile_units(), llvm::object::COFFObjectFile::debug_directories(), llvm::MachineRegisterInfo::def_bundles(), def_chain(), llvm::MachineRegisterInfo::def_instructions(), llvm::MachineRegisterInfo::def_operands(), llvm::MachineInstr::defs(), llvm::object::COFFObjectFile::delay_import_directories(), llvm::StatepointBase< Function, Instruction, Value, CallSite >::deopt_operands(), depth_first(), depth_first_ext(), DoInitialMatch(), drop_begin(), llvm::GCOVBlock::dsts(), llvm::vfs::RedirectingFileSystem::dumpEntry(), llvm::RegionBase< RegionTraits< Function > >::elements(), llvm::SystemZHazardRecognizer::emitInstruction(), EmitNops(), llvm::EHStreamer::emitTypeInfos(), llvm::HexagonPacketizerList::endPacket(), llvm::Registry< T >::entries(), llvm::AppleAcceleratorTable::equal_range(), llvm::DWARFDebugNames::NameIndex::equal_range(), llvm::DWARFDebugNames::equal_range(), eraseDeadBBsAndChildren(), llvm::VPWidenRecipe::execute(), llvm::MachineInstr::explicit_operands(), llvm::MachineInstr::explicit_uses(), llvm::object::COFFObjectFile::export_directories(), llvm::object::MachOObjectFile::external_relocations(), llvm::opt::ArgList::filtered(), llvm::opt::ArgList::filtered_reverse(), findIrreducibleHeaders(), findProfitablePHIs(), llvm::ScheduleDAGInstrs::fixupKills(), foldUnusualPatterns(), llvm::StackSafetyInfo::FunctionInfo::FunctionInfo(), llvm::StackMapV2Parser< Endianness >::functions(), llvm::Module::functions(), llvm::StatepointBase< Function, Instruction, Value, CallSite >::gc_args(), llvm::StatepointBase< Function, Instruction, Value, CallSite >::gc_transition_args(), llvm::GraphDiff< llvm::BasicBlock *, IsPostDom >::getAddedChildren(), llvm::ScalarEvolution::getBlockDisposition(), llvm::orc::getConstructors(), llvm::coverage::CoverageMapping::getCoveredFunctions(), llvm::orc::getDestructors(), llvm::object::ELFObjectFile< ELFT >::getDynamicSymbolIterators(), llvm::RegionBase< RegionTraits< Function > >::getEnteringBlock(), llvm::RegionBase< RegionTraits< Function > >::getExitingBlock(), llvm::RegionBase< RegionTraits< Function > >::getExpandedRegion(), llvm::InterleavedAccessInfo::getInterleaveGroups(), getLastNonPseudo(), llvm::ScalarEvolution::getLoopDisposition(), llvm::RegionInfoBase< RegionTraits< Function > >::getMaxRegionExit(), llvm::DiagnosticInfoOptimizationBase::getMsg(), getNames(), llvm::RegionBase< RegionTraits< Function > >::getNameStr(), llvm::rdf::Liveness::getNearestAliasedRef(), llvm::DwarfUnit::getParentContextString(), llvm::TargetRegisterClass::getRegisters(), llvm::pdb::SymbolStream::getSymbols(), getVFSEntries(), llvm::RegisterBankInfo::OperandsMapper::getVRegs(), llvm::DebugInfoFinder::global_variables(), llvm::Module::globals(), handleNormalInst(), llvm::CatchSwitchInst::handlers(), hasUseAfterLoop(), llvm::Module::ifuncs(), llvm::MachineInstr::implicit_operands(), llvm::object::COFFObjectFile::import_directories(), llvm::object::ImportDirectoryEntryRef::imported_symbols(), llvm::object::DelayImportDirectoryEntryRef::imported_symbols(), incorporateNewSCCRange(), llvm::GetElementPtrInst::indices(), llvm::ExtractValueInst::indices(), llvm::InsertValueInst::indices(), INITIALIZE_PASS(), llvm::ScheduleDAGInstrs::initSUnits(), InlineFunction(), llvm::LazyCallGraph::RefSCC::insertIncomingRefEdge(), inverse_children(), inverse_depth_first(), inverse_depth_first_ext(), inverse_nodes(), inverse_post_order(), inverse_post_order_ext(), isEFLAGSLive(), isEmptyFunction(), llvm::DenseMapInfo< VTableSlot >::isEqual(), isFullDominator(), isFullPostDominator(), isInRage(), isMergeableLdStUpdate(), isNopCopy(), isNoWrapAddRec(), isObjectDereferencedInBlock(), llvm::MachineRegisterInfo::isPhysRegModified(), IsPseudoCallIndirect(), isSCCHeader(), llvm::StringMap< uint64_t >::keys(), llvm::OnDiskIterableChainedHashTable< Info >::keys(), llvm::MachineBasicBlock::liveins(), llvm::MachineBasicBlock::liveins_dbg(), llvm::StackMapV2Parser< Endianness >::RecordAccessor::liveouts(), llvm::object::MachOObjectFile::load_commands(), llvm::StackMapV2Parser< Endianness >::RecordAccessor::locations(), llvm::object::ImportDirectoryEntryRef::lookup_table_symbols(), make_early_inc_range(), make_filter_range(), make_pointee_range(), make_pointer_range(), markTails(), llvm::Value::materialized_users(), llvm::Value::materialized_uses(), llvm::CFLAndersAAResult::FunctionInfo::mayAlias(), MaySpeculate(), llvm::BlockFrequencyInfoImplBase::LoopData::members(), llvm::object::IRObjectFile::modules(), llvm::SIInstrInfo::moveToVALU(), moveUp(), llvm::Module::named_metadata(), nodes(), llvm::object::MachOUniversalBinary::objects(), llvm::SDNode::op_values(), llvm::User::operand_values(), llvm::SCEVNAryExpr::operands(), llvm::MCInstrDesc::operands(), llvm::MachineInstr::operands(), llvm::NamedMDNode::operands(), AllocaSlices::partition_iterator::operator*(), llvm::orc::operator<<(), optimized_def_chain(), parseCond(), pathHasTraversal(), llvm::MachineBasicBlock::phis(), post_order(), post_order_ext(), llvm::LazyCallGraph::postorder_ref_sccs(), llvm::MachineBasicBlock::predecessors(), predictUseListOrder(), llvm::VPWidenRecipe::print(), llvm::LiveRangeUpdater::print(), propagateMetadata(), rebuildLoopAfterUnswitch(), recomputeLivenessFlags(), llvm::StackMapV2Parser< Endianness >::records(), llvm::MachineRegisterInfo::reg_bundles(), llvm::MachineRegisterInfo::reg_instructions(), llvm::MachineRegisterInfo::reg_nodbg_bundles(), llvm::MachineRegisterInfo::reg_nodbg_instructions(), llvm::MachineRegisterInfo::reg_nodbg_operands(), llvm::MachineRegisterInfo::reg_operands(), llvm::MCRegisterInfo::regclasses(), llvm::TargetRegisterInfo::regclasses(), llvm::object::SectionRef::relocations(), llvm::sys::path::remove_dots(), llvm::LazyCallGraph::RefSCC::removeInternalRefEdge(), llvm::ScheduleDAGTopologicalSort::RemovePred(), reverse(), llvm::AlwaysInlinerPass::run(), llvm::InstructionSelect::runOnMachineFunction(), llvm::MachinePipeliner::runOnMachineFunction(), llvm::DebugInfoFinder::scopes(), llvm::BitVector::set_bits(), llvm::SmallBitVector::set_bits(), shouldReorderOperands(), shouldSplitOnPredicatedArgument(), llvm::LiveIntervals::shrinkToUses(), llvm::GCOVBlock::srcs(), llvm::DebugInfoFinder::subprograms(), llvm::LiveInterval::subranges(), llvm::pdb::ModuleDebugStreamRef::subsections(), llvm::MachineBasicBlock::successors(), llvm::BranchInst::successors(), llvm::IndirectBrInst::successors(), llvm::LazyCallGraph::RefSCC::switchInternalEdgeToCall(), llvm::LazyCallGraph::RefSCC::switchInternalEdgeToRef(), llvm::pdb::ModuleDebugStreamRef::symbols(), llvm::object::Archive::symbols(), llvm::MCAssembler::symbols(), llvm::TargetRegistry::targets(), llvm::MachineBasicBlock::terminators(), truncateIVUse(), llvm::VPRecipeBuilder::tryToCreateRecipe(), llvm::pdb::TpiStream::types(), llvm::DebugInfoFinder::types(), llvm::AntiDepBreaker::UpdateDbgValues(), llvm::MemorySSAUpdater::updateForClonedBlockIntoPred(), updatePostorderSequenceForEdgeInsertion(), UpdatePredRedefs(), llvm::ScheduleDAGMILive::updatePressureDiffs(), upward_defs(), llvm::MachineRegisterInfo::use_bundles(), llvm::MachineRegisterInfo::use_instructions(), llvm::MachineRegisterInfo::use_nodbg_bundles(), llvm::MachineRegisterInfo::use_nodbg_instructions(), llvm::MachineRegisterInfo::use_nodbg_operands(), llvm::MachineRegisterInfo::use_operands(), llvm::MachineInstr::uses(), llvm::SDNode::uses(), llvm::DIEValueList::values(), verifyBlocksInRegion(), verifyRegionRec(), llvm::InnerLoopVectorizer::widenInstruction(), llvm::MachObjectWriter::writeObject(), and llvm::TimerGroup::~TimerGroup().

◆ make_range() [2/2]

template<typename T >
iterator_range<T> llvm::make_range ( std::pair< T, T p)

Definition at line 58 of file iterator_range.h.

◆ make_reverse_iterator()

template<typename IteratorTy >
std::reverse_iterator<IteratorTy> llvm::make_reverse_iterator ( IteratorTy  It)

Definition at line 275 of file STLExtras.h.

Referenced by llvm::DWARFDie::rbegin(), llvm::DWARFDie::rend(), and reverse().

◆ make_scope_exit()

template<typename Callable >
LLVM_NODISCARD detail::scope_exit<typename std::decay<Callable>::type> llvm::make_scope_exit ( Callable &&  F)

◆ make_unique() [1/3]

template<class T , class... Args>
std::enable_if<!std::is_array<T>::value, std::unique_ptr<T> >::type llvm::make_unique ( Args &&...  args)

Constructs a new T() with the given args and returns a unique_ptr<T> which owns the object.

Example:

auto p = make_unique<int>();
auto p = make_unique<std::tuple<int, int>>(0, 1);  

Definition at line 1349 of file STLExtras.h.

References T.

Referenced by llvm::DominatorTreeBase< BasicBlock, false >::addNewBlock(), llvm::DomTreeBuilder::SemiNCAInfo< DomTreeT >::attachNewSubtree(), llvm::orc::createLocalIndirectStubsManagerBuilder(), llvm::TGLexer::getLoc(), llvm::DomTreeBuilder::SemiNCAInfo< DomTreeT >::InsertEdge(), make_unique(), llvm::slpvectorizer::BoUpSLP::optimizeGatherSequence(), and llvm::TGLexer::TGLexer().

◆ make_unique() [2/3]

template<class T >
std::enable_if<std::is_array<T>::value && std::extent<T>::value == 0, std::unique_ptr<T> >::type llvm::make_unique ( size_t  n)

Constructs a new T[n] with the given args and returns a unique_ptr<T[]> which owns the object.

Parameters
nsize of the new array.

Example:

auto p = make_unique<int[]>(2); // value-initializes the array with 0's.  

Definition at line 1364 of file STLExtras.h.

References llvm::AMDGPU::HSAMD::Kernel::Key::Args, make_unique(), and T.

◆ make_unique() [3/3]

template<class T , class... Args>
std::enable_if<std::extent<T>::value != 0>::type llvm::make_unique ( Args &&  ...)
delete

This function isn't used and is only here to provide better compile errors.

◆ makeArrayRef() [1/9]

template<typename T >
ArrayRef<T> llvm::makeArrayRef ( const T OneElt)

Construct an ArrayRef from a single element.

Definition at line 451 of file ArrayRef.h.

Referenced by llvm::codeview::DebugChecksumsSubsection::addChecksum(), llvm::pdb::PDBFileBuilder::addInjectedSource(), llvm::DIEHash::addSLEB128(), allocateCCRegs(), allocateSGPR32InputImpl(), allocateVGPR32Input(), llvm::APInt::APInt(), appendToGlobalArray(), llvm::VarDefInit::args(), llvm::slpvectorizer::BoUpSLP::bestOrder(), buildClonedLoops(), BuildSubAggregate(), CC_X86_64_VectorCallGetGPRs(), CC_X86_VectorCallGetSSEs(), CollectOpsToWiden(), CombineBaseUpdate(), combineTargetShuffle(), CombineVLDDUP(), llvm::codeview::DebugFrameDataSubsection::commit(), llvm::codeview::DebugSymbolRVASubsection::commit(), llvm::pdb::GSIHashStreamBuilder::commit(), llvm::pdb::DbiStreamBuilder::commit(), llvm::codeview::DebugCrossModuleImportsSubsection::commit(), llvm::codeview::DebugChecksumsSubsection::commit(), llvm::codeview::DebugInlineeLinesSubsection::commit(), llvm::codeview::DebugLinesSubsection::commit(), concatSubVector(), ConstantFoldGetElementPtr(), ConstantFoldLoadFromConstPtr(), llvm::detail::IEEEFloat::convertFromZeroExtendedInteger(), createCast(), llvm::IRBuilder< TargetFolder >::CreateCondBr(), createRdxShuffleMask(), llvm::Instruction::dropUnknownNonDebugMetadata(), dwarfCCToCodeView(), llvm::object::ELFFile< ELFT >::dynamicEntries(), llvm::StringRef::edit_distance(), llvm::StructType::elements(), llvm::MCDwarfLineTableHeader::Emit(), llvm::BitstreamWriter::emitBlob(), llvm::BitstreamWriter::EmitRecord(), llvm::BitstreamWriter::EmitRecordWithAbbrev(), llvm::BitstreamWriter::EmitRecordWithArray(), llvm::BitstreamWriter::EmitRecordWithBlob(), llvm::ARMSelectionDAGInfo::EmitTargetCodeForMemcpy(), llvm::codeview::ContinuationRecordBuilder::end(), llvm::ARM::WinEH::ExceptionDataRecord::EpilogueScopes(), llvm::APInt::extractBits(), llvm::MD5::final(), llvm::pdb::DbiStreamBuilder::finalizeMsfLayout(), FindInsertedValue(), findMatchingInlineAsmOperand(), findTargetSubtable(), FunctionNumber(), GenerateTBL(), llvm::fuzzerop::gepDescriptor(), llvm::PredIteratorCache::get(), llvm::ConstantDataArray::get(), get64BitArgumentGPRs(), get64BitArgumentXMMs(), getAllSGPR128(), getAllSGPRs(), llvm::DagInit::getArgNames(), llvm::DagInit::getArgs(), llvm::DWARFFormValue::getAsBlock(), getBuildVectorSplat(), llvm::DebugLocStream::getBytes(), llvm::MipsABIInfo::GetByValArgRegs(), llvm::RecordRecTy::getClasses(), llvm::DWARFUnitIndex::getColumnKinds(), getCombinerObjective(), llvm::DebugLocStream::getComments(), llvm::codeview::getCompileSym2FlagNames(), llvm::codeview::getCompileSym3FlagNames(), llvm::SelectionDAG::getCopyFromReg(), llvm::SelectionDAG::getCopyToReg(), llvm::codeview::getCPUTypeNames(), llvm::AMDGPUIntrinsicInfo::getDeclaration(), getDIEStringAttr(), llvm::object::MachOObjectFile::getDyldInfoBindOpcodes(), llvm::object::MachOObjectFile::getDyldInfoExportsTrie(), llvm::object::MachOObjectFile::getDyldInfoLazyBindOpcodes(), llvm::object::MachOObjectFile::getDyldInfoRebaseOpcodes(), llvm::object::MachOObjectFile::getDyldInfoWeakBindOpcodes(), llvm::DebugLocStream::getEntries(), getExpandedMinMaxOps(), llvm::codeview::getExportSymFlagNames(), llvm::codeview::getFileChecksumNames(), getFMA3Group(), llvm::codeview::getFrameCookieKindNames(), llvm::codeview::getFrameProcSymFlagNames(), llvm::ConstantExpr::getGetElementPtr(), GetGlobalTypeString(), llvm::HexagonSubtarget::getHVXElementTypes(), llvm::codeview::getImageSectionCharacteristicNames(), llvm::CodeViewContext::getLinesForExtent(), llvm::codeview::getLocalFlagNames(), llvm::ShuffleVectorSDNode::getMask(), llvm::ValueEnumerator::getMDStrings(), llvm::codeview::VFTableRecord::getMethodNames(), llvm::codeview::getModuleSubstreamKindNames(), llvm::AMDGPUIntrinsicInfo::getName(), llvm::codeview::VFTableRecord::getName(), llvm::ValueEnumerator::getNonMDStrings(), llvm::pdb::getOMFSegMapDescFlagNames(), getOrInsertValueProfilingCall(), llvm::MachineTraceMetrics::getProcResourceCycles(), llvm::MachineTraceMetrics::Ensemble::getProcResourceDepths(), llvm::MachineTraceMetrics::Ensemble::getProcResourceHeights(), llvm::codeview::getProcSymFlagNames(), llvm::codeview::getPublicSymFlagNames(), llvm::TargetRegisterClass::getRawAllocationOrder(), llvm::codeview::getRegisterNames(), llvm::SIRegisterInfo::getRegSplitParts(), GetRMWLibcall(), llvm::DWARFUnitIndex::getRows(), llvm::object::COFFObjectFile::getSectionContents(), llvm::object::MachOObjectFile::getSectionRawFinalSegmentName(), llvm::object::MachOObjectFile::getSectionRawName(), llvm::AArch64InstrInfo::getSerializableBitmaskMachineOperandTargetFlags(), llvm::ARMBaseInstrInfo::getSerializableBitmaskMachineOperandTargetFlags(), llvm::HexagonInstrInfo::getSerializableBitmaskMachineOperandTargetFlags(), llvm::PPCInstrInfo::getSerializableBitmaskMachineOperandTargetFlags(), llvm::LanaiInstrInfo::getSerializableDirectMachineOperandTargetFlags(), llvm::MipsInstrInfo::getSerializableDirectMachineOperandTargetFlags(), llvm::AArch64InstrInfo::getSerializableDirectMachineOperandTargetFlags(), llvm::HexagonInstrInfo::getSerializableDirectMachineOperandTargetFlags(), llvm::ARMBaseInstrInfo::getSerializableDirectMachineOperandTargetFlags(), llvm::PPCInstrInfo::getSerializableDirectMachineOperandTargetFlags(), llvm::X86InstrInfo::getSerializableDirectMachineOperandTargetFlags(), llvm::SIInstrInfo::getSerializableDirectMachineOperandTargetFlags(), llvm::AArch64InstrInfo::getSerializableMachineMemOperandTargetFlags(), llvm::SIInstrInfo::getSerializableTargetIndices(), llvm::SIMachineFunctionInfo::getSGPRToVGPRSpills(), getShiftAmountTyForConstant(), getSignature(), llvm::codeview::getSourceLanguageNames(), getSpecialRegForName(), llvm::ConstantDataArray::getString(), getSubprogram(), llvm::object::COFFObjectFile::getSymbolAuxData(), llvm::codeview::getSymbolTypeNames(), llvm::codeview::getThunkOrdinalNames(), llvm::codeview::getTrampolineNames(), llvm::codeview::getTypeLeafNames(), getTypePartition(), llvm::object::MachOObjectFile::getUuid(), llvm::ListInit::getValues(), llvm::MipsABIInfo::GetVarArgRegs(), getX86MaskVec(), group2Shuffle(), llvm::CallLowering::handleAssignments(), llvm::codeview::GloballyHashedType::hashType(), hasOnlySelectUsers(), INITIALIZE_PASS(), llvm::pdb::UDTLayoutBase::initializeChildren(), llvm::DWARFFormValue::isFormClass(), isLoopDead(), IsSingleInstrConstant(), LLVMBuildCall(), LLVMBuildCall2(), LLVMBuildCatchPad(), LLVMBuildCleanupPad(), LLVMBuildInvoke(), LLVMBuildInvoke2(), LLVMConstExtractValue(), LLVMConstInsertValue(), LLVMConstIntOfArbitraryPrecision(), LLVMConstNamedStruct(), LLVMConstStructInContext(), LLVMConstVector(), LLVMMDNodeInContext(), lookupFoldTable(), llvm::SystemZTargetLowering::LowerFormalArguments(), llvm::X86TargetLowering::lowerInterleavedStore(), lowerMSASplatZExt(), LowerMULH(), MarkBlocksLiveIn(), llvm::codeview::CodeViewRecordIO::maxFieldLength(), llvm::sys::fs::md5_contents(), llvm::MachineInstr::memoperands(), llvm::MachineSDNode::memoperands(), llvm::InjectorIRStrategy::mutate(), narrowExtractedVectorLoad(), needsRuntimeRegistrationOfSectionRange(), llvm::SDNode::ops(), llvm::FunctionType::params(), partitionShuffleOfConcats(), performANDCombine(), performCustomAdjustments(), performNEONPostLDSTCombine(), performSRACombine(), llvm::PHITransAddr::PHITranslateWithInsertion(), PrepareCall(), llvm::SMDiagnostic::print(), llvm::ScopedPrinter::printBinary(), llvm::ScopedPrinter::printBinaryBlock(), llvm::AttributeSetNode::Profile(), llvm::AttributeListImpl::Profile(), llvm::BitsInit::Profile(), llvm::DagInit::Profile(), llvm::object::ELFFile< ELFT >::program_headers(), llvm::AppendingBinaryByteStream::readBytes(), llvm::AppendingBinaryByteStream::readLongestContiguousChunk(), llvm::coverage::BinaryCoverageReader::readNextRecord(), llvm::LiveRangeEdit::regs(), RemoveUnusedGlue(), reorderSubVector(), ReorganizeVector(), llvm::object::ELFFile< ELFT >::sections(), simplifyNeonTbl1(), simplifyRelocatesOffABase(), simplifyX86pshufb(), simplifyX86round(), simplifyX86vpermilvar(), simplifyX86vpermv(), sinkInstruction(), llvm::pdb::DbiModuleDescriptorBuilder::source_files(), llvm::Type::subtypes(), llvm::LazyCallGraph::RefSCC::switchInternalEdgeToCall(), llvm::detail::IEEEFloat::toString(), tryToElideArgumentCopy(), tryToVectorizeHorReductionOrInstOperands(), TypeSizeToSizeIndex(), unpackF64OnRV32DSoftABI(), unpackLoadToAggregate(), unpackStoreToAggregate(), unswitchNontrivialInvariants(), llvm::ARM::WinEH::ExceptionDataRecord::UnwindByteCode(), llvm::MD5::update(), UpgradeX86ALIGNIntrinsics(), UpgradeX86PSLLDQIntrinsics(), UpgradeX86PSRLDQIntrinsics(), llvm::InstCombiner::visitExtractValueInst(), llvm::InstCombiner::visitGetElementPtrInst(), llvm::codeview::TypeDumpVisitor::visitMemberBegin(), llvm::codeview::TypeDumpVisitor::visitMemberEnd(), llvm::codeview::TypeDumpVisitor::visitTypeBegin(), llvm::codeview::TypeDumpVisitor::visitUnknownType(), wrapConstantAsMetadata(), and writeRecords().

◆ makeArrayRef() [2/9]

template<typename T >
ArrayRef<T> llvm::makeArrayRef ( const T data,
size_t  length 
)

Construct an ArrayRef from a pointer and length.

Definition at line 457 of file ArrayRef.h.

◆ makeArrayRef() [3/9]

template<typename T >
ArrayRef<T> llvm::makeArrayRef ( const T begin,
const T end 
)

Construct an ArrayRef from a range.

Definition at line 463 of file ArrayRef.h.

References llvm::sys::path::begin(), and llvm::sys::path::end().

◆ makeArrayRef() [4/9]

template<typename T >
ArrayRef<T> llvm::makeArrayRef ( const SmallVectorImpl< T > &  Vec)

Construct an ArrayRef from a SmallVector.

Definition at line 469 of file ArrayRef.h.

◆ makeArrayRef() [5/9]

template<typename T , unsigned N>
ArrayRef<T> llvm::makeArrayRef ( const SmallVector< T, N > &  Vec)

Construct an ArrayRef from a SmallVector.

Definition at line 475 of file ArrayRef.h.

◆ makeArrayRef() [6/9]

template<typename T >
ArrayRef<T> llvm::makeArrayRef ( const std::vector< T > &  Vec)

Construct an ArrayRef from a std::vector.

Definition at line 481 of file ArrayRef.h.

◆ makeArrayRef() [7/9]

template<typename T >
ArrayRef<T> llvm::makeArrayRef ( const ArrayRef< T > &  Vec)

Construct an ArrayRef from an ArrayRef (no-op) (const)

Definition at line 486 of file ArrayRef.h.

◆ makeArrayRef() [8/9]

template<typename T >
ArrayRef<T>& llvm::makeArrayRef ( ArrayRef< T > &  Vec)

Construct an ArrayRef from an ArrayRef (no-op)

Definition at line 491 of file ArrayRef.h.

◆ makeArrayRef() [9/9]

template<typename T , size_t N>
ArrayRef<T> llvm::makeArrayRef ( const T(&)  Arr[N])

Construct an ArrayRef from a C array.

Definition at line 497 of file ArrayRef.h.

◆ MakeErrMsg()

bool llvm::MakeErrMsg ( std::string *  ErrMsg,
const std::string &  prefix 
)

◆ makeFollowupLoopID()

Optional< MDNode * > llvm::makeFollowupLoopID ( MDNode OrigLoopID,
ArrayRef< StringRef FollowupAttrs,
const char InheritOptionsAttrsPrefix = "",
bool  AlwaysNew = false 
)

Create a new loop identifier for a loop created from a loop transformation.

Parameters
OrigLoopIDThe loop ID of the loop before the transformation.
FollowupAttrsList of attribute names that contain attributes to be added to the new loop ID.
InheritOptionsAttrsPrefixSelects which attributes should be inherited from the original loop. The following values are considered: nullptr : Inherit all attributes from OrigLoopID. "" : Do not inherit any attribute from OrigLoopID; only use those specified by a followup attribute. "<prefix>": Inherit all attributes except those which start with <prefix>; commonly used to remove metadata for the applied transformation.
AlwaysNewIf true, do not try to reuse OrigLoopID and never return None.
Returns
The loop ID for the after-transformation loop. The following values can be returned: None : No followup attribute was found; it is up to the transformation to choose attributes that make sense. OrigLoopID: The original identifier can be reused. nullptr : The new loop has no attributes. MDNode* : A new unique loop identifier.

Definition at line 246 of file LoopUtils.cpp.

References assert(), drop_begin(), findOptionMDForLoopID(), llvm::MDOperand::get(), llvm::MDNode::get(), llvm::MDNode::getContext(), llvm::MDNode::getNumOperands(), llvm::MDNode::getOperand(), None, llvm::MDNode::operands(), llvm::SmallVectorTemplateBase< T >::push_back(), llvm::MDNode::replaceOperandWith(), llvm::SmallVectorBase::size(), and llvm::StringRef::startswith().

Referenced by CloneLoopBlocks(), llvm::InnerLoopVectorizer::createVectorizedLoopSkeleton(), llvm::LoopVectorizePass::processLoop(), tryToUnrollAndJamLoop(), and tryToUnrollLoop().

◆ makeGCNILPScheduler()

std::vector< const SUnit * > llvm::makeGCNILPScheduler ( ArrayRef< const SUnit *>  BotRoots,
const ScheduleDAG DAG 
)

Definition at line 358 of file GCNILPSched.cpp.

Referenced by llvm::GCNIterativeScheduler::scheduleILP().

◆ makeGuardControlFlowExplicit()

void llvm::makeGuardControlFlowExplicit ( Function DeoptIntrinsic,
CallInst Guard 
)

◆ makeMinRegSchedule()

std::vector< const SUnit * > llvm::makeMinRegSchedule ( ArrayRef< const SUnit *>  TopRoots,
const ScheduleDAG DAG 
)

◆ makeMutableArrayRef() [1/2]

template<typename T >
MutableArrayRef<T> llvm::makeMutableArrayRef ( T OneElt)

◆ makeMutableArrayRef() [2/2]

template<typename T >
MutableArrayRef<T> llvm::makeMutableArrayRef ( T data,
size_t  length 
)

Construct a MutableArrayRef from a pointer and length.

Definition at line 509 of file ArrayRef.h.

◆ makeSampler() [1/3]

template<typename GenT , typename RangeT , typename ElT = typename std::remove_reference< decltype(*std::begin(std::declval<RangeT>()))>::type>
ReservoirSampler<ElT, GenT> llvm::makeSampler ( GenT &  RandGen,
RangeT &&  Items 
)

◆ makeSampler() [2/3]

template<typename GenT , typename T >
ReservoirSampler<T, GenT> llvm::makeSampler ( GenT &  RandGen,
const T Item,
uint64_t  Weight 
)

Definition at line 83 of file Random.h.

References llvm::ReservoirSampler< T, GenT >::sample().

◆ makeSampler() [3/3]

template<typename T , typename GenT >
ReservoirSampler<T, GenT> llvm::makeSampler ( GenT &  RandGen)

Definition at line 91 of file Random.h.

◆ map_iterator()

template<class ItTy , class FuncTy >
mapped_iterator<ItTy, FuncTy> llvm::map_iterator ( ItTy  I,
FuncTy  F 
)
inline

Definition at line 240 of file STLExtras.h.

◆ MapMetadata() [1/2]

Metadata* llvm::MapMetadata ( const Metadata MD,
ValueToValueMapTy VM,
RemapFlags  Flags = RF_None,
ValueMapTypeRemapper TypeMapper = nullptr,
ValueMaterializer Materializer = nullptr 
)
inline

Lookup or compute a mapping for a piece of metadata.

Compute and memoize a mapping for MD.

  1. If MD is mapped, return it.
  2. Else if RF_NoModuleLevelChanges or MD is an MDString, return MD.
  3. Else if MD is a ConstantAsMetadata, call MapValue() and re-wrap its return (returning nullptr on nullptr).
  4. Else, MD is an MDNode. These are remapped, along with their transitive operands. Distinct nodes are duplicated or moved depending on RF_MoveDistinctNodes. Uniqued nodes are remapped like constants.
Note
LocalAsMetadata is completely unsupported by MapMetadata. Instead, use MapValue() with its wrapping MetadataAsValue instance.

Definition at line 228 of file ValueMapper.h.

References llvm::ValueMapper::mapMetadata().

Referenced by CloneFunctionInto(), CloneModule(), and llvm::orc::cloneModuleFlagsMetadata().

◆ MapMetadata() [2/2]

MDNode* llvm::MapMetadata ( const MDNode MD,
ValueToValueMapTy VM,
RemapFlags  Flags = RF_None,
ValueMapTypeRemapper TypeMapper = nullptr,
ValueMaterializer Materializer = nullptr 
)
inline

Version of MapMetadata with type safety for MDNode.

Definition at line 236 of file ValueMapper.h.

References llvm::ValueMapper::mapMDNode().

◆ MapValue() [1/2]

Value* llvm::MapValue ( const Value V,
ValueToValueMapTy VM,
RemapFlags  Flags = RF_None,
ValueMapTypeRemapper TypeMapper = nullptr,
ValueMaterializer Materializer = nullptr 
)
inline

Look up or compute a value in the value map.

Return a mapped value for a function-local value (Argument, Instruction, BasicBlock), or compute and memoize a value for a Constant.

  1. If V is in VM, return the result.
  2. Else if V can be materialized with Materializer, do so, memoize it in VM, and return it.
  3. Else if V is a function-local value, return nullptr.
  4. Else if V is a GlobalValue, return nullptr or V depending on RF_NullMapMissingGlobalValues.
  5. Else if V is a MetadataAsValue wrapping a LocalAsMetadata, recurse on the local SSA value, and return nullptr or "metadata !{}" on missing depending on RF_IgnoreMissingValues.
  6. Else if V is a MetadataAsValue, rewrap the return of MapMetadata().
  7. Else, compute the equivalent constant, and return it.

Definition at line 206 of file ValueMapper.h.

References llvm::ValueMapper::mapValue().

Referenced by CloneAndPruneIntoFromInst(), CloneFunctionInto(), CloneModule(), and llvm::orc::moveGlobalVariableInitializer().

◆ MapValue() [2/2]

Constant* llvm::MapValue ( const Constant V,
ValueToValueMapTy VM,
RemapFlags  Flags = RF_None,
ValueMapTypeRemapper TypeMapper = nullptr,
ValueMaterializer Materializer = nullptr 
)
inline

Version of MapValue with type safety for Constant.

Definition at line 272 of file ValueMapper.h.

References llvm::ValueMapper::mapConstant().

◆ mapWindowsError()

std::error_code llvm::mapWindowsError ( unsigned  EV)

◆ MaskedValueIsZero()

bool llvm::MaskedValueIsZero ( const Value V,
const APInt Mask,
const DataLayout DL,
unsigned  Depth = 0,
AssumptionCache AC = nullptr,
const Instruction CxtI = nullptr,
const DominatorTree DT = nullptr,
bool  UseInstrInfo = true 
)

Return true if 'V & Mask' is known to be zero.

We use this predicate to simplify operations downstream. Mask is known to be zero for bits that V cannot have.

This function is defined on values with integer type, values with pointer type, and vectors of integers. In the case where V is a vector, the mask, known zero, and known one values are the same width as the vector element, and the bit is set only if it is true for all of the elements in the vector.

Definition at line 290 of file ValueTracking.cpp.

References ComputeNumSignBits(), MaskedValueIsZero(), Query(), and safeCxtI().

Referenced by canEvaluateShifted(), llvm::SelectionDAG::DbgLabelEnd(), foldVecTruncToExtElt(), getAlternateBinop(), isKnownNonEqual(), isObjectSize(), llvm::InstCombiner::MaskedValueIsZero(), SimplifyOrInst(), llvm::InstCombiner::visitAdd(), llvm::InstCombiner::visitAnd(), llvm::InstCombiner::visitAShr(), llvm::InstCombiner::visitLShr(), llvm::InstCombiner::visitOr(), llvm::InstCombiner::visitSDiv(), llvm::InstCombiner::visitShl(), llvm::InstCombiner::visitSRem(), llvm::InstCombiner::visitXor(), and llvm::InstCombiner::visitZExt().

◆ maskLeadingOnes()

template<typename T >
T llvm::maskLeadingOnes ( unsigned  N)

Create a bitmask with the N left-most bits set to 1, and all other bits set to 0.

Only unsigned types are allowed.

Definition at line 221 of file MathExtras.h.

References T.

◆ maskLeadingZeros()

template<typename T >
T llvm::maskLeadingZeros ( unsigned  N)

Create a bitmask with the N left-most bits set to 0, and all other bits set to 1.

Only unsigned types are allowed.

Definition at line 233 of file MathExtras.h.

References T.

◆ maskTrailingOnes()

template<typename T >
T llvm::maskTrailingOnes ( unsigned  N)

Create a bitmask with the N right-most bits set to 1, and all other bits set to 0.

Only unsigned types are allowed.

Definition at line 212 of file MathExtras.h.

References assert(), llvm::tgtok::Bits, N, and T.

Referenced by DecodeSignedOperand().

◆ maskTrailingZeros()

template<typename T >
T llvm::maskTrailingZeros ( unsigned  N)

Create a bitmask with the N right-most bits set to 0, and all other bits set to 1.

Only unsigned types are allowed.

Definition at line 227 of file MathExtras.h.

References T.

◆ MATCHER() [1/2]

llvm::MATCHER ( Succeeded  ,
""   
)

Definition at line 144 of file Error.h.

◆ MATCHER() [2/2]

llvm::MATCHER ( Failed  ,
""   
)

Definition at line 145 of file Error.h.

◆ matchPassManager()

static bool llvm::matchPassManager ( StringRef  PassID)
static

◆ matchSelectPattern() [1/2]

SelectPatternResult llvm::matchSelectPattern ( Value V,
Value *&  LHS,
Value *&  RHS,
Instruction::CastOps CastOp = nullptr,
unsigned  Depth = 0 
)

Pattern match integer [SU]MIN, [SU]MAX and ABS idioms, returning the kind and providing the out parameter results if we successfully match.

For ABS/NABS, LHS will be set to the input to the abs idiom. RHS will be the negation instruction from the idiom.

If CastOp is not nullptr, also match MIN/MAX idioms where the type does not match that of the original select. If this is the case, the cast operation (one of Trunc,SExt,Zext) that must be done to transform the type of LHS and RHS into the type of V is returned in CastOp.

For example: %1 = icmp slt i32 a, i32 4 %2 = sext i32 a to i64 %3 = select i1 %1, i64 %2, i64 4

-> LHS = a, RHS = i32 4, *CastOp = Instruction::SExt

Definition at line 5075 of file ValueTracking.cpp.

References C, dyn_cast(), llvm::SelectInst::getCondition(), llvm::SelectInst::getFalseValue(), llvm::Instruction::getFastMathFlags(), llvm::User::getOperand(), llvm::CmpInst::getPredicate(), llvm::SelectInst::getTrueValue(), llvm::Value::getType(), llvm::CmpInst::isEquality(), lookThroughCast(), matchSelectPattern(), llvm::FastMathFlags::setNoSignedZeros(), SI, SPF_UNKNOWN, and SPNB_NA.

Referenced by canonicalizeSaturatedSubtract(), computeKnownBitsFromOperator(), llvm::DenseMapInfo< SimpleValue >::getTombstoneKey(), hasOnlySelectUsers(), llvm::SelectPatternResult::isMinOrMax(), isObjectDereferencedInBlock(), isSignedMinMaxClamp(), matchMinMaxOfMinMax(), matchSelectPattern(), processUGT_ADDCST_ADD(), ShrinkDemandedConstant(), simplifyICmpWithAbsNabs(), llvm::InstCombiner::visitFCmpInst(), llvm::InstCombiner::visitICmpInst(), llvm::InstCombiner::visitSub(), llvm::InstCombiner::visitTrunc(), and llvm::InstCombiner::visitXor().

◆ matchSelectPattern() [2/2]

SelectPatternResult llvm::matchSelectPattern ( const Value V,
const Value *&  LHS,
const Value *&  RHS,
Instruction::CastOps CastOp = nullptr 
)
inline

◆ max()

GCNRegPressure llvm::max ( const GCNRegPressure P1,
const GCNRegPressure P2 
)
inline

Definition at line 89 of file GCNRegPressure.h.

References I, and llvm::GCNRegPressure::TOTAL_KINDS.

Referenced by llvm::AArch64CallLowering::AArch64CallLowering(), AbsoluteDifference(), llvm::LiveRangeUpdater::add(), llvm::SchedDFSImpl::addConnection(), llvm::safestack::StackLayout::addObject(), llvm::SUnit::addPred(), addRegsToSet(), llvm::mca::WriteState::addUser(), adjustDown(), llvm::X86FrameLowering::adjustForHiPEPrologue(), llvm::HexagonSubtarget::adjustSchedDependency(), AdjustStackOffset(), aliasSameBasePointerGEPs(), llvm::CCState::AllocateStack(), llvm::MemoryPhi::allocHungoffUses(), llvm::ms_demangle::ArenaAllocator::allocUnalignedBuffer(), allUsesTruncate(), llvm::AMDGPUTargetLowering::analyzeFormalArgumentsCompute(), analyzeLoopUnrollCost(), ApplyDisplacementBounds(), ApplyX86MaskOn1BitsVec(), ApproximateLoopSize(), llvm::LanaiInstrInfo::areMemAccessesTriviallyDisjoint(), areStridedAccessesIndependent(), llvm::ConstantRange::ashr(), AssignProtectedObjSet(), llvm::WinException::beginFunclet(), buildFrameType(), buildMultiplyTree(), llvm::SchedBoundary::bumpCycle(), llvm::SchedBoundary::bumpNode(), llvm::CachedHashStringRef::CachedHashStringRef(), calculateCountScale(), llvm::LoopVectorizationCostModel::calculateRegisterUsage(), calculateUnswitchCostMultiplier(), CallingConvSupported(), callsiteIsHot(), canCreateAliasFor(), canTransformToMemCmp(), CC_RISCVAssign2XLen(), llvm::ARMTargetLowering::CCAssignFnForReturn(), llvm::GenericScheduler::checkAcyclicLatency(), llvm::SchedBoundary::checkHazard(), llvm::LiveIntervalUnion::Query::checkInterference(), combineHorizontalPredicateResult(), ComputeASanStackFrameLayout(), llvm::mca::computeBlockRThroughput(), computeFreeStackSlots(), computeImportForFunction(), llvm::MCSchedModel::computeInstrLatency(), llvm::SelectionDAG::computeKnownBits(), computeKnownBitsFromOperator(), computeKnownBitsMul(), llvm::MachineFrameInfo::computeMaxCallFrameSize(), llvm::NodeSet::computeNodeSetInfo(), llvm::SelectionDAG::ComputeNumSignBits(), llvm::AMDGPUTargetLowering::ComputeNumSignBitsForTargetNode(), ComputeNumSignBitsImpl(), llvm::TargetSchedModel::computeOperandLatency(), computePeelCount(), computeRemLatency(), llvm::SMSchedule::computeStart(), llvm::RuntimeDyldImpl::computeTotalAllocSize(), computeUnrollCount(), computeValueLLTs(), ConstantFoldBinaryInstruction(), ConstantFoldGetElementPtr(), convertFloatingToInteger(), convertFPR32ToFPR64(), ConvertI1VectorToInteger(), llvm::AMDGPURegisterBankInfo::copyCost(), llvm::detail::TrailingZerosCounter< T, SizeOfT >::count(), llvm::msf::MSFBuilder::create(), llvm::InstrProfReader::create(), llvm::IndexedInstrProfReader::create(), llvm::LandingPadInst::Create(), createGreedyRegisterAllocator(), createPSADBW(), createShuffleStride(), llvm::SelectionDAG::CreateStackTemporary(), createX86PadShortFunctions(), llvm::mca::Instruction::cycleEvent(), decodeBase64StringEntry(), DecodeDPRRegListOperand(), DecodeFromCyclicRange(), DecodePALIGNRMask(), DecodeSPRRegListOperand(), DeleteTriviallyDeadInstructions(), llvm::ARMFrameLowering::determineCalleeSaves(), llvm::PPCFrameLowering::determineFrameLayout(), DisableAllLoopOptsOnLoop(), llvm::DWARFListTableBase< DWARFDebugRnglist >::dump(), dump(), dumpDWARFv5StringOffsetsSection(), llvm::WebAssemblyRegisterInfo::eliminateFrameIndex(), llvm::AMDGPUAsmPrinter::EmitBasicBlockStart(), llvm::MCWinCOFFStreamer::EmitCommonSymbol(), llvm::DwarfExpression::emitConstu(), llvm::AMDGPUAsmPrinter::EmitFunctionEntryLabel(), llvm::MipsAsmPrinter::EmitFunctionEntryLabel(), EmitGEPOffset(), llvm::X86FrameLowering::emitPrologue(), llvm::RuntimeDyldImpl::emitSection(), enableAllocFrameElim(), encodeCounter(), llvm::CodeViewContext::encodeInlineLineTable(), enforceKnownAlignment(), EnsureStackAlignment(), llvm::opt::ArgList::eraseArg(), llvm::MachineFrameInfo::estimateStackSize(), llvm::AccelTableBase::finalize(), llvm::BlockFrequencyInfoImplBase::finalizeMetrics(), llvm::SMSchedule::finalizeSchedule(), llvm::SourceMgr::FindBufferContainingLoc(), FindCallSeqStart(), findFirstSet(), llvm::SparseSet< unsigned, llvm::VirtReg2IndexFunctor >::findIndex(), llvm::SparseMultiSet< VReg2SUnit, VirtReg2IndexFunctor >::findIndex(), findLastSet(), llvm::wholeprogramdevirt::findLowestOffset(), llvm::MipsTargetELFStreamer::finish(), llvm::TargetInstrInfo::foldMemoryOperand(), FunctionNumber(), gatherUnrollingPreferences(), llvm::AttributeList::get(), llvm::ScaledNumbers::getAdjusted(), llvm::CFLSteensAAResult::FunctionInfo::getAliasSummary(), llvm::RegBankSelect::getAnalysisUsage(), llvm::X86TTIImpl::getArithmeticInstrCost(), llvm::json::Value::getAsInteger(), llvm::DWARFFormValue::getAsSignedConstant(), getBranchHint(), llvm::SystemZTTIImpl::getCastInstrCost(), llvm::HexagonTTIImpl::getCastInstrCost(), getComparePred(), llvm::GCOVBlock::getCycleCount(), getDepthOfOptCmov(), llvm::ScaledNumbers::getDifference(), llvm::SpillPlacement::Node::getDissentingNeighbors(), getDPPOp(), getDwarfRegNum(), getElementByteSizeValue(), llvm::BasicTTIImplBase< AMDGPUTTIImpl >::getEstimatedNumberOfCaseClusters(), llvm::SchedBoundary::getExecutedCount(), llvm::AMDGPUSubtarget::getExplicitKernArgSize(), getExtendInVec(), getFauxShuffleMask(), getFrameIndexOperandNum(), llvm::bfi_detail::BlockMass::getFull(), getFullUnrollBoostingFactor(), llvm::DataLayout::getIndexTypeSizeInBits(), llvm::R600InstrInfo::getIndirectIndexBegin(), llvm::PPCInstrInfo::getInstrLatency(), llvm::SystemZTTIImpl::getInterleavedMemoryOpCost(), llvm::X86TTIImpl::getInterleavedMemoryOpCostAVX512(), llvm::AArch64TTIImpl::getIntImmCost(), llvm::X86TTIImpl::getIntImmCost(), llvm::BasicTTIImplBase< AMDGPUTTIImpl >::getIntrinsicInstrCost(), getItineraryLatency(), llvm::ScaledNumber< uint64_t >::getLargest(), getLatency(), getLayoutSuccessorProbThreshold(), llvm::SourceMgr::getLineAndColumn(), getLongestEntryLength(), getMatchingNonSExtOpcode(), llvm::BlockFrequencyInfoImplBase::BlockNode::getMaxIndex(), llvm::DataLayout::getMaxPointerSize(), llvm::SelectionDAG::getMemIntrinsicNode(), llvm::HexagonTTIImpl::getMemoryOpCost(), getMinVisibility(), getMOVL(), llvm::ScalarEvolution::getMulExpr(), llvm::Value::getName(), llvm::vfs::getNextVirtualUniqueID(), llvm::BFIDOTGraphTraitsBase< BlockFrequencyInfoT, BranchProbabilityInfoT >::getNodeAttributes(), getNumAllocatableRegsForConstraints(), llvm::WebAssemblyTTIImpl::getNumberOfRegisters(), llvm::MipsTargetLowering::getNumRegistersForCallingConv(), llvm::AMDGPU::IsaInfo::getNumSGPRBlocks(), llvm::AMDGPU::IsaInfo::getNumVGPRBlocks(), llvm::AMDGPUSubtarget::getOccupancyWithLocalMemSize(), getOffsetFromIndices(), llvm::cl::generic_parser_base::getOptionWidth(), llvm::LLVMContextImpl::getOrInsertSyncScopeID(), getParentPad(), llvm::R600AsmPrinter::getPassName(), llvm::DataLayout::getPreferredAlignment(), llvm::PressureChange::getPSetOrMax(), llvm::ScaledNumbers::getQuotient(), llvm::ReachingDefAnalysis::getReachingDef(), llvm::GCNIterativeScheduler::getRegionPressure(), getRelevantOperands(), llvm::MachineTraceMetrics::Trace::getResourceDepth(), llvm::MachineTraceMetrics::Trace::getResourceLength(), getRetpolineSymbol(), getScalingFactorCost(), llvm::SchedBoundary::getScheduledLatency(), llvm::object::ELFFile< ELFT >::getSectionContentsAsArray(), llvm::LoopVectorizationCostModel::getSmallestAndWidestTypes(), llvm::InstrItineraryData::getStageLatency(), getStartOrEndSlot(), getStringEncoding(), llvm::MipsTargetLowering::getTypeForExtReturn(), getUnconditionalBrDisp(), getUnderlyingArgReg(), llvm::AMDGPUTTIImpl::getUnrollingPreferences(), llvm::RegPressureTracker::getUpwardPressureDelta(), llvm::X86TTIImpl::getUserCost(), llvm::BitcodeReaderValueList::getValueFwdRef(), llvm::ARMTTIImpl::getVectorInstrCost(), greaterWithBias(), llvm::SmallVectorTemplateBase< T >::grow(), llvm::SmallVectorBase::grow_pod(), HandleByValArgument(), llvm::DWARFVerifier::handleDebugLine(), llvm::MCCodePadder::handleInstructionEnd(), hasAnyNonFlatUseOfReg(), hasOnlySelectUsers(), hasProfileData(), hasSameExtUse(), hasUseAfterLoop(), hasValueBeenRAUWed(), llvm::HexagonTargetLowering::HexagonTargetLowering(), llvm::GCNRegPressure::higherOccupancy(), ignoreDependence(), llvm::RegPressureTracker::increaseRegPressure(), INITIALIZE_PASS(), llvm::DbgVariable::initializeMMI(), InlineFunction(), insertCSRRestores(), insertDeleteInstructions(), instrumentMaskedLoadOrStore(), intersect(), llvm::PBQP::GraphBase::invalidEdgeId(), llvm::PBQP::GraphBase::invalidNodeId(), llvm::mca::RetireControlUnit::isAvailable(), isBroadcastShuffle(), llvm::FastISel::isCommutativeIntrinsic(), llvm::SelectionDAG::isConstantFPBuildVectorOrConstantFP(), isDebug(), isDefInSubRange(), isEndChunk(), isFormingBranchFromSelectProfitable(), llvm::bfi_detail::BlockMass::isFull(), isIndirectBrTarget(), isIntersect(), isMulPowOf2(), isOverwrite(), isPushPop(), isReassociableOp(), isRegUsedByPhiNodes(), isSafePHIToSpeculate(), isSaturatingConditional(), IsSingleInstrConstant(), IsSmallObject(), isStartChunk(), isSupportedType(), isTargetConstant(), isTerminalReg(), isVectorPromotionViableForSlice(), llvm::SMSchedule::latestCycleInChain(), llvm::AArch64LegalizerInfo::legalizeCustom(), llvm::coverage::LineCoverageStats::LineCoverageStats(), LowerBUILD_VECTORvXi1(), llvm::HexagonTargetLowering::LowerCall(), llvm::SparcTargetLowering::LowerCall_64(), lowerCallResult(), LowerCallResult(), LowerEXTEND_VECTOR_INREG(), llvm::SelectionDAGBuilder::lowerRangeToAssertZExt(), lowerShuffleAsRepeatedMaskAndLanePermute(), lowerV2I64VectorShuffle(), lowerVectorShuffleAsBlend(), lowerVectorShuffleAsByteRotateAndPermute(), lowerVectorShuffleToEXPAND(), llvm::ConstantRange::lshr(), llvm::MachineFunction::MachineFunction(), mapBinOpcode(), llvm::codeview::CodeViewRecordIO::mapStringZVectorZ(), MatchingStackOffset(), matchPair(), matchUnaryVectorShuffle(), llvm::PBQP::RegAlloc::MatrixMetadata::MatrixMetadata(), llvm::RandomNumberGenerator::max(), llvm::MachineInstr::mayAlias(), mayCombineMisaligned(), llvm::HexagonMCInstrInfo::minConstant(), MinOptional(), llvm::TargetTransformInfoImplBase::minRequiredElementSize(), moveUp(), llvm::ConstantRange::multiply(), needsRuntimeRegistrationOfSectionRange(), llvm::BlockFrequencyInfoImplBase::Distribution::normalize(), llvm::mca::WriteState::onInstructionIssued(), llvm::SmallBitVector::operator &=(), llvm::detail::enumerator_iter< R >::operator++(), llvm::bfi_detail::BlockMass::operator+=(), llvm::SmallBitVector::operator^=(), llvm::SmallBitVector::operator|=(), llvm::OptBisect::OptBisect(), llvm::LiveRange::overlaps(), llvm::formatted_raw_ostream::PadToColumn(), parseSegmentLoadCommand(), pickOpcodeForVT(), llvm::BasicBlockInfo::postKnownBits(), llvm::BasicBlockInfo::postOffset(), llvm::GCNHazardRecognizer::PreEmitNoops(), PrepareCall(), llvm::PressureChange::PressureChange(), PrintHelpOptionList(), llvm::itanium_demangle::ParameterPackExpansion::printLeft(), llvm::cl::PrintOptionValues(), llvm::TargetRegistry::printRegisteredTargetsForVersion(), PrintStatistics(), processDbgDeclares(), llvm::SystemZFrameLowering::processFunctionBeforeFrameFinalized(), llvm::HexagonFrameLowering::processFunctionBeforeFrameFinalized(), llvm::LoopVectorizePass::processLoop(), promoteLoopAccessesToScalars(), pushDepHeight(), llvm::sampleprof::SampleProfileReaderBinary::readNumber(), llvm::sampleprof::SampleProfileReaderGCC::readNumber(), readsVCCZ(), llvm::GCNHazardRecognizer::RecedeCycle(), llvm::AArch64TargetLowering::ReconstructShuffle(), reduceBuildVecToShuffleWithZero(), RedzoneSizeForScale(), llvm::MCCodePadder::relaxFragment(), llvm::ConvergingVLIWScheduler::releaseBottomNode(), llvm::SchedBoundary::releaseNode(), llvm::SchedBoundary::releasePending(), llvm::ConvergingVLIWScheduler::releaseTopNode(), replace(), llvm::ARMTargetLowering::ReplaceNodeResults(), llvm::mca::RetireControlUnit::reserveSlot(), llvm::SchedBoundary::reset(), llvm::SelectionDAGBuilder::resolveDanglingDebugInfo(), SaturatingAdd(), SaturatingMultiply(), llvm::detail::scalbn(), llvm::ScaledNumber< uint64_t >::scale(), scaleBranchCount(), scaleCaseProbality(), scaleWeights(), llvm::GenericScheduler::schedNode(), llvm::PostGenericScheduler::schedNode(), llvm::GCNScheduleDAGMILive::schedule(), llvm::SwingSchedulerDAG::schedule(), llvm::SchedDFSResult::scheduleTree(), selectI64Imm(), llvm::LoopVectorizationCostModel::selectInterleaveCount(), llvm::LoopVectorizationCostModel::selectVectorizationFactor(), llvm::FunctionLoweringInfo::set(), llvm::LoopVectorizationCostModel::setCostBasedWideningDecision(), setGroupSize(), llvm::SUnit::setHeightToAtLeast(), setupMemoryBuffer(), llvm::ConstantRange::shl(), llvm::DenseMap< unsigned, unsigned >::shrink_and_clear(), ShrinkLoadReplaceStoreWithStore(), llvm::SIMachineFunctionInfo::SIMachineFunctionInfo(), AllocaSlices::SliceBuilder::SliceBuilder(), SortCallTargets(), sortSubCommands(), StackMallocSizeClass(), strongerOrdering(), swapMIOperands(), SwitchToLookupTable(), llvm::X86TargetLowering::targetShrinkDemandedConstant(), llvm::ScaledNumber< uint64_t >::toInt(), llvm::ScaledNumberBase::toString(), llvm::AMDGPU::HSAMD::toString(), llvm::GCNIterativeScheduler::tryMaximizeOccupancy(), tryPressure(), tryToElideArgumentCopy(), TypeSizeToSizeIndex(), uniform(), llvm::ScopedPrinter::unindent(), llvm::LocationSize::unionWith(), unpackAllocSizeArgs(), llvm::LiveIntervals::HMEditor::updateAllRanges(), llvm::MachineTraceMetrics::Ensemble::updateDepth(), llvm::CalleeInfo::updateHotness(), updatePhysDepsDownwards(), updatePhysDepsUpwards(), llvm::ScheduleDAGMILive::updateScheduledPressure(), llvm::HexagonSubtarget::usePredicatedCalls(), llvm::detail::result_pair< R >::value(), VarAndRedzoneSize(), llvm::RegisterBankInfo::ValueMapping::verify(), llvm::LegalizerInfo::verify(), llvm::ScheduleDAG::VerifyScheduledDAG(), llvm::sroa::AllocaSliceRewriter::visit(), llvm::Interpreter::visitAllocaInst(), llvm::InstCombiner::visitAllocaInst(), llvm::InstCombiner::visitFPTrunc(), llvm::InstCombiner::visitSwitchInst(), llvm::InstCombiner::visitTrunc(), llvm::coverage::CoverageMappingWriter::write(), llvm::msgpack::Writer::write(), write_hex(), llvm::MachObjectWriter::writeObject(), llvm::mca::ReadState::writeStartEvent(), and zeroExtendToMatch().

◆ maximum()

LLVM_READONLY APFloat llvm::maximum ( const APFloat A,
const APFloat B 
)
inline

Implements IEEE 754-2018 maximum semantics.

Returns the larger of 2 arguments, propagating NaNs and treating -0 as less than +0.

Definition at line 1262 of file APFloat.h.

References B, llvm::APFloatBase::cmpLessThan, llvm::APFloat::compare(), llvm::APFloat::isNaN(), llvm::APFloat::isNegative(), and llvm::APFloat::isZero().

Referenced by canConstantFoldCallTo(), llvm::InstCombiner::visitCallInst(), and visitFMinMax().

◆ maxIntN()

int64_t llvm::maxIntN ( int64_t  N)
inline

Gets the maximum value for a N-bit signed integer.

Definition at line 384 of file MathExtras.h.

References assert().

Referenced by isIntN(), and adjust::signed_width().

◆ maxnum()

LLVM_READONLY APFloat llvm::maxnum ( const APFloat A,
const APFloat B 
)
inline

Implements IEEE maxNum semantics.

Returns the larger of the 2 arguments if both are not NaN. If either argument is a NaN, returns the other argument.

Definition at line 1238 of file APFloat.h.

References llvm::APFloatBase::cmpLessThan, llvm::APFloat::compare(), llvm::APFloat::isNaN(), and LLVM_READONLY.

Referenced by canConstantFoldCallTo(), fmed3AMDGCN(), llvm::InstCombiner::visitCallInst(), and visitFMinMax().

◆ maxUIntN()

uint64_t llvm::maxUIntN ( uint64_t  N)
inline

Gets the maximum value for a N-bit unsigned integer.

Definition at line 366 of file MathExtras.h.

References assert(), N, and UINT64_MAX.

Referenced by isUIntN(), and adjust::unsigned_width().

◆ maybeMarkSanitizerLibraryCallNoBuiltin()

void llvm::maybeMarkSanitizerLibraryCallNoBuiltin ( CallInst CI,
const TargetLibraryInfo TLI 
)

Given a CallInst, check if it calls a string function known to CodeGen, and mark it with NoBuiltin if so.

To be used by sanitizers that intend to intercept string functions and want to avoid converting them to target specific instructions.

Definition at line 2823 of file Local.cpp.

References llvm::CallBase::addAttribute(), llvm::Function::doesNotAccessMemory(), F(), llvm::AttributeList::FunctionIndex, llvm::CallBase::getCalledFunction(), llvm::TargetLibraryInfo::getLibFunc(), llvm::Value::getName(), llvm::GlobalValue::hasLocalLinkage(), llvm::Value::hasName(), llvm::TargetLibraryInfo::hasOptimizedCodeGen(), and llvm::Attribute::NoBuiltin.

Referenced by createEfficiencySanitizerPass(), getKnownAlignment(), instrumentMaskedLoadOrStore(), isAtomic(), and TypeSizeToSizeIndex().

◆ mayBeMemoryDependent()

bool llvm::mayBeMemoryDependent ( const Instruction I)

Returns true if the result or effects of the given instructions I depend on or influence global memory.

Memory dependence arises for example if the instruction reads from memory or may produce effects or undefined behaviour. Memory dependent instructions generally cannot be reorderd with respect to other memory dependent instructions or moved into non-dominated basic blocks. Instructions which just compute a value based on the values of their operands are not memory dependent.

Definition at line 3925 of file ValueTracking.cpp.

References isSafeToSpeculativelyExecute(), and llvm::Instruction::mayReadOrWriteMemory().

Referenced by GetUnderlyingObject(), isReassociableOp(), and isSafeToSpeculatePHIUsers().

◆ mayBeOldLoopAttachmentTag()

bool llvm::mayBeOldLoopAttachmentTag ( StringRef  Name)
inline

Check whether a string looks like an old loop attachment tag.

Definition at line 84 of file AutoUpgrade.h.

References N, llvm::StringRef::startswith(), and upgradeInstructionLoopAttachment().

◆ mayOptimizeThumb2Instruction()

static bool llvm::mayOptimizeThumb2Instruction ( const MachineInstr MI)
static

Definition at line 27 of file ARMComputeBlockSize.cpp.

References llvm::MachineInstr::getOpcode().

Referenced by computeBlockSize().

◆ MCLOHDirectiveName()

static StringRef llvm::MCLOHDirectiveName ( )
inlinestatic

Definition at line 45 of file MCLinkerOptimizationHint.h.

Referenced by isMatchingOrAlias(), and truncateToSize().

◆ MCLOHIdToName()

static StringRef llvm::MCLOHIdToName ( MCLOHType  Kind)
inlinestatic

Definition at line 67 of file MCLinkerOptimizationHint.h.

References MCLOHCaseIdToName.

Referenced by truncateToSize().

◆ MCLOHIdToNbArgs()

static int llvm::MCLOHIdToNbArgs ( MCLOHType  Kind)
inlinestatic

◆ MCLOHNameToId()

static int llvm::MCLOHNameToId ( StringRef  Name)
inlinestatic

Definition at line 53 of file MCLinkerOptimizationHint.h.

References MCLOHCaseNameToId, and Name.

Referenced by incrementLoc().

◆ MD5Hash()

uint64_t llvm::MD5Hash ( StringRef  Str)
inline

◆ MergeBasicBlockIntoOnlyPred()

void llvm::MergeBasicBlockIntoOnlyPred ( BasicBlock DestBB,
DomTreeUpdater DTU = nullptr 
)

BB is a block with one predecessor and its predecessor is known to have one successor (BB!).

MergeBasicBlockIntoOnlyPred - DestBB is a block with one predecessor and its predecessor is known to have one successor (DestBB!).

Eliminate the edge between them, moving the instructions in the predecessor into BB. This deletes the predecessor block.

Eliminate the edge between them, moving the instructions in the predecessor into DestBB and deleting the predecessor block.

Definition at line 675 of file Local.cpp.

References llvm::DomTreeUpdater::applyUpdates(), assert(), llvm::BasicBlock::begin(), llvm::DominatorTreeBase< BasicBlock, false >::Delete, llvm::DomTreeUpdater::deleteBB(), llvm::Constant::destroyConstant(), E, llvm::Instruction::eraseFromParent(), llvm::BasicBlock::eraseFromParent(), find(), llvm::ConstantInt::get(), llvm::BlockAddress::get(), llvm::UndefValue::get(), llvm::BasicBlock::getContext(), llvm::Value::getContext(), llvm::Function::getEntryBlock(), llvm::BasicBlock::getInstList(), llvm::Type::getInt32Ty(), llvm::ConstantExpr::getIntToPtr(), llvm::BasicBlock::getParent(), llvm::BasicBlock::getSinglePredecessor(), llvm::BasicBlock::getTerminator(), llvm::Value::getType(), llvm::BasicBlock::hasAddressTaken(), llvm::DomTreeUpdater::hasDomTree(), I, llvm::DominatorTreeBase< BasicBlock, false >::Insert, llvm::BasicBlock::moveAfter(), pred_begin(), pred_end(), llvm::SmallVectorTemplateBase< T >::push_back(), llvm::DomTreeUpdater::recalculate(), llvm::Value::replaceAllUsesWith(), llvm::iplist_impl< IntrusiveListT, TraitsT >::splice(), succ_end(), and successors().

Referenced by llvm::JumpThreadingPass::ProcessBlock(), and llvm::SimplifyCFGOptions::setAssumptionCache().

◆ MergeBlockIntoPredecessor()

bool llvm::MergeBlockIntoPredecessor ( BasicBlock BB,
DomTreeUpdater DTU = nullptr,
LoopInfo LI = nullptr,
MemorySSAUpdater MSSAU = nullptr,
MemoryDependenceResults MemDep = nullptr 
)

Attempts to merge a block into its predecessor, if possible.

The return value indicates success or failure.

Definition at line 137 of file BasicBlockUtils.cpp.

References llvm::DomTreeUpdater::applyUpdates(), assert(), llvm::BasicBlock::begin(), llvm::DominatorTreeBase< BasicBlock, false >::Delete, llvm::DomTreeUpdater::deleteBB(), E, llvm::BasicBlock::end(), llvm::BasicBlock::eraseFromParent(), findDbgValues(), FoldSingleEntryPHINodes(), llvm::BasicBlock::front(), llvm::BasicBlock::getContext(), llvm::BasicBlock::getInstList(), getParent(), llvm::BasicBlock::getTerminator(), llvm::BasicBlock::getUniquePredecessor(), llvm::BasicBlock::getUniqueSuccessor(), llvm::BasicBlock::hasAddressTaken(), llvm::Value::hasName(), I, llvm::detail::DenseSetImpl< ValueT, SmallDenseMap< ValueT, detail::DenseSetEmpty, InlineBuckets, ValueInfoT, detail::DenseSetPair< ValueT > >, ValueInfoT >::insert(), llvm::DominatorTreeBase< BasicBlock, false >::Insert, llvm::MemoryDependenceResults::invalidateCachedPredecessors(), llvm::Instruction::isExceptionalTerminator(), llvm::MemorySSAUpdater::moveAllAfterMergeBlocks(), llvm::BasicBlock::phis(), llvm::iplist_impl< IntrusiveListT, TraitsT >::pop_back(), llvm::SmallVectorTemplateBase< T >::push_back(), llvm::LoopInfoBase< BlockT, LoopT >::removeBlock(), llvm::Value::replaceAllUsesWith(), llvm::iplist_impl< IntrusiveListT, TraitsT >::splice(), succ_begin(), succ_end(), succ_size(), and llvm::Value::takeName().

Referenced by createCodeGenPreparePass(), llvm::VPlan::execute(), isOnlyReachableViaThisEdge(), mergeBlocksIntoPredecessors(), removeUndefIntroducingPredecessor(), and shouldRotateLoopExitingLatch().

◆ MergeResult()

sampleprof_error llvm::MergeResult ( sampleprof_error Accumulator,
sampleprof_error  Result 
)
inline

◆ microsoftDemangle()

char * llvm::microsoftDemangle ( const char mangled_name,
char buf,
size_t *  n,
int *  status,
MSDemangleFlags  Flags = MSDF_None 
)

◆ MinAlign()

constexpr uint64_t llvm::MinAlign ( uint64_t  A,
uint64_t  B 
)
inline

A and B are either alignments or offsets.

Return the minimum alignment that may be assumed after adding the two together.

Definition at line 610 of file MathExtras.h.

References B.

Referenced by llvm::CCState::AllocateStack(), llvm::HexagonFrameLowering::assignCalleeSavedSpillSlots(), buildMUBUFOffsetLoadStore(), combineLoad(), combineStore(), computeValueLLTs(), llvm::MachineFrameInfo::CreateFixedObject(), llvm::MachineFrameInfo::CreateFixedSpillStackObject(), expandf64Toi32(), llvm::TargetLowering::expandUnalignedLoad(), llvm::TargetLowering::expandUnalignedStore(), ExtendUsesToFormExtLoad(), llvm::LegalizerHelper::fewerElementsVector(), findCommonAlignment(), findUser(), llvm::X86InstrInfo::foldMemoryOperandImpl(), getAdjustedAlignment(), llvm::MachineMemOperand::getAlignment(), getComparePred(), getExpandedMinMaxOps(), getMemcpyLoadsAndStores(), getParamsForOneTrueMaskedElt(), getTypePartition(), getUnderlyingArgReg(), getVectorCompareInfo(), llvm::CCState::HandleByVal(), hasUndefContents(), llvm::SelectionDAG::InferPtrAlignment(), isTruncateOf(), isWordAligned(), llvm::SITargetLowering::LowerCall(), llvm::AMDGPUCallLowering::lowerFormalArguments(), llvm::R600TargetLowering::LowerFormalArguments(), llvm::SITargetLowering::LowerFormalArguments(), LowerLoad(), moveUp(), llvm::LegalizerHelper::narrowScalar(), numVectorEltsOrZero(), llvm::PPCTargetLowering::PerformDAGCombine(), llvm::SIRegisterInfo::restoreSGPR(), scalarizeMaskedLoad(), scalarizeMaskedStore(), llvm::TargetLowering::scalarizeVectorLoad(), llvm::TargetLowering::scalarizeVectorStore(), ShrinkLoadReplaceStoreWithStore(), llvm::TargetLowering::SimplifySetCC(), llvm::SIRegisterInfo::spillSGPR(), splitStoreSplat(), llvm::AMDGPUTargetLowering::SplitVectorLoad(), llvm::AMDGPUTargetLowering::SplitVectorStore(), SRAGlobal(), unpackLoadToAggregate(), unpackStoreToAggregate(), and llvm::sroa::AllocaSliceRewriter::visit().

◆ minimum()

LLVM_READONLY APFloat llvm::minimum ( const APFloat A,
const APFloat B 
)
inline

Implements IEEE 754-2018 minimum semantics.

Returns the smaller of 2 arguments, propagating NaNs and treating -0 as less than +0.

Definition at line 1249 of file APFloat.h.

References B, llvm::APFloatBase::cmpLessThan, llvm::APFloat::compare(), llvm::APFloat::isNaN(), llvm::APFloat::isNegative(), llvm::APFloat::isZero(), and LLVM_READONLY.

Referenced by canConstantFoldCallTo(), llvm::InstCombiner::visitCallInst(), and visitFMinMax().

◆ minIntN()

int64_t llvm::minIntN ( int64_t  N)
inline

Gets the minimum value for a N-bit signed integer.

Definition at line 377 of file MathExtras.h.

References assert().

Referenced by isIntN(), and adjust::signed_width().

◆ minnum()

LLVM_READONLY APFloat llvm::minnum ( const APFloat A,
const APFloat B 
)
inline

Implements IEEE minNum semantics.

Returns the smaller of the 2 arguments if both are not NaN. If either argument is a NaN, returns the other argument.

Definition at line 1227 of file APFloat.h.

References llvm::APFloatBase::cmpLessThan, llvm::APFloat::compare(), llvm::APFloat::isNaN(), and LLVM_READONLY.

Referenced by canConstantFoldCallTo(), llvm::InstCombiner::visitCallInst(), and visitFMinMax().

◆ nameUnamedGlobals()

bool llvm::nameUnamedGlobals ( Module M)

Rename all the anon globals in the module using a hash computed from the list of public globals in the module.

Definition at line 66 of file NameAnonGlobals.cpp.

References llvm::Module::aliases(), count(), and llvm::Module::global_objects().

Referenced by llvm::NameAnonGlobalPass::run().

◆ needsComdatForCounter()

bool llvm::needsComdatForCounter ( const Function F,
const Module M 
)

◆ neg()

APFloat llvm::neg ( APFloat  X)
inline

Returns the negated value of the argument.

Definition at line 1219 of file APFloat.h.

References llvm::APFloat::changeSign(), LLVM_READONLY, and X.

Referenced by branchMaxOffsets(), and isNegatibleForFree().

◆ NextPowerOf2()

uint64_t llvm::NextPowerOf2 ( uint64_t  A)
inline

Returns the next power of two (in 64-bits) that is strictly greater than A.

Returns zero on overflow.

Definition at line 640 of file MathExtras.h.

Referenced by canTransformToMemCmp(), combineWeightsByHashing(), computeMinimumValueSizes(), llvm::slpvectorizer::BoUpSLP::computeMinimumValueSizes(), computeRecurrenceType(), llvm::OnDiskChainedHashTableGenerator< Info >::Emit(), llvm::MemoryDependenceResults::getLoadLoadClobberFullWidthSize(), llvm::VNCoercion::getLoadValueForLoad(), getMinBucketToReserveForEntries(), llvm::DenseMapBase< DenseMap< const llvm::SCEV *, const llvm::SCEV *, DenseMapInfo< const llvm::SCEV *>, llvm::detail::DenseMapPair< const llvm::SCEV *, const llvm::SCEV *> >, const llvm::SCEV *, const llvm::SCEV *, DenseMapInfo< const llvm::SCEV *>, llvm::detail::DenseMapPair< const llvm::SCEV *, const llvm::SCEV *> >::getMinBucketToReserveForEntries(), getShiftAmount(), llvm::TargetLoweringBase::getVectorTypeBreakdown(), getVectorTypeBreakdownMVT(), llvm::SmallVectorTemplateBase< T >::grow(), llvm::DenseMap< unsigned, unsigned >::grow(), llvm::SmallDenseMap< const llvm::DISubprogram *, detail::DenseSetEmpty, InlineBuckets, DenseMapInfo< const llvm::DISubprogram *>, detail::DenseSetPair< const llvm::DISubprogram * > >::grow(), isKnownTypeIdMember(), llvm::BitmaskEnumDetail::Mask(), operator new(), PowerOf2Ceil(), llvm::detail::IEEEFloat::roundToIntegral(), llvm::TargetLoweringBase::setJumpIsExpensive(), llvm::TargetLowering::ShrinkDemandedOp(), ShrinkLoadReplaceStoreWithStore(), llvm::SmallDenseMap< const llvm::DISubprogram *, detail::DenseSetEmpty, InlineBuckets, DenseMapInfo< const llvm::DISubprogram *>, detail::DenseSetPair< const llvm::DISubprogram * > >::SmallDenseMap(), SwitchToLookupTable(), and llvm::WebAssemblyTargetLowering::WebAssemblyTargetLowering().

◆ nodes()

template<class GraphType >
iterator_range<typename GraphTraits<GraphType>::nodes_iterator> llvm::nodes ( const GraphType &  G)

◆ none_of()

template<typename R , typename UnaryPredicate >
bool llvm::none_of ( R &&  Range,
UnaryPredicate  P 
)

◆ normalizeForPostIncUse()

const SCEV * llvm::normalizeForPostIncUse ( const SCEV S,
const PostIncLoopSet Loops,
ScalarEvolution SE 
)

Normalize S to be post-increment for all loops present in Loops.

Definition at line 97 of file ScalarEvolutionNormalization.cpp.

References llvm::SmallPtrSetImpl< PtrType >::count(), llvm::SCEVAddRecExpr::getLoop(), and Normalize.

Referenced by canFoldIVIncExpr(), llvm::IVUsers::getExpr(), and IsIncrementNUW().

◆ normalizeForPostIncUseIf()

const SCEV * llvm::normalizeForPostIncUseIf ( const SCEV S,
NormalizePredTy  Pred,
ScalarEvolution SE 
)

Normalize S for all add recurrence sub-expressions for which Pred returns true.

Definition at line 106 of file ScalarEvolutionNormalization.cpp.

References Normalize.

Referenced by llvm::IVUsers::AddUsersImpl().

◆ normalizeSpillWeight()

static float llvm::normalizeSpillWeight ( float  UseDefFreq,
unsigned  Size,
unsigned  NumInstr 
)
inlinestatic

Normalize the spill weight of a live interval.

The spill weight of a live interval is computed as:

(sum(use freq) + sum(def freq)) / (K + size)

Parameters
UseDefFreqExpected number of executed use and def instructions per function call. Derived from block frequencies.
SizeSize of live interval as returnexd by getSize()
NumInstrNumber of instructions using this live interval

Definition at line 35 of file CalcSpillWeights.h.

References llvm::SlotIndex::InstrDist.

Referenced by getNumAllocatableRegsForConstraints(), normalizePBQPSpillWeight(), and llvm::VirtRegAuxInfo::VirtRegAuxInfo().

◆ NullPointerIsDefined()

bool llvm::NullPointerIsDefined ( const Function F,
unsigned  AS = 0 
)

◆ nulls()

raw_ostream & llvm::nulls ( )

◆ OffsetToAlignment()

uint64_t llvm::OffsetToAlignment ( uint64_t  Value,
uint64_t  Align 
)
inline

◆ onlyUsedByLifetimeMarkers()

bool llvm::onlyUsedByLifetimeMarkers ( const Value V)

Return true if the only users of this pointer are lifetime markers.

Definition at line 3827 of file ValueTracking.cpp.

References dyn_cast(), llvm::Instruction::isLifetimeStartOrEnd(), and llvm::Value::users().

Referenced by GetUnderlyingObject(), and isAllocaPromotable().

◆ operator &() [1/7]

JITSymbolFlags llvm::operator& ( const JITSymbolFlags LHS,
const JITSymbolFlags::FlagNames RHS 
)
inline

Definition at line 175 of file JITSymbol.h.

◆ operator &() [2/7]

SmallBitVector llvm::operator& ( const SmallBitVector LHS,
const SmallBitVector RHS 
)
inline

Definition at line 683 of file SmallBitVector.h.

◆ operator &() [3/7]

template<unsigned ElementSize>
SparseBitVector<ElementSize> llvm::operator& ( const SparseBitVector< ElementSize > &  LHS,
const SparseBitVector< ElementSize > &  RHS 
)
inline

Definition at line 859 of file SparseBitVector.h.

◆ operator &() [4/7]

APInt llvm::operator& ( APInt  a,
const APInt b 
)
inline

Definition at line 1979 of file APInt.h.

◆ operator &() [5/7]

APInt llvm::operator& ( const APInt a,
APInt &&  b 
)
inline

Definition at line 1984 of file APInt.h.

◆ operator &() [6/7]

APInt llvm::operator& ( APInt  a,
uint64_t  RHS 
)
inline

Definition at line 1989 of file APInt.h.

◆ operator &() [7/7]

APInt llvm::operator& ( uint64_t  LHS,
APInt  b 
)
inline

Definition at line 1994 of file APInt.h.

◆ operator!=() [1/23]

bool llvm::operator!= ( const MachineLocation LHS,
const MachineLocation RHS 
)
inline

Definition at line 53 of file MachineLocation.h.

◆ operator!=() [2/23]

bool llvm::operator!= ( const DWARFExpression::iterator LHS,
const DWARFExpression::iterator RHS 
)
inline

Definition at line 148 of file DWARFExpression.h.

◆ operator!=() [3/23]

template<typename PT1 , typename PT2 >
bool llvm::operator!= ( PointerUnion< PT1, PT2 >  lhs,
PointerUnion< PT1, PT2 >  rhs 
)

Definition at line 199 of file PointerUnion.h.

References llvm::PointerUnion< PT1, PT2 >::getOpaqueValue().

◆ operator!=() [4/23]

template<typename T , typename U >
bool llvm::operator!= ( const Optional< T > &  X,
const Optional< U > &  Y 
)

Definition at line 200 of file Optional.h.

References Y.

◆ operator!=() [5/23]

template<class T , class U >
bool llvm::operator!= ( const IntrusiveRefCntPtr< T > &  A,
const IntrusiveRefCntPtr< U > &  B 
)
inline

Definition at line 203 of file IntrusiveRefCntPtr.h.

References llvm::IntrusiveRefCntPtr< T >::get().

◆ operator!=() [6/23]

template<class T , class U >
bool llvm::operator!= ( const IntrusiveRefCntPtr< T > &  A,
U *  B 
)
inline

Definition at line 214 of file IntrusiveRefCntPtr.h.

References B, and llvm::IntrusiveRefCntPtr< T >::get().

◆ operator!=() [7/23]

bool llvm::operator!= ( const ValueInfo A,
const ValueInfo B 
)
inline

Definition at line 216 of file ModuleSummaryIndex.h.

References assert(), and llvm::ValueInfo::getRef().

◆ operator!=() [8/23]

template<class T , class U >
bool llvm::operator!= ( T A,
const IntrusiveRefCntPtr< U > &  B 
)
inline

Definition at line 224 of file IntrusiveRefCntPtr.h.

References llvm::IntrusiveRefCntPtr< T >::get().

◆ operator!=() [9/23]

template<typename T >
bool llvm::operator!= ( const Optional< T > &  X,
NoneType   
)

Definition at line 237 of file Optional.h.

References None.

◆ operator!=() [10/23]

template<class T >
bool llvm::operator!= ( std::nullptr_t  A,
const IntrusiveRefCntPtr< T > &  B 
)

Definition at line 239 of file IntrusiveRefCntPtr.h.

References B.

◆ operator!=() [11/23]

template<typename T >
bool llvm::operator!= ( NoneType  ,
const Optional< T > &  X 
)

Definition at line 242 of file Optional.h.

References None.

◆ operator!=() [12/23]

template<class T >
bool llvm::operator!= ( const IntrusiveRefCntPtr< T > &  A,
std::nullptr_t  B 
)

Definition at line 244 of file IntrusiveRefCntPtr.h.

References B.

◆ operator!=() [13/23]

template<typename T >
bool llvm::operator!= ( const Optional< T > &  X,
const T Y 
)

Definition at line 286 of file Optional.h.

References Y.

◆ operator!=() [14/23]

template<typename T >
bool llvm::operator!= ( const T X,
const Optional< T > &  Y 
)

Definition at line 290 of file Optional.h.

References Y.

◆ operator!=() [15/23]

bool llvm::operator!= ( const DWARFDie::attribute_iterator LHS,
const DWARFDie::attribute_iterator RHS 
)
inline

Definition at line 318 of file DWARFDie.h.

◆ operator!=() [16/23]

bool llvm::operator!= ( int64_t  V1,
const APSInt V2 
)
inline

Definition at line 323 of file APSInt.h.

◆ operator!=() [17/23]

bool llvm::operator!= ( const DWARFDie LHS,
const DWARFDie RHS 
)
inline

Definition at line 328 of file DWARFDie.h.

◆ operator!=() [18/23]

bool llvm::operator!= ( const DWARFDie::iterator LHS,
const DWARFDie::iterator RHS 
)
inline

Definition at line 368 of file DWARFDie.h.

◆ operator!=() [19/23]

bool llvm::operator!= ( const std::reverse_iterator< DWARFDie::iterator > &  LHS,
const std::reverse_iterator< DWARFDie::iterator > &  RHS 
)
inline

Definition at line 454 of file DWARFDie.h.

◆ operator!=() [20/23]

template<typename T >
bool llvm::operator!= ( ArrayRef< T LHS,
ArrayRef< T RHS 
)
inline

Definition at line 523 of file ArrayRef.h.

◆ operator!=() [21/23]

template<typename DerivedT , typename KeyT , typename ValueT , typename KeyInfoT , typename BucketT >
bool llvm::operator!= ( const DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT > &  LHS,
const DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT > &  RHS 
)

Inequality comparison for DenseMap.

Equivalent to !(LHS == RHS). See operator== for performance notes.

Definition at line 700 of file DenseMap.h.

◆ operator!=() [22/23]

LLVM_ATTRIBUTE_ALWAYS_INLINE bool llvm::operator!= ( StringRef  LHS,
StringRef  RHS 
)
inline

Definition at line 903 of file StringRef.h.

◆ operator!=() [23/23]

bool llvm::operator!= ( uint64_t  V1,
const APInt V2 
)
inline

◆ operator&=() [1/2]

template<unsigned ElementSize>
bool llvm::operator &= ( SparseBitVector< ElementSize > *  LHS,
const SparseBitVector< ElementSize > &  RHS 
)
inline

Definition at line 835 of file SparseBitVector.h.

◆ operator&=() [2/2]

template<unsigned ElementSize>
bool llvm::operator &= ( SparseBitVector< ElementSize > &  LHS,
const SparseBitVector< ElementSize > *  RHS 
)
inline

Definition at line 841 of file SparseBitVector.h.

◆ operator*() [1/2]

APInt llvm::operator* ( APInt  a,
uint64_t  RHS 
)
inline

◆ operator*() [2/2]

APInt llvm::operator* ( uint64_t  LHS,
APInt  b 
)
inline

Definition at line 2096 of file APInt.h.

◆ operator+() [1/7]

Twine llvm::operator+ ( const Twine LHS,
const Twine RHS 
)
inline

Definition at line 515 of file Twine.h.

References llvm::Twine::concat().

◆ operator+() [2/7]

Twine llvm::operator+ ( const char LHS,
const StringRef RHS 
)
inline

Additional overload to guarantee simplified codegen; this is equivalent to concat().

Definition at line 522 of file Twine.h.

References llvm::Twine::Twine().

◆ operator+() [3/7]

Twine llvm::operator+ ( const StringRef LHS,
const char RHS 
)
inline

Additional overload to guarantee simplified codegen; this is equivalent to concat().

Definition at line 529 of file Twine.h.

References llvm::Twine::Twine().

◆ operator+() [4/7]

APInt llvm::operator+ ( APInt  a,
const APInt b 
)
inline

Definition at line 2049 of file APInt.h.

◆ operator+() [5/7]

APInt llvm::operator+ ( const APInt a,
APInt &&  b 
)
inline

Definition at line 2054 of file APInt.h.

◆ operator+() [6/7]

APInt llvm::operator+ ( APInt  a,
uint64_t  RHS 
)
inline

Definition at line 2059 of file APInt.h.

◆ operator+() [7/7]

APInt llvm::operator+ ( uint64_t  LHS,
APInt  b 
)
inline

Definition at line 2064 of file APInt.h.

◆ operator+=()

std::string& llvm::operator+= ( std::string &  buffer,
StringRef  string 
)
inline

◆ operator-() [1/6]

APInt llvm::operator- ( APInt  v)
inline

◆ operator-() [2/6]

template<unsigned ElementSize>
SparseBitVector<ElementSize> llvm::operator- ( const SparseBitVector< ElementSize > &  LHS,
const SparseBitVector< ElementSize > &  RHS 
)
inline

◆ operator-() [3/6]

APInt llvm::operator- ( APInt  a,
const APInt b 
)
inline

Definition at line 2069 of file APInt.h.

◆ operator-() [4/6]

APInt llvm::operator- ( const APInt a,
APInt &&  b 
)
inline

Definition at line 2074 of file APInt.h.

References llvm::APInt::negate().

◆ operator-() [5/6]

APInt llvm::operator- ( APInt  a,
uint64_t  RHS 
)
inline

Definition at line 2080 of file APInt.h.

◆ operator-() [6/6]

APInt llvm::operator- ( uint64_t  LHS,
APInt  b 
)
inline

Definition at line 2085 of file APInt.h.

References llvm::APInt::negate().

◆ operator<() [1/20]

bool llvm::operator< ( AtomicOrderingCABI  ,
AtomicOrderingCABI   
)
delete

◆ operator<() [2/20]

static bool llvm::operator< ( const DWARFAddressRange LHS,
const DWARFAddressRange RHS 
)
inlinestatic

◆ operator<() [3/20]

bool llvm::operator< ( AtomicOrdering  ,
AtomicOrdering   
)
delete

◆ operator<() [4/20]

bool llvm::operator< ( const DebugLocEntry::Value A,
const DebugLocEntry::Value B 
)
inline

Compare two fragments based on their offset.

Definition at line 179 of file DebugLocEntry.h.

References llvm::DebugLocEntry::Value::getExpression(), and llvm::DIExpression::getFragmentInfo().

◆ operator<() [5/20]

template<typename PT1 , typename PT2 >
bool llvm::operator< ( PointerUnion< PT1, PT2 >  lhs,
PointerUnion< PT1, PT2 >  rhs 
)

Definition at line 204 of file PointerUnion.h.

References llvm::PointerUnion< PT1, PT2 >::getOpaqueValue().

◆ operator<() [6/20]

template<typename T , typename U >
bool llvm::operator< ( const Optional< T > &  X,
const Optional< U > &  Y 
)

Definition at line 205 of file Optional.h.

References Y.

◆ operator<() [7/20]

bool llvm::operator< ( const ValueInfo A,
const ValueInfo B 
)
inline

◆ operator<() [8/20]

template<typename T >
bool llvm::operator< ( const Optional< T > &  X,
NoneType   
)

Definition at line 246 of file Optional.h.

◆ operator<() [9/20]

template<typename T >
bool llvm::operator< ( NoneType  ,
const Optional< T > &  X 
)

Definition at line 250 of file Optional.h.

◆ operator<() [10/20]

template<typename T >
bool llvm::operator< ( const Optional< T > &  X,
const T Y 
)

Definition at line 294 of file Optional.h.

References Y.

◆ operator<() [11/20]

template<typename T >
bool llvm::operator< ( const T X,
const Optional< T > &  Y 
)

Definition at line 298 of file Optional.h.

References Y.

◆ operator<() [12/20]

bool llvm::operator< ( SlotIndex  V,
const IdxMBBPair IM 
)
inline

Definition at line 314 of file SlotIndexes.h.

◆ operator<() [13/20]

bool llvm::operator< ( const IdxMBBPair IM,
SlotIndex  V 
)
inline

Definition at line 318 of file SlotIndexes.h.

◆ operator<() [14/20]

bool llvm::operator< ( int64_t  V1,
const APSInt V2 
)
inline

◆ operator<() [15/20]

static bool llvm::operator< ( const DWARFVerifier::DieRangeInfo LHS,
const DWARFVerifier::DieRangeInfo RHS 
)
inlinestatic

◆ operator<() [16/20]

bool llvm::operator< ( const DWARFDie LHS,
const DWARFDie RHS 
)
inline

Definition at line 332 of file DWARFDie.h.

References llvm::DWARFDie::getOffset().

◆ operator<() [17/20]

template<typename PT1 , typename PT2 , typename PT3 >
bool llvm::operator< ( PointerUnion3< PT1, PT2, PT3 >  lhs,
PointerUnion3< PT1, PT2, PT3 >  rhs 
)

◆ operator<() [18/20]

bool llvm::operator< ( SlotIndex  V,
const LiveRange::Segment S 
)
inline

Definition at line 838 of file LiveInterval.h.

References llvm::LiveRange::Segment::start.

◆ operator<() [19/20]

bool llvm::operator< ( const LiveRange::Segment S,
SlotIndex  V 
)
inline

Definition at line 842 of file LiveInterval.h.

References llvm::LiveRange::Segment::start.

◆ operator<() [20/20]

bool llvm::operator< ( StringRef  LHS,
StringRef  RHS 
)
inline

Definition at line 905 of file StringRef.h.

References llvm::StringRef::compare().

◆ operator<<() [1/86]

raw_ostream & llvm::operator<< ( raw_ostream OS,
const PseudoSourceValue PSV 
)

Definition at line 973 of file ScheduleDAGInstrs.cpp.

◆ operator<<() [2/86]

raw_ostream& llvm::operator<< ( raw_ostream OS,
const Printable P 
)
inline

Definition at line 45 of file Printable.h.

References llvm::Printable::Print.

◆ operator<<() [3/86]

raw_ostream& llvm::operator<< ( raw_ostream OS,
const MCLabel Label 
)
inline

Definition at line 50 of file MCLabel.h.

References llvm::MCLabel::print().

◆ operator<<() [4/86]

raw_ostream& llvm::operator<< ( raw_ostream OS,
const MachineConstantPoolValue V 
)
inline

Definition at line 57 of file MachineConstantPool.h.

References llvm::MachineConstantPoolValue::print().

◆ operator<<() [5/86]

MCStreamer & llvm::operator<< ( MCStreamer OS,
MipsABIFlagsSection ABIFlagsSection 
)

◆ operator<<() [6/86]

raw_ostream & llvm::operator<< ( raw_ostream OS,
const HexNumber Value 
)

Definition at line 10 of file ScopedPrinter.cpp.

References to_hexString(), and llvm::HexNumber::Value.

◆ operator<<() [7/86]

raw_ostream & llvm::operator<< ( raw_ostream OS,
sys::TimePoint<>  TP 
)

◆ operator<<() [8/86]

raw_ostream & llvm::operator<< ( raw_ostream OS,
const DWARFAddressRange R 
)

Definition at line 26 of file DWARFAddressRange.cpp.

References llvm::DWARFAddressRange::dump().

◆ operator<<() [9/86]

raw_ostream& llvm::operator<< ( raw_ostream OS,
const Comdat C 
)
inline

Definition at line 64 of file Comdat.h.

◆ operator<<() [10/86]

raw_ostream& llvm::operator<< ( raw_ostream OS,
const ArgDescriptor Arg 
)
inline

Definition at line 75 of file AMDGPUArgumentUsageInfo.h.

References llvm::ArgDescriptor::print().

◆ operator<<() [11/86]

raw_ostream& llvm::operator<< ( raw_ostream OS,
const MCParsedAsmOperand MO 
)
inline

Definition at line 93 of file MCParsedAsmOperand.h.

References llvm::MCParsedAsmOperand::print().

◆ operator<<() [12/86]

raw_ostream& llvm::operator<< ( raw_ostream OS,
const RegisterBank RegBank 
)
inline

Definition at line 93 of file RegisterBank.h.

References llvm::RegisterBank::print().

◆ operator<<() [13/86]

raw_ostream & llvm::operator<< ( raw_ostream OS,
AliasResult  AR 
)

<< operator for AliasResult.

Definition at line 376 of file AliasAnalysis.cpp.

References MayAlias, MustAlias, NoAlias, and PartialAlias.

◆ operator<<() [14/86]

raw_ostream& llvm::operator<< ( raw_ostream OS,
const RecTy Ty 
)
inline

Definition at line 95 of file Record.h.

References llvm::RecTy::print().

◆ operator<<() [15/86]

raw_ostream& llvm::operator<< ( raw_ostream OS,
const BT::BitValue BV 
)

◆ operator<<() [16/86]

raw_ostream& llvm::operator<< ( raw_ostream OS,
const BT::RegisterCell RC 
)

Definition at line 116 of file BitTracker.cpp.

References llvm::SmallVectorBase::size().

◆ operator<<() [17/86]

raw_ostream& llvm::operator<< ( raw_ostream OS,
const WebAssemblyException WE 
)

Definition at line 192 of file WebAssemblyExceptionInfo.cpp.

References llvm::WebAssemblyException::print().

◆ operator<<() [18/86]

raw_ostream & llvm::operator<< ( raw_ostream OS,
const VPValue V 
)

Definition at line 51 of file VPlan.cpp.

References llvm::VPValue::printAsOperand().

◆ operator<<() [19/86]

raw_ostream& llvm::operator<< ( raw_ostream OS,
const MCExpr E 
)
inline

Definition at line 130 of file MCExpr.h.

References llvm::MCExpr::print().

◆ operator<<() [20/86]

raw_ostream& llvm::operator<< ( raw_ostream O,
const ARMConstantPoolValue V 
)
inline

◆ operator<<() [21/86]

raw_ostream & llvm::operator<< ( raw_ostream Out,
const VersionTuple V 
)

◆ operator<<() [22/86]

raw_ostream& llvm::operator<< ( raw_ostream OS,
LocationSize  Size 
)
inline

Definition at line 161 of file MemoryLocation.h.

References llvm::LocationSize::print().

◆ operator<<() [23/86]

raw_ostream& llvm::operator<< ( raw_ostream OS,
const Metadata MD 
)
inline

Definition at line 162 of file Metadata.h.

References llvm::Metadata::print().

◆ operator<<() [24/86]

raw_ostream& llvm::operator<< ( raw_ostream OS,
const SCEV S 
)
inline

Definition at line 164 of file ScalarEvolution.h.

References llvm::SCEV::print().

◆ operator<<() [25/86]

raw_ostream& llvm::operator<< ( raw_ostream OS,
const LivePhysRegs LR 
)
inline

◆ operator<<() [26/86]

template<class NodeT >
raw_ostream& llvm::operator<< ( raw_ostream O,
const DomTreeNodeBase< NodeT > *  Node 
)

Definition at line 168 of file GenericDomTree.h.

◆ operator<<() [27/86]

raw_ostream& llvm::operator<< ( raw_ostream OS,
const VirtRegMap VRM 
)
inline

Definition at line 181 of file VirtRegMap.h.

References llvm::VirtRegMap::print().

◆ operator<<() [28/86]

raw_ostream& llvm::operator<< ( raw_ostream OS,
BranchProbability  Prob 
)
inline

Definition at line 183 of file BranchProbability.h.

References llvm::BranchProbability::print().

◆ operator<<() [29/86]

LLVM_DUMP_METHOD raw_ostream & llvm::operator<< ( raw_ostream OS,
const ILPValue Val 
)

Definition at line 1454 of file ScheduleDAGInstrs.cpp.

References llvm::ILPValue::print().

◆ operator<<() [30/86]

llvm::raw_ostream& llvm::operator<< ( llvm::raw_ostream OS,
const GUID &  G 
)

Definition at line 193 of file DIARawSymbol.cpp.

References llvm::codeview::detail::GuidAdapter::format().

◆ operator<<() [31/86]

raw_ostream& llvm::operator<< ( raw_ostream OS,
const ValueInfo VI 
)
inline

◆ operator<<() [32/86]

raw_ostream & llvm::operator<< ( raw_ostream OS,
const FaultMapParser::FunctionFaultInfoAccessor FFI 
)

◆ operator<<() [33/86]

raw_ostream & llvm::operator<< ( raw_ostream OS,
const FaultMapParser::FunctionInfoAccessor FI 
)

◆ operator<<() [34/86]

raw_ostream & llvm::operator<< ( raw_ostream OS,
const FaultMapParser FMP 
)

◆ operator<<() [35/86]

raw_ostream& llvm::operator<< ( raw_ostream OS,
const MCOperand MO 
)
inline

Definition at line 215 of file MCInst.h.

References llvm::MCOperand::print().

◆ operator<<() [36/86]

raw_ostream& llvm::operator<< ( raw_ostream OS,
const MCInst MI 
)
inline

Definition at line 220 of file MCInst.h.

References llvm::MCInst::print().

◆ operator<<() [37/86]

raw_ostream& llvm::operator<< ( raw_ostream OS,
const SCEVPredicate P 
)
inline

Definition at line 223 of file ScalarEvolution.h.

References llvm::SCEVPredicate::print().

◆ operator<<() [38/86]

raw_ostream& llvm::operator<< ( raw_ostream OS,
const MemoryAccess MA 
)
inline

Definition at line 233 of file MemorySSA.h.

References llvm::MemoryAccess::print().

◆ operator<<() [39/86]

raw_ostream & llvm::operator<< ( raw_ostream OS,
HexagonBlockRanges::IndexType  Idx 
)

◆ operator<<() [40/86]

raw_ostream & llvm::operator<< ( raw_ostream OS,
const HexagonBlockRanges::IndexRange IR 
)

◆ operator<<() [41/86]

raw_ostream & llvm::operator<< ( raw_ostream OS,
const HexagonBlockRanges::RangeList RL 
)

Definition at line 514 of file HexagonBlockRanges.cpp.

◆ operator<<() [42/86]

raw_ostream & llvm::operator<< ( raw_ostream OS,
const HexagonBlockRanges::InstrIndexMap M 
)

◆ operator<<() [43/86]

raw_ostream & llvm::operator<< ( raw_ostream OS,
const HexagonBlockRanges::PrintRangeMap P 
)

Definition at line 530 of file HexagonBlockRanges.cpp.

References I, and printReg().

◆ operator<<() [44/86]

raw_ostream& llvm::operator<< ( raw_ostream OS,
const LLT Ty 
)
inline

Definition at line 242 of file LowLevelTypeImpl.h.

References llvm::LLT::print().

◆ operator<<() [45/86]

raw_ostream& llvm::operator<< ( raw_ostream OS,
const MCFixup AF 
)

◆ operator<<() [46/86]

raw_ostream& llvm::operator<< ( raw_ostream os,
SlotIndex  li 
)
inline

Definition at line 307 of file SlotIndexes.h.

References llvm::SlotIndex::print().

◆ operator<<() [47/86]

raw_ostream& llvm::operator<< ( raw_ostream OS,
const AliasSet AS 
)
inline

Definition at line 320 of file AliasSetTracker.h.

References llvm::AliasSet::print().

◆ operator<<() [48/86]

raw_ostream & llvm::operator<< ( raw_ostream OS,
const ValueLatticeElement Val 
)

◆ operator<<() [49/86]

raw_ostream & llvm::operator<< ( raw_ostream OS,
const MachineMemOperand MRO 
)
inline

Definition at line 322 of file MachineMemOperand.h.

References llvm::MachineMemOperand::print().

◆ operator<<() [50/86]

raw_ostream& llvm::operator<< ( raw_ostream OS,
const APSInt I 
)
inline

Definition at line 329 of file APSInt.h.

References llvm::APSInt::isSigned(), and llvm::APInt::print().

◆ operator<<() [51/86]

raw_ostream& llvm::operator<< ( raw_ostream OS,
const object::WasmSymbol Sym 
)
inline

Definition at line 331 of file Wasm.h.

References llvm::object::WasmSymbol::print().

◆ operator<<() [52/86]

raw_ostream& llvm::operator<< ( raw_ostream OS,
const ConstantRange CR 
)
inline

◆ operator<<() [53/86]

template<class DigitsT >
ScaledNumber<DigitsT> llvm::operator<< ( const ScaledNumber< DigitsT > &  L,
int16_t  Shift 
)

Definition at line 731 of file ScaledNumber.h.

◆ operator<<() [54/86]

raw_ostream& llvm::operator<< ( raw_ostream OS,
const Init I 
)
inline

Definition at line 419 of file Record.h.

References llvm::Init::print().

◆ operator<<() [55/86]

raw_ostream& llvm::operator<< ( raw_ostream OS,
const MCSymbol Sym 
)
inline

Definition at line 422 of file MCSymbol.h.

References llvm::MCSymbol::print().

◆ operator<<() [56/86]

raw_ostream& llvm::operator<< ( raw_ostream OS,
const MachineTraceMetrics::Trace Tr 
)
inline

Definition at line 422 of file MachineTraceMetrics.h.

References llvm::MachineTraceMetrics::Trace::print().

◆ operator<<() [57/86]

raw_ostream& llvm::operator<< ( raw_ostream OS,
const MachineTraceMetrics::Ensemble En 
)
inline

◆ operator<<() [58/86]

raw_ostream& llvm::operator<< ( raw_ostream OS,
const AliasSetTracker AST 
)
inline

Definition at line 451 of file AliasSetTracker.h.

References llvm::AliasSetTracker::print().

◆ operator<<() [59/86]

template<class BlockT , class LoopT >
raw_ostream& llvm::operator<< ( raw_ostream OS,
const LoopBase< BlockT, LoopT > &  Loop 
)

Definition at line 455 of file LoopInfo.h.

References llvm::LoopBase< BlockT, LoopT >::print().

◆ operator<<() [60/86]

raw_ostream& llvm::operator<< ( raw_ostream OS,
const Type T 
)
inline

Definition at line 458 of file Type.h.

References llvm::Type::print().

◆ operator<<() [61/86]

template<class RemarkT >
RemarkT& llvm::operator<< ( RemarkT &  R,
typename std::enable_if< std::is_base_of< DiagnosticInfoOptimizationBase, RemarkT >::value, StringRef >::type  S 
)

Allow the insertion operator to return the actual remark type rather than a common base class.

This allows returning the result of the insertion directly by value, e.g. return OptimizationRemarkAnalysis(...) << "blah".

Definition at line 531 of file DiagnosticInfo.h.

References llvm::RISCVFenceField::R.

◆ operator<<() [62/86]

raw_ostream& llvm::operator<< ( raw_ostream OS,
const Twine RHS 
)
inline

Definition at line 533 of file Twine.h.

References llvm::Twine::print().

◆ operator<<() [63/86]

template<class RemarkT >
RemarkT& llvm::operator<< ( RemarkT &&  R,
typename std::enable_if< std::is_base_of< DiagnosticInfoOptimizationBase, RemarkT >::value, StringRef >::type  S 
)

Also allow r-value for the remark to allow insertion into a temporarily-constructed remark.

Definition at line 543 of file DiagnosticInfo.h.

References llvm::RISCVFenceField::R.

◆ operator<<() [64/86]

template<class RemarkT >
RemarkT& llvm::operator<< ( RemarkT &  R,
typename std::enable_if< std::is_base_of< DiagnosticInfoOptimizationBase, RemarkT >::value, DiagnosticInfoOptimizationBase::Argument >::type  A 
)

Definition at line 553 of file DiagnosticInfo.h.

References llvm::RISCVFenceField::R.

◆ operator<<() [65/86]

template<class RemarkT >
RemarkT& llvm::operator<< ( RemarkT &&  R,
typename std::enable_if< std::is_base_of< DiagnosticInfoOptimizationBase, RemarkT >::value, DiagnosticInfoOptimizationBase::Argument >::type  A 
)

Definition at line 563 of file DiagnosticInfo.h.

References llvm::RISCVFenceField::R.

◆ operator<<() [66/86]

template<class RemarkT >
RemarkT& llvm::operator<< ( RemarkT &  R,
typename std::enable_if< std::is_base_of< DiagnosticInfoOptimizationBase, RemarkT >::value, DiagnosticInfoOptimizationBase::setIsVerbose >::type  V 
)

Definition at line 573 of file DiagnosticInfo.h.

References llvm::RISCVFenceField::R.

◆ operator<<() [67/86]

template<class RemarkT >
RemarkT& llvm::operator<< ( RemarkT &&  R,
typename std::enable_if< std::is_base_of< DiagnosticInfoOptimizationBase, RemarkT >::value, DiagnosticInfoOptimizationBase::setIsVerbose >::type  V 
)

Definition at line 583 of file DiagnosticInfo.h.

References llvm::RISCVFenceField::R.

◆ operator<<() [68/86]

template<class RemarkT >
RemarkT& llvm::operator<< ( RemarkT &  R,
typename std::enable_if< std::is_base_of< DiagnosticInfoOptimizationBase, RemarkT >::value, DiagnosticInfoOptimizationBase::setExtraArgs >::type  EA 
)

Definition at line 593 of file DiagnosticInfo.h.

References llvm::RISCVFenceField::R.

◆ operator<<() [69/86]

raw_ostream& llvm::operator<< ( raw_ostream OS,
const LiveRange LR 
)
inline

Definition at line 631 of file LiveInterval.h.

References llvm::LiveRange::print().

◆ operator<<() [70/86]

raw_ostream& llvm::operator<< ( raw_ostream OS,
const Value V 
)
inline

Definition at line 666 of file Value.h.

References llvm::Value::print().

◆ operator<<() [71/86]

template<class Tr >
raw_ostream & llvm::operator<< ( raw_ostream OS,
const RegionNodeBase< Tr > &  Node 
)
inline

Print a RegionNode.

Definition at line 1016 of file RegionInfo.h.

◆ operator<<() [72/86]

template<class DigitsT >
raw_ostream& llvm::operator<< ( raw_ostream OS,
const ScaledNumber< DigitsT > &  X 
)

Definition at line 743 of file ScaledNumber.h.

References X.

◆ operator<<() [73/86]

raw_ostream & llvm::operator<< ( raw_ostream OS,
const MachineBasicBlock MBB 
)

Definition at line 69 of file MachineBasicBlock.cpp.

References llvm::MachineBasicBlock::print().

◆ operator<<() [74/86]

raw_ostream& llvm::operator<< ( raw_ostream OS,
const LiveInterval::SubRange SR 
)
inline

Definition at line 825 of file LiveInterval.h.

References llvm::LiveInterval::SubRange::print().

◆ operator<<() [75/86]

raw_ostream& llvm::operator<< ( raw_ostream OS,
const LiveInterval LI 
)
inline

Definition at line 831 of file LiveInterval.h.

References operator<<(), and llvm::LiveInterval::print().

◆ operator<<() [76/86]

raw_ostream & llvm::operator<< ( raw_ostream OS,
const LiveRange::Segment S 
)

◆ operator<<() [77/86]

raw_ostream& llvm::operator<< ( raw_ostream OS,
const LiveRangeUpdater X 
)
inline

Definition at line 900 of file LiveInterval.h.

References llvm::LiveRangeUpdater::print().

◆ operator<<() [78/86]

raw_ostream& llvm::operator<< ( raw_ostream O,
const Module M 
)
inline

An raw_ostream inserter for modules.

Definition at line 904 of file Module.h.

References DEFINE_SIMPLE_CONVERSION_FUNCTIONS, llvm::RISCVFenceField::O, and llvm::Module::print().

◆ operator<<() [79/86]

raw_ostream& llvm::operator<< ( raw_ostream OS,
const MachineOperand MO 
)
inline

◆ operator<<() [80/86]

raw_ostream& llvm::operator<< ( raw_ostream OS,
const VPlanIngredient I 
)
inline

Definition at line 1297 of file VPlan.h.

References llvm::VPlanIngredient::V.

◆ operator<<() [81/86]

raw_ostream& llvm::operator<< ( raw_ostream OS,
VPlan Plan 
)
inline

Definition at line 1302 of file VPlan.h.

References Printer.

◆ operator<<() [82/86]

raw_ostream& llvm::operator<< ( raw_ostream OS,
const RecordVal RV 
)
inline

Definition at line 1332 of file Record.h.

References llvm::RecordVal::print().

◆ operator<<() [83/86]

raw_ostream & llvm::operator<< ( raw_ostream OS,
const Record R 
)

◆ operator<<() [84/86]

raw_ostream& llvm::operator<< ( raw_ostream OS,
const MachineInstr MI 
)
inline

Definition at line 1605 of file MachineInstr.h.

References llvm::MachineInstr::print().

◆ operator<<() [85/86]

raw_ostream & llvm::operator<< ( raw_ostream OS,
const RecordKeeper RK 
)

Definition at line 2138 of file Record.cpp.

References C, for(), llvm::RecordKeeper::getClasses(), and llvm::RecordKeeper::getDefs().

◆ operator<<() [86/86]

raw_ostream& llvm::operator<< ( raw_ostream OS,
const APInt I 
)
inline

◆ operator<=() [1/9]

bool llvm::operator<= ( AtomicOrderingCABI  ,
AtomicOrderingCABI   
)
delete

◆ operator<=() [2/9]

bool llvm::operator<= ( AtomicOrdering  ,
AtomicOrdering   
)
delete

◆ operator<=() [3/9]

template<typename T , typename U >
bool llvm::operator<= ( const Optional< T > &  X,
const Optional< U > &  Y 
)

Definition at line 212 of file Optional.h.

References X, and Y.

◆ operator<=() [4/9]

template<typename T >
bool llvm::operator<= ( const Optional< T > &  X,
NoneType   
)

Definition at line 254 of file Optional.h.

References None, and X.

◆ operator<=() [5/9]

template<typename T >
bool llvm::operator<= ( NoneType  ,
const Optional< T > &  X 
)

Definition at line 258 of file Optional.h.

References None.

◆ operator<=() [6/9]

template<typename T >
bool llvm::operator<= ( const Optional< T > &  X,
const T Y 
)

Definition at line 302 of file Optional.h.

References X, and Y.

◆ operator<=() [7/9]

template<typename T >
bool llvm::operator<= ( const T X,
const Optional< T > &  Y 
)

Definition at line 306 of file Optional.h.

References X, and Y.

◆ operator<=() [8/9]

bool llvm::operator<= ( int64_t  V1,
const APSInt V2 
)
inline

◆ operator<=() [9/9]

bool llvm::operator<= ( StringRef  LHS,
StringRef  RHS 
)
inline

Definition at line 909 of file StringRef.h.

References llvm::StringRef::compare().

◆ operator==() [1/25]

bool llvm::operator== ( const MD5::MD5Result LHS,
const MD5::MD5Result RHS 
)
inline

Definition at line 104 of file MD5.h.

References llvm::MD5::MD5Result::Bytes.

◆ operator==() [2/25]

bool llvm::operator== ( const DWARFExpression::iterator LHS,
const DWARFExpression::iterator RHS 
)
inline

Definition at line 143 of file DWARFExpression.h.

◆ operator==() [3/25]

bool llvm::operator== ( const DebugLocEntry::Value A,
const DebugLocEntry::Value B 
)
inline

◆ operator==() [4/25]

template<typename T , typename U >
bool llvm::operator== ( const Optional< T > &  X,
const Optional< U > &  Y 
)

Definition at line 193 of file Optional.h.

References llvm::Optional< T >::hasValue(), and Y.

◆ operator==() [5/25]

template<typename PT1 , typename PT2 >
bool llvm::operator== ( PointerUnion< PT1, PT2 >  lhs,
PointerUnion< PT1, PT2 >  rhs 
)

Definition at line 194 of file PointerUnion.h.

References llvm::PointerUnion< PT1, PT2 >::getOpaqueValue().

◆ operator==() [6/25]

template<class T , class U >
bool llvm::operator== ( const IntrusiveRefCntPtr< T > &  A,
const IntrusiveRefCntPtr< U > &  B 
)
inline

Definition at line 197 of file IntrusiveRefCntPtr.h.

References llvm::IntrusiveRefCntPtr< T >::get().

◆ operator==() [7/25]

template<class T , class U >
bool llvm::operator== ( const IntrusiveRefCntPtr< T > &  A,
U *  B 
)
inline

Definition at line 209 of file IntrusiveRefCntPtr.h.

References B, and llvm::IntrusiveRefCntPtr< T >::get().

◆ operator==() [8/25]

bool llvm::operator== ( const ValueInfo A,
const ValueInfo B 
)
inline

Definition at line 210 of file ModuleSummaryIndex.h.

References assert(), and llvm::ValueInfo::getRef().

◆ operator==() [9/25]

template<class T , class U >
bool llvm::operator== ( T A,
const IntrusiveRefCntPtr< U > &  B 
)
inline

Definition at line 219 of file IntrusiveRefCntPtr.h.

References llvm::IntrusiveRefCntPtr< T >::get().

◆ operator==() [10/25]

template<typename T >
bool llvm::operator== ( const Optional< T > &  X,
NoneType   
)

Definition at line 227 of file Optional.h.

References X.

◆ operator==() [11/25]

template<class T >
bool llvm::operator== ( std::nullptr_t  A,
const IntrusiveRefCntPtr< T > &  B 
)

Definition at line 229 of file IntrusiveRefCntPtr.h.

References B.

◆ operator==() [12/25]

template<typename T >
bool llvm::operator== ( NoneType  ,
const Optional< T > &  X 
)

Definition at line 232 of file Optional.h.

References None.

◆ operator==() [13/25]

template<class T >
bool llvm::operator== ( const IntrusiveRefCntPtr< T > &  A,
std::nullptr_t  B 
)

Definition at line 234 of file IntrusiveRefCntPtr.h.

References A.

◆ operator==() [14/25]

template<class T , class E >
std::enable_if<std::is_error_code_enum<E>::value || std::is_error_condition_enum<E>::value, bool>::type llvm::operator== ( const ErrorOr< T > &  Err,
E  Code 
)

Definition at line 273 of file ErrorOr.h.

◆ operator==() [15/25]

template<typename T >
bool llvm::operator== ( const Optional< T > &  X,
const T Y 
)

Definition at line 278 of file Optional.h.

References Y.

◆ operator==() [16/25]

template<typename T >
bool llvm::operator== ( const T X,
const Optional< T > &  Y 
)

Definition at line 282 of file Optional.h.

References Y.

◆ operator==() [17/25]

bool llvm::operator== ( const DWARFDie::attribute_iterator LHS,
const DWARFDie::attribute_iterator RHS 
)
inline

Definition at line 313 of file DWARFDie.h.

◆ operator==() [18/25]

bool llvm::operator== ( int64_t  V1,
const APSInt V2 
)
inline

Definition at line 322 of file APSInt.h.

◆ operator==() [19/25]

bool llvm::operator== ( const DWARFDie LHS,
const DWARFDie RHS 
)
inline

◆ operator==() [20/25]

bool llvm::operator== ( const DWARFDie::iterator LHS,
const DWARFDie::iterator RHS 
)
inline

Definition at line 363 of file DWARFDie.h.

◆ operator==() [21/25]

bool llvm::operator== ( const std::reverse_iterator< DWARFDie::iterator > &  LHS,
const std::reverse_iterator< DWARFDie::iterator > &  RHS 
)
inline

Definition at line 449 of file DWARFDie.h.

◆ operator==() [22/25]

template<typename T >
bool llvm::operator== ( ArrayRef< T LHS,
ArrayRef< T RHS 
)
inline

Definition at line 518 of file ArrayRef.h.

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

◆ operator==() [23/25]

template<typename DerivedT , typename KeyT , typename ValueT , typename KeyInfoT , typename BucketT >
bool llvm::operator== ( const DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT > &  LHS,
const DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT > &  RHS 
)

Equality comparison for DenseMap.

Iterates over elements of LHS confirming that each (key, value) pair in LHS is also in RHS, and that no additional pairs are in RHS. Equivalent to N calls to RHS.find and N value comparisons. Amortized complexity is linear, worst case is O(N^2) (if every hash collides).

Definition at line 680 of file DenseMap.h.

References llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::end(), llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::find(), I, and llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::size().

◆ operator==() [24/25]

LLVM_ATTRIBUTE_ALWAYS_INLINE bool llvm::operator== ( StringRef  LHS,
StringRef  RHS 
)
inline

Definition at line 898 of file StringRef.h.

References llvm::StringRef::equals(), and LLVM_ATTRIBUTE_ALWAYS_INLINE.

◆ operator==() [25/25]

bool llvm::operator== ( uint64_t  V1,
const APInt V2 
)
inline

Definition at line 1967 of file APInt.h.

Referenced by adjustDown(), llvm::BasicAAResult::BasicAAResult(), llvm::RegBankSelect::EdgeInsertPoint::canMaterialize(), llvm::FoldingSetNodeID::clear(), llvm::APFloat::convertToFloat(), createRdxShuffleMask(), llvm::MemorySSAAnnotatedWriter::emitInstructionAnnot(), llvm::rdf::DataFlowGraph::DefStack::empty(), llvm::FoldingSetNodeIDRef::FoldingSetNodeIDRef(), isDbgValueDescribedByReg(), isImplicitlyDef(), llvm::HexagonBlockRanges::IndexType::isInstr(), isKnownBaseResult(), IsSingleInstrConstant(), matchRotateSub(), llvm::detail::IEEEFloat::needsCleanup(), numVectorEltsOrZero(), llvm::rdf::RegisterRef::operator!=(), llvm::AnonStructTypeKeyInfo::KeyTy::operator!=(), llvm::SDValue::operator!=(), llvm::FunctionTypeKeyInfo::KeyTy::operator!=(), llvm::ConstantRange::operator!=(), llvm::BitTracker::BitValue::operator!=(), llvm::SSAUpdaterTraits< SSAUpdater >::PHI_iterator::operator!=(), llvm::AliasSet::iterator::operator!=(), llvm::RegPressureDelta::operator!=(), llvm::SSAUpdaterTraits< MachineSSAUpdater >::PHI_iterator::operator!=(), llvm::SparseMultiSet< ValueT, KeyFunctorT, SparseT >::iterator_base< SMSPtrTy >::operator!=(), llvm::BitTracker::RegisterCell::operator!=(), llvm::LazyCallGraph::Node::operator!=(), llvm::rdf::NodeAddr< llvm::rdf::FuncNode *>::operator!=(), llvm::NodeSet::operator!=(), llvm::IntervalMapImpl::NodeRef::operator!=(), llvm::TargetRegistry::iterator::operator!=(), llvm::SDNode::use_iterator::operator!=(), llvm::GenericSchedulerBase::SchedResourceDelta::operator!=(), llvm::MachineRegisterInfo::defusechain_iterator< ReturnUses, ReturnDefs, SkipDebug, ByOperand, ByInstr, ByBundle >::operator!=(), llvm::MachineRegisterInfo::defusechain_instr_iterator< ReturnUses, ReturnDefs, SkipDebug, ByOperand, ByInstr, ByBundle >::operator!=(), llvm::IntervalMap< KeyT, ValT, N, Traits >::const_iterator::operator!=(), llvm::sys::path::const_iterator::operator*(), llvm::sys::path::reverse_iterator::operator*(), llvm::DWARFExpression::iterator::operator*(), llvm::HexagonBlockRanges::IndexType::operator<=(), llvm::early_inc_iterator_impl< WrappedIteratorT >::operator==(), llvm::BitTracker::RegisterCell::operator[](), llvm::AArch64TargetLowering::ReconstructShuffle(), and llvm::RegBankSelect::RepairingPlacement::switchTo().

◆ operator>() [1/9]

bool llvm::operator> ( AtomicOrderingCABI  ,
AtomicOrderingCABI   
)
delete

◆ operator>() [2/9]

bool llvm::operator> ( AtomicOrdering  ,
AtomicOrdering   
)
delete

◆ operator>() [3/9]

template<typename T , typename U >
bool llvm::operator> ( const Optional< T > &  X,
const Optional< U > &  Y 
)

Definition at line 217 of file Optional.h.

References X.

◆ operator>() [4/9]

template<typename T >
bool llvm::operator> ( const Optional< T > &  X,
NoneType   
)

Definition at line 262 of file Optional.h.

References None, and X.

◆ operator>() [5/9]

template<typename T >
bool llvm::operator> ( NoneType  ,
const Optional< T > &  X 
)

Definition at line 266 of file Optional.h.

References None.

◆ operator>() [6/9]

template<typename T >
bool llvm::operator> ( const Optional< T > &  X,
const T Y 
)

Definition at line 310 of file Optional.h.

References X.

◆ operator>() [7/9]

template<typename T >
bool llvm::operator> ( const T X,
const Optional< T > &  Y 
)

Definition at line 314 of file Optional.h.

References X.

◆ operator>() [8/9]

bool llvm::operator> ( int64_t  V1,
const APSInt V2 
)
inline

◆ operator>() [9/9]

bool llvm::operator> ( StringRef  LHS,
StringRef  RHS 
)
inline

Definition at line 913 of file StringRef.h.

References llvm::StringRef::compare().

◆ operator>=() [1/9]

bool llvm::operator>= ( AtomicOrderingCABI  ,
AtomicOrderingCABI   
)
delete

◆ operator>=() [2/9]

bool llvm::operator>= ( AtomicOrdering  ,
AtomicOrdering   
)
delete

◆ operator>=() [3/9]

template<typename T , typename U >
bool llvm::operator>= ( const Optional< T > &  X,
const Optional< U > &  Y 
)

Definition at line 222 of file Optional.h.

References Y.

◆ operator>=() [4/9]

template<typename T >
bool llvm::operator>= ( const Optional< T > &  X,
NoneType   
)

Definition at line 270 of file Optional.h.

References None, and X.

◆ operator>=() [5/9]

template<typename T >
bool llvm::operator>= ( NoneType  ,
const Optional< T > &  X 
)

Definition at line 274 of file Optional.h.

References None.

◆ operator>=() [6/9]

template<typename T >
bool llvm::operator>= ( const Optional< T > &  X,
const T Y 
)

Definition at line 318 of file Optional.h.

References Y.

◆ operator>=() [7/9]

template<typename T >
bool llvm::operator>= ( const T X,
const Optional< T > &  Y 
)

Definition at line 322 of file Optional.h.

References Y.

◆ operator>=() [8/9]

bool llvm::operator>= ( int64_t  V1,
const APSInt V2 
)
inline

◆ operator>=() [9/9]

bool llvm::operator>= ( StringRef  LHS,
StringRef  RHS 
)
inline

Definition at line 917 of file StringRef.h.

References llvm::StringRef::compare().

◆ operator>>()

template<class DigitsT >
ScaledNumber<DigitsT> llvm::operator>> ( const ScaledNumber< DigitsT > &  L,
int16_t  Shift 
)

Definition at line 737 of file ScaledNumber.h.

◆ operator^() [1/5]

SmallBitVector llvm::operator^ ( const SmallBitVector LHS,
const SmallBitVector RHS 
)
inline

Definition at line 697 of file SmallBitVector.h.

◆ operator^() [2/5]

APInt llvm::operator^ ( APInt  a,
const APInt b 
)
inline

Definition at line 2019 of file APInt.h.

◆ operator^() [3/5]

APInt llvm::operator^ ( const APInt a,
APInt &&  b 
)
inline

Definition at line 2024 of file APInt.h.

◆ operator^() [4/5]

APInt llvm::operator^ ( APInt  a,
uint64_t  RHS 
)
inline

Definition at line 2029 of file APInt.h.

◆ operator^() [5/5]

APInt llvm::operator^ ( uint64_t  LHS,
APInt  b 
)
inline

Definition at line 2034 of file APInt.h.

◆ operator|() [1/8]

RemapFlags llvm::operator| ( RemapFlags  LHS,
RemapFlags  RHS 
)
inline

Definition at line 102 of file ValueMapper.h.

◆ operator|() [2/8]

JITSymbolFlags llvm::operator| ( const JITSymbolFlags LHS,
const JITSymbolFlags::FlagNames RHS 
)
inline

Definition at line 182 of file JITSymbol.h.

◆ operator|() [3/8]

SmallBitVector llvm::operator| ( const SmallBitVector LHS,
const SmallBitVector RHS 
)
inline

Definition at line 690 of file SmallBitVector.h.

◆ operator|() [4/8]

template<unsigned ElementSize>
SparseBitVector<ElementSize> llvm::operator| ( const SparseBitVector< ElementSize > &  LHS,
const SparseBitVector< ElementSize > &  RHS 
)
inline

Definition at line 850 of file SparseBitVector.h.

◆ operator|() [5/8]

APInt llvm::operator| ( APInt  a,
const APInt b 
)
inline

Definition at line 1999 of file APInt.h.

◆ operator|() [6/8]

APInt llvm::operator| ( const APInt a,
APInt &&  b 
)
inline

Definition at line 2004 of file APInt.h.

◆ operator|() [7/8]

APInt llvm::operator| ( APInt  a,
uint64_t  RHS 
)
inline

Definition at line 2009 of file APInt.h.

◆ operator|() [8/8]

APInt llvm::operator| ( uint64_t  LHS,
APInt  b 
)
inline

Definition at line 2014 of file APInt.h.

◆ operator|=() [1/2]

template<unsigned ElementSize>
bool llvm::operator|= ( SparseBitVector< ElementSize > &  LHS,
const SparseBitVector< ElementSize > *  RHS 
)
inline

Definition at line 823 of file SparseBitVector.h.

Referenced by areCFlagsAliveInSuccessors().

◆ operator|=() [2/2]

template<unsigned ElementSize>
bool llvm::operator|= ( SparseBitVector< ElementSize > *  LHS,
const SparseBitVector< ElementSize > &  RHS 
)
inline

Definition at line 829 of file SparseBitVector.h.

◆ operator~()

APInt llvm::operator~ ( APInt  v)
inline

Unary bitwise complement operator.

Returns
an APInt that is the bitwise complement of v.

Definition at line 1974 of file APInt.h.

References llvm::APInt::flipAllBits().

◆ optimized_def_chain()

template<class T >
iterator_range<def_chain_iterator<T, true> > llvm::optimized_def_chain ( T  MA)
inline

Definition at line 1301 of file MemorySSA.h.

References make_range().

◆ optimizeGlobalCtorsList()

bool llvm::optimizeGlobalCtorsList ( Module M,
function_ref< bool(Function *)>  ShouldRemove 
)

Call "ShouldRemove" for every entry in M's global_ctor list and remove the entries for which it returns true.

Return true if anything changed.

Definition at line 117 of file CtorUtils.cpp.

References dbgs(), llvm::Function::empty(), F(), findGlobalCtors(), LLVM_DEBUG, parseGlobalCtors(), removeGlobalCtors(), and llvm::BitVector::set().

Referenced by optimizeGlobalsInModule(), and llvm::GlobalDCEPass::run().

◆ outs()

raw_ostream & llvm::outs ( )

◆ parseAmdKernelCodeField()

bool llvm::parseAmdKernelCodeField ( StringRef  ID,
MCAsmParser Parser,
amd_kernel_code_t C,
raw_ostream Err 
)

Definition at line 169 of file AMDKernelCodeTUtils.cpp.

◆ parseAnalysisUtilityPasses()

template<typename AnalysisT , typename IRUnitT , typename AnalysisManagerT , typename... ExtraArgTs>
bool llvm::parseAnalysisUtilityPasses ( StringRef  AnalysisName,
StringRef  PipelineName,
PassManager< IRUnitT, AnalysisManagerT, ExtraArgTs... > &  PM 
)

This utility template takes care of adding require<> and invalidate<> passes for an analysis to a given PassManager.

It is intended to be used during parsing of a pass pipeline when parsing a single PipelineName. When registering a new function analysis FancyAnalysis with the pass pipeline name "fancy-analysis", a matching ParsePipelineCallback could look like this:

static bool parseFunctionPipeline(StringRef Name, FunctionPassManager &FPM, ArrayRef<PipelineElement> P) { if (parseAnalysisUtilityPasses<FancyAnalysis>("fancy-analysis", Name, FPM)) return true; return false; }

Definition at line 686 of file PassBuilder.h.

References llvm::PassManager< IRUnitT, AnalysisManagerT, ExtraArgTs >::addPass(), llvm::StringRef::endswith(), llvm::StringRef::size(), llvm::StringRef::startswith(), and llvm::StringRef::substr().

◆ parseAndVerify()

std::unique_ptr< Module > llvm::parseAndVerify ( const uint8_t *  Data,
size_t  Size,
LLVMContext Context 
)

Try to parse module and verify it.

May output verification errors to the errs().

Returns
New module or nullptr in case of error.

Definition at line 202 of file FuzzerCLI.cpp.

References errs(), parseModule(), and verifyModule().

◆ parseAssembly()

std::unique_ptr< Module > llvm::parseAssembly ( MemoryBufferRef  F,
SMDiagnostic Err,
LLVMContext Context,
SlotMapping Slots = nullptr,
bool  UpgradeDebugInfo = true,
StringRef  DataLayoutString = "" 
)

parseAssemblyFile and parseAssemblyString are wrappers around this function.

Parse LLVM Assembly from a MemoryBuffer.

Parameters
FThe MemoryBuffer containing assembly
ErrError result info.
SlotsThe optional slot mapping that will be initialized during parsing.
UpgradeDebugInfoRun UpgradeDebugInfo, which runs the Verifier. This option should only be set to false by llvm-as for use inside the LLVM testuite!
DataLayoutStringOverride datalayout in the llvm assembly.

Definition at line 42 of file Parser.cpp.

Referenced by llvm::MIRParserImpl::parseIRModule().

◆ parseAssemblyFile()

std::unique_ptr< Module > llvm::parseAssemblyFile ( StringRef  Filename,
SMDiagnostic Err,
LLVMContext Context,
SlotMapping Slots = nullptr,
bool  UpgradeDebugInfo = true,
StringRef  DataLayoutString = "" 
)

This function is a main interface to the LLVM Assembly Parser.

It parses an ASCII file that (presumably) contains LLVM Assembly code. It returns a Module (intermediate representation) with the corresponding features. Note that this does not verify that the generated Module is valid, so you should run the verifier after parsing the file to check that it is okay. Parse LLVM Assembly from a file

Parameters
FilenameThe name of the file to parse
ErrError result info.
ContextContext in which to allocate globals info.
SlotsThe optional slot mapping that will be initialized during parsing.
UpgradeDebugInfoRun UpgradeDebugInfo, which runs the Verifier. This option should only be set to false by llvm-as for use inside the LLVM testuite!
DataLayoutStringOverride datalayout in the llvm assembly.

Definition at line 56 of file Parser.cpp.

◆ parseAssemblyFileWithIndex()

ParsedModuleAndIndex llvm::parseAssemblyFileWithIndex ( StringRef  Filename,
SMDiagnostic Err,
LLVMContext Context,
SlotMapping Slots = nullptr,
bool  UpgradeDebugInfo = true,
StringRef  DataLayoutString = "" 
)

This function is a main interface to the LLVM Assembly Parser.

It parses an ASCII file that (presumably) contains LLVM Assembly code, including a module summary. It returns a Module (intermediate representation) and a ModuleSummaryIndex with the corresponding features. Note that this does not verify that the generated Module or Index are valid, so you should run the verifier after parsing the file to check that they are okay. Parse LLVM Assembly from a file

Parameters
FilenameThe name of the file to parse
ErrError result info.
ContextContext in which to allocate globals info.
SlotsThe optional slot mapping that will be initialized during parsing.
UpgradeDebugInfoRun UpgradeDebugInfo, which runs the Verifier. This option should only be set to false by llvm-as for use inside the LLVM testuite!
DataLayoutStringOverride datalayout in the llvm assembly.

Definition at line 86 of file Parser.cpp.

◆ parseAssemblyInto()

bool llvm::parseAssemblyInto ( MemoryBufferRef  F,
Module M,
ModuleSummaryIndex Index,
SMDiagnostic Err,
SlotMapping Slots = nullptr,
bool  UpgradeDebugInfo = true,
StringRef  DataLayoutString = "" 
)

This function is the low-level interface to the LLVM Assembly Parser.

This is kept as an independent function instead of being inlined into parseAssembly for the convenience of interactive users that want to add recently parsed bits to an existing module.

Parameters
FThe MemoryBuffer containing assembly
MThe module to add data to.
IndexThe index to add data to.
ErrError result info.
SlotsThe optional slot mapping that will be initialized during parsing.
Returns
true on error.
Parameters
UpgradeDebugInfoRun UpgradeDebugInfo, which runs the Verifier. This option should only be set to false by llvm-as for use inside the LLVM testuite!
DataLayoutStringOverride datalayout in the llvm assembly.

Definition at line 26 of file Parser.cpp.

◆ parseAssemblyString()

std::unique_ptr< Module > llvm::parseAssemblyString ( StringRef  AsmString,
SMDiagnostic Err,
LLVMContext Context,
SlotMapping Slots = nullptr,
bool  UpgradeDebugInfo = true,
StringRef  DataLayoutString = "" 
)

The function is a secondary interface to the LLVM Assembly Parser.

It parses an ASCII string that (presumably) contains LLVM Assembly code. It returns a Module (intermediate representation) with the corresponding features. Note that this does not verify that the generated Module is valid, so you should run the verifier after parsing the file to check that it is okay. Parse LLVM Assembly from a string

Parameters
AsmStringThe string containing assembly
ErrError result info.
ContextContext in which to allocate globals info.
SlotsThe optional slot mapping that will be initialized during parsing.
UpgradeDebugInfoRun UpgradeDebugInfo, which runs the Verifier. This option should only be set to false by llvm-as for use inside the LLVM testuite!
DataLayoutStringOverride datalayout in the llvm assembly.

Definition at line 103 of file Parser.cpp.

◆ parseAssemblyWithIndex()

ParsedModuleAndIndex llvm::parseAssemblyWithIndex ( MemoryBufferRef  F,
SMDiagnostic Err,
LLVMContext Context,
SlotMapping Slots = nullptr,
bool  UpgradeDebugInfo = true,
StringRef  DataLayoutString = "" 
)

Parse LLVM Assembly including the summary index from a MemoryBuffer.

Parameters
FThe MemoryBuffer containing assembly with summary
ErrError result info.
SlotsThe optional slot mapping that will be initialized during parsing.
UpgradeDebugInfoRun UpgradeDebugInfo, which runs the Verifier. This option should only be set to false by llvm-as for use inside the LLVM testuite!
DataLayoutStringOverride datalayout in the llvm assembly.

parseAssemblyFileWithIndex is a wrapper around this function.

Definition at line 71 of file Parser.cpp.

◆ parseBitcodeFile()

Expected< std::unique_ptr< Module > > llvm::parseBitcodeFile ( MemoryBufferRef  Buffer,
LLVMContext Context 
)

Read the specified bitcode file, returning the module.

Definition at line 6059 of file BitcodeReader.cpp.

References getSingleModule(), and llvm::Expected< T >::takeError().

Referenced by llvm::orc::cloneToNewContext(), LLVMParseBitcodeInContext(), LLVMParseBitcodeInContext2(), parseBitcodeFileImpl(), and splitCodeGen().

◆ parseCachePruningPolicy()

Expected< CachePruningPolicy > llvm::parseCachePruningPolicy ( StringRef  PolicyStr)

Parse the given string as a cache pruning policy.

Defaults are taken from a default constructed CachePruningPolicy object. For example: "prune_interval=30s:prune_after=24h:cache_size=50%" which means a pruning interval of 30 seconds, expiration time of 24 hours and maximum cache size of 50% of available disk space.

Definition at line 85 of file CachePruning.cpp.

References llvm::StringRef::back(), llvm::StringRef::drop_back(), llvm::CachePruningPolicy::Expiration, llvm::StringRef::getAsInteger(), inconvertibleErrorCode(), llvm::CachePruningPolicy::Interval, llvm::CachePruningPolicy::MaxSizeBytes, llvm::CachePruningPolicy::MaxSizeFiles, llvm::CachePruningPolicy::MaxSizePercentageOfAvailableSpace, llvm::MipsISD::Mult, P, parseDuration(), Size, and llvm::StringRef::split().

◆ parseConstantValue()

Constant * llvm::parseConstantValue ( StringRef  Asm,
SMDiagnostic Err,
const Module M,
const SlotMapping Slots = nullptr 
)

Parse a type and a constant value in the given string.

The constant value can be any LLVM constant, including a constant expression.

Parameters
SlotsThe optional slot mapping that will restore the parsing state of the module.
Returns
null on error.

Definition at line 148 of file Parser.cpp.

Referenced by llvm::LLParser::getContext(), and llvm::MIRParserImpl::initializeConstantPool().

◆ parseExternFuncCallArgs()

static void llvm::parseExternFuncCallArgs ( const SmallVectorImpl< ISD::OutputArg > &  In,
SmallVectorImpl< unsigned > &  Out 
)
static

For external symbols there is no function prototype information so we have to rely directly on argument sizes.

Definition at line 901 of file AVRISelLowering.cpp.

References llvm::SmallVectorTemplateBase< T, bool >::push_back(), Size, and llvm::SmallVectorBase::size().

Referenced by analyzeStandardArguments().

◆ parseFunctionArgs()

static void llvm::parseFunctionArgs ( const SmallVectorImpl< ISD::InputArg > &  Ins,
SmallVectorImpl< unsigned > &  Out 
)
static

For each argument in a function store the number of pieces it is composed of.

Definition at line 889 of file AVRISelLowering.cpp.

References Arg, and llvm::SmallVectorTemplateBase< T, bool >::push_back().

Referenced by analyzeStandardArguments().

◆ parseFuzzerCLOpts()

void llvm::parseFuzzerCLOpts ( int  ArgC,
char ArgV[] 
)

Parse cl::opts from a fuzz target commandline.

This handles all arguments after -ignore_remaining_args=1 as cl::opts.

Definition at line 25 of file FuzzerCLI.cpp.

References I, and llvm::cl::ParseCommandLineOptions().

◆ parseIR()

std::unique_ptr< Module > llvm::parseIR ( MemoryBufferRef  Buffer,
SMDiagnostic Err,
LLVMContext Context,
bool  UpgradeDebugInfo = true,
StringRef  DataLayoutString = "" 
)

If the given MemoryBuffer holds a bitcode image, return a Module for it.

Otherwise, attempt to parse it as LLVM Assembly and return a Module for it.

Parameters
UpgradeDebugInfoRun UpgradeDebugInfo, which runs the Verifier. This option should only be set to false by llvm-as for use inside the LLVM testuite!
DataLayoutStringOverride datalayout in the llvm assembly.

Definition at line 69 of file IRReader.cpp.

Referenced by LLVMParseIRInContext().

◆ parseIRFile()

std::unique_ptr< Module > llvm::parseIRFile ( StringRef  Filename,
SMDiagnostic Err,
LLVMContext Context,
bool  UpgradeDebugInfo = true,
StringRef  DataLayoutString = "" 
)

If the given file holds a bitcode image, return a Module for it.

Otherwise, attempt to parse it as LLVM Assembly and return a Module for it.

Parameters
UpgradeDebugInfoRun UpgradeDebugInfo, which runs the Verifier. This option should only be set to false by llvm-as for use inside the LLVM testuite!
DataLayoutStringOverride datalayout in the llvm assembly.

Definition at line 96 of file IRReader.cpp.

◆ parseMachineBasicBlockDefinitions()

bool llvm::parseMachineBasicBlockDefinitions ( PerFunctionMIParsingState PFS,
StringRef  Src,
SMDiagnostic Error 
)

Parse the machine basic block definitions, and skip the machine instructions.

This function runs the first parsing pass on the machine function's body. It parses only the machine basic block definitions and creates the machine basic blocks in the given machine function.

The machine instructions aren't parsed during the first pass because all the machine basic blocks aren't defined yet - this makes it impossible to resolve the machine basic block references.

Return true if an error occurred.

Definition at line 2961 of file MIParser.cpp.

References llvm::PerFunctionMIParsingState::MBBSlots.

Referenced by llvm::MIRParserImpl::initializeMachineFunction().

◆ parseMachineInstructions()

bool llvm::parseMachineInstructions ( PerFunctionMIParsingState PFS,
StringRef  Src,
SMDiagnostic Error 
)

Parse the machine instructions.

This function runs the second parsing pass on the machine function's body. It skips the machine basic block definitions and parses only the machine instructions and basic block attributes like liveins and successors.

The second parsing pass assumes that the first parsing pass already ran on the given source string.

Return true if an error occurred.

Definition at line 2967 of file MIParser.cpp.

Referenced by llvm::MIRParserImpl::initializeMachineFunction().

◆ parseMBBReference()

bool llvm::parseMBBReference ( PerFunctionMIParsingState PFS,
MachineBasicBlock *&  MBB,
StringRef  Src,
SMDiagnostic Error 
)

Definition at line 2972 of file MIParser.cpp.

Referenced by llvm::MIRParserImpl::initializeJumpTableInfo(), and toString().

◆ parseMDNode()

bool llvm::parseMDNode ( PerFunctionMIParsingState PFS,
MDNode *&  Node,
StringRef  Src,
SMDiagnostic Error 
)

Definition at line 3002 of file MIParser.cpp.

◆ parseModule()

std::unique_ptr< Module > llvm::parseModule ( const uint8_t *  Data,
size_t  Size,
LLVMContext Context 
)

Fuzzer friendly interface for the llvm bitcode parser.

Parameters
DataBitcode we are going to parse
SizeSize of the 'Data' in bytes
Returns
New module or nullptr in case of error

Definition at line 170 of file FuzzerCLI.cpp.

References Context, and llvm::MemoryBuffer::getMemBuffer().

Referenced by llvm::BitcodeModule::getModuleIdentifier(), parseAndVerify(), and readTriple().

◆ parseNamedRegisterReference()

bool llvm::parseNamedRegisterReference ( PerFunctionMIParsingState PFS,
unsigned Reg,
StringRef  Src,
SMDiagnostic Error 
)

◆ parseRegisterReference()

bool llvm::parseRegisterReference ( PerFunctionMIParsingState PFS,
unsigned Reg,
StringRef  Src,
SMDiagnostic Error 
)

Definition at line 2978 of file MIParser.cpp.

Referenced by llvm::MIRParserImpl::parseRegisterInfo().

◆ parseStackObjectReference()

bool llvm::parseStackObjectReference ( PerFunctionMIParsingState PFS,
int &  FI,
StringRef  Src,
SMDiagnostic Error 
)

Definition at line 2996 of file MIParser.cpp.

Referenced by llvm::MIRParserImpl::initializeFrameInfo().

◆ parseStatepointDirectivesFromAttrs()

StatepointDirectives llvm::parseStatepointDirectivesFromAttrs ( AttributeList  AS)

◆ parseSummaryIndexAssembly()

std::unique_ptr< ModuleSummaryIndex > llvm::parseSummaryIndexAssembly ( MemoryBufferRef  F,
SMDiagnostic Err 
)

Parse LLVM Assembly for summary index from a MemoryBuffer.

Parameters
FThe MemoryBuffer containing assembly with summary
ErrError result info.

parseSummaryIndexAssemblyFile is a wrapper around this function.

Definition at line 125 of file Parser.cpp.

◆ parseSummaryIndexAssemblyFile()

std::unique_ptr< ModuleSummaryIndex > llvm::parseSummaryIndexAssemblyFile ( StringRef  Filename,
SMDiagnostic Err 
)

This function is a main interface to the LLVM Assembly Parser.

It parses an ASCII file that (presumably) contains LLVM Assembly code for a module summary. It returns a a ModuleSummaryIndex with the corresponding features. Note that this does not verify that the generated Index is valid, so you should run the verifier after parsing the file to check that it is okay. Parse LLVM Assembly Index from a file

Parameters
FilenameThe name of the file to parse
ErrError result info.

Definition at line 136 of file Parser.cpp.

◆ parseType()

Type * llvm::parseType ( StringRef  Asm,
SMDiagnostic Err,
const Module M,
const SlotMapping Slots = nullptr 
)

Parse a type in the given string.

Parameters
SlotsThe optional slot mapping that will restore the parsing state of the module.
Returns
null on error.

Definition at line 160 of file Parser.cpp.

Referenced by llvm::itanium_demangle::AbstractManglingParser< ManglingParser< Alloc >, Alloc >::numLeft().

◆ parseTypeAtBeginning()

Type * llvm::parseTypeAtBeginning ( StringRef  Asm,
unsigned Read,
SMDiagnostic Err,
const Module M,
const SlotMapping Slots = nullptr 
)

Parse a string Asm that starts with a type.

Read[out] gives the number of characters that have been read to parse the type in Asm.

Parameters
SlotsThe optional slot mapping that will restore the parsing state of the module.
Returns
null on error.

Definition at line 176 of file Parser.cpp.

◆ parseVirtualRegisterReference()

bool llvm::parseVirtualRegisterReference ( PerFunctionMIParsingState PFS,
VRegInfo *&  Info,
StringRef  Src,
SMDiagnostic Error 
)

Definition at line 2990 of file MIParser.cpp.

Referenced by llvm::MIRParserImpl::parseRegisterInfo().

◆ partAsHex()

static unsigned int llvm::partAsHex ( char dst,
APFloatBase::integerPart  part,
unsigned int  count,
const char hexDigitChars 
)
static

◆ partCountForBits()

static unsigned int llvm::partCountForBits ( unsigned int  bits)
inlinestatic

◆ partition()

template<typename R , typename UnaryPredicate >
auto llvm::partition ( R &&  Range,
UnaryPredicate  P 
) -> decltype(adl_begin(Range))

Provide wrappers to std::partition which take ranges instead of having to pass begin/end explicitly.

Definition at line 1275 of file STLExtras.h.

References adl_begin(), adl_end(), and P.

Referenced by llvm::parallel::detail::parallel_quick_sort(), and llvm::AlwaysInlinerPass::run().

◆ patchReplacementInstruction()

void llvm::patchReplacementInstruction ( Instruction I,
Value Repl 
)

◆ peekThroughBitcast()

static Value* llvm::peekThroughBitcast ( Value V,
bool  OneUseOnly = false 
)
inlinestatic

Return the source operand of a potentially bitcasted value while optionally checking if it has one use.

If there is no bitcast or the one use check is not met, return the input value itself.

Definition at line 119 of file InstCombineInternal.h.

Referenced by areInverseVectorBitmasks(), combineLoadToOperationType(), isMinMaxWithLoads(), removeBitcastsFromLoadStoreOnMinMax(), simplifyX86movmsk(), and llvm::InstCombiner::visitCallInst().

◆ peekThroughBitcasts()

SDValue llvm::peekThroughBitcasts ( SDValue  V)

◆ peekThroughOneUseBitcasts()

SDValue llvm::peekThroughOneUseBitcasts ( SDValue  V)

◆ peelLoop()

bool llvm::peelLoop ( Loop L,
unsigned  PeelCount,
LoopInfo LI,
ScalarEvolution SE,
DominatorTree DT,
AssumptionCache AC,
bool  PreserveLCSSA 
)

Peel off the first PeelCount iterations of loop L.

Note that this does not peel them off as a single straight-line block. Rather, each iteration is peeled off separately, and needs to check the exit condition. For loops that dynamically execute PeelCount iterations or less this provides a benefit, since the peeled off iterations, which account for the bulk of dynamic execution, can be further simplified by scalar optimizations.

Definition at line 503 of file LoopUnrollPeel.cpp.

References assert(), llvm::BasicBlock::begin(), canPeel(), llvm::DominatorTreeBase< NodeT, IsPostDom >::changeImmediateDominator(), cloneLoopBlocks(), llvm::LoopBase< BlockT, LoopT >::contains(), dyn_cast(), llvm::Function::end(), llvm::Instruction::extractProfMetadata(), F(), llvm::CallingConv::Fast, llvm::ScalarEvolution::forgetLoop(), llvm::PHINode::getBasicBlockIndex(), llvm::Function::getBasicBlockList(), llvm::Value::getContext(), llvm::LoopBase< BlockT, LoopT >::getHeader(), llvm::PHINode::getIncomingValueForBlock(), llvm::ilist_node_impl< OptionsT >::getIterator(), llvm::LoopBase< BlockT, LoopT >::getLoopLatch(), llvm::LoopBase< BlockT, LoopT >::getLoopPreheader(), llvm::Value::getName(), llvm::BasicBlock::getParent(), llvm::LoopBase< BlockT, LoopT >::getParentLoop(), llvm::BranchInst::getSuccessor(), llvm::BasicBlock::getTerminator(), llvm::LoopBase< BlockT, LoopT >::getUniqueExitBlock(), I, llvm::LLVMContext::MD_loop, llvm::LLVMContext::MD_prof, llvm::LoopBlocksDFS::perform(), remapInstructionsInBlocks(), llvm::PHINode::setIncomingValue(), llvm::Instruction::setMetadata(), llvm::Value::setName(), simplifyLoop(), llvm::iplist_impl< IntrusiveListT, TraitsT >::splice(), SplitBlock(), SplitEdge(), updateBranchWeights(), and llvm::DominatorTreeBase< NodeT, IsPostDom >::verify().

Referenced by UnrollLoop().

◆ po_begin()

template<class T >
po_iterator<T> llvm::po_begin ( const T G)

◆ po_end()

template<class T >
po_iterator<T> llvm::po_end ( const T G)

◆ po_ext_begin()

template<class T , class SetType >
po_ext_iterator<T, SetType> llvm::po_ext_begin ( T  G,
SetType &  S 
)

◆ po_ext_end()

template<class T , class SetType >
po_ext_iterator<T, SetType> llvm::po_ext_end ( T  G,
SetType &  S 
)

◆ PointerMayBeCaptured() [1/2]

bool llvm::PointerMayBeCaptured ( const Value V,
bool  ReturnCaptures,
bool  StoreCaptures,
unsigned  MaxUsesToExplore = DefaultMaxUsesToExplore 
)

PointerMayBeCaptured - Return true if this pointer value may be captured by the enclosing function (which is required to exist).

This routine can be expensive, so consider caching the results. The boolean ReturnCaptures specifies whether returning the value (or part of it) from the function counts as capturing it or not. The boolean StoreCaptures specified whether storing the value (or part of it) into memory anywhere automatically counts as capturing it or not. MaxUsesToExplore specifies how many uses should the analysis explore for one value before giving up due too "too many uses".

This routine can be expensive, so consider caching the results. The boolean ReturnCaptures specifies whether returning the value (or part of it) from the function counts as capturing it or not. The boolean StoreCaptures specified whether storing the value (or part of it) into memory anywhere automatically counts as capturing it or not.

Definition at line 159 of file CaptureTracking.cpp.

References assert().

Referenced by addArgumentAttrs(), computePointerICmp(), eliminateDeadStores(), handleEndBlock(), isCallPromotable(), isFunctionMallocLike(), isLocallyOpenedFile(), isNonEscapingLocalObject(), isSafeToExecuteUnconditionally(), PointerMayBeCapturedBefore(), promoteLoopAccessesToScalars(), and shouldInstrumentReadWriteFromAddress().

◆ PointerMayBeCaptured() [2/2]

void llvm::PointerMayBeCaptured ( const Value V,
CaptureTracker Tracker,
unsigned  MaxUsesToExplore = DefaultMaxUsesToExplore 
)

PointerMayBeCaptured - Visit the value and the values derived from it and find values which appear to be capturing the pointer value.

This feeds results into and is controlled by the CaptureTracker object. MaxUsesToExplore specifies how many uses should the analysis explore for one value before giving up due too "too many uses".

Definition at line 212 of file CaptureTracking.cpp.

References assert(), llvm::MCID::Call, llvm::CaptureTracker::captured(), dyn_cast(), enumerate(), llvm::Instruction::getOpcode(), llvm::User::getOperand(), llvm::Value::getType(), I, llvm::SmallSet< T, N, C >::insert(), isIntrinsicReturningPointerAliasingArgumentWithoutCapturing(), isNoAliasCall(), llvm::Type::isPointerTy(), isVolatile(), llvm::SPII::Load, MI, llvm::MCID::Select, llvm::CaptureTracker::shouldExplore(), llvm::SPII::Store, llvm::CaptureTracker::tooManyUses(), and llvm::Value::uses().

◆ PointerMayBeCapturedBefore()

bool llvm::PointerMayBeCapturedBefore ( const Value V,
bool  ReturnCaptures,
bool  StoreCaptures,
const Instruction I,
const DominatorTree DT,
bool  IncludeI = false,
OrderedBasicBlock OBB = nullptr,
unsigned  MaxUsesToExplore = DefaultMaxUsesToExplore 
)

PointerMayBeCapturedBefore - Return true if this pointer value may be captured by the enclosing function (which is required to exist).

If a DominatorTree is provided, only captures which happen before the given instruction are considered. This routine can be expensive, so consider caching the results. The boolean ReturnCaptures specifies whether returning the value (or part of it) from the function counts as capturing it or not. The boolean StoreCaptures specified whether storing the value (or part of it) into memory anywhere automatically counts as capturing it or not. Captures by the provided instruction are considered if the final parameter is true. An ordered basic block in OBB could be used to speed up capture-tracker queries. MaxUsesToExplore specifies how many uses should the analysis explore for one value before giving up due too "too many uses".

If a DominatorTree is provided, only captures which happen before the given instruction are considered. This routine can be expensive, so consider caching the results. The boolean ReturnCaptures specifies whether returning the value (or part of it) from the function counts as capturing it or not. The boolean StoreCaptures specified whether storing the value (or part of it) into memory anywhere automatically counts as capturing it or not. A ordered basic block OBB can be used in order to speed up queries about relative order among instructions in the same basic block.

Definition at line 186 of file CaptureTracking.cpp.

References assert(), llvm::Instruction::getParent(), and PointerMayBeCaptured().

Referenced by AddAliasScopeMetadata(), and llvm::AAResults::callCapturesBefore().

◆ pointerToJITTargetAddress()

template<typename T >
JITTargetAddress llvm::pointerToJITTargetAddress ( T Ptr)

Definition at line 51 of file JITSymbol.h.

◆ post_order()

template<class T >
iterator_range<po_iterator<T> > llvm::post_order ( const T G)

◆ post_order_ext()

template<class T , class SetType >
iterator_range<po_ext_iterator<T, SetType> > llvm::post_order_ext ( const T G,
SetType &  S 
)

◆ PowerOf2Ceil()

uint64_t llvm::PowerOf2Ceil ( uint64_t  A)
inline

Returns the power of two which is greater than or equal to the given value.

Essentially, it is a ceil operation across the domain of powers of two.

Definition at line 659 of file MathExtras.h.

References NextPowerOf2().

Referenced by computeKnownBitsFromShiftOperator(), llvm::LegalizerHelper::fewerElementsVector(), llvm::object::COFFObjectFile::getSymbolAlignment(), llvm::DataLayout::operator==(), processUDivOrURem(), reduceBuildVecToShuffleWithZero(), ShrinkDemandedConstant(), and llvm::X86TargetLowering::targetShrinkDemandedConstant().

◆ PowerOf2Floor()

uint64_t llvm::PowerOf2Floor ( uint64_t  A)
inline

Returns the power of two which is less than or equal to the given value.

Essentially, it is a floor operation across the domain of powers of two.

Definition at line 652 of file MathExtras.h.

References countLeadingZeros(), and ZB_Undefined.

Referenced by createRdxShuffleMask(), hasValueBeenRAUWed(), llvm::mca::initializeUsedResources(), lower1BitVectorShuffle(), PrintQuotedString(), llvm::FoldingSetBase::reserve(), and llvm::LoopVectorizationCostModel::selectInterleaveCount().

◆ powerOf5()

static unsigned int llvm::powerOf5 ( APFloatBase::integerPart dst,
unsigned int  power 
)
static

◆ pred_begin() [1/3]

pred_iterator llvm::pred_begin ( BasicBlock BB)
inline

Definition at line 109 of file CFG.h.

◆ pred_begin() [2/3]

const_pred_iterator llvm::pred_begin ( const BasicBlock BB)
inline

Definition at line 110 of file CFG.h.

◆ pred_begin() [3/3]

Interval::pred_iterator llvm::pred_begin ( Interval I)
inline

pred_begin/pred_end - define methods so that Intervals may be used just like BasicBlocks can with the pred_* functions, and *pred_iterator.

Definition at line 113 of file Interval.h.

References llvm::Interval::Predecessors.

Referenced by addBlockAndPredsToSet(), allPredecessorsComeFromSameSource(), asmClobbersCTR(), callsiteIsHot(), CanPropagatePredecessorsForPHIs(), canSplitPredecessors(), llvm::GraphTraits< Inverse< Interval * > >::child_begin(), llvm::CFGViewPredecessors< true >::child_begin(), llvm::GraphTraits< Inverse< BasicBlock * > >::child_begin(), llvm::GraphTraits< Inverse< const BasicBlock * > >::child_begin(), CloneAndPruneIntoFromInst(), CloneLoop(), computeLiveInValues(), ComputePostOrders(), createCodeGenPreparePass(), despeculateCountZeros(), llvm::DominatorTree::dominates(), eliminateRecursiveTailCall(), ensureValueAvailableInSuccessor(), eraseDeadBBsAndChildren(), llvm::CodeExtractor::findInputsOutputs(), llvm::CodeExtractor::findOrCreateBlockForHoisting(), llvm::SSAUpdaterTraits< SSAUpdater >::FindPredecessorBlocks(), findUnconditionalPreds(), FitWeights(), FoldBranchToCommonDest(), foldReturnAndProcessPred(), FoldTwoEntryPHINode(), llvm::Loop::getCanonicalInductionVariable(), GetIfCondition(), GetPointerOperand(), llvm::LazyValueInfo::getPredicateAt(), llvm::BasicBlock::getSinglePredecessor(), getSuccPad(), llvm::BasicBlock::getUniquePredecessor(), llvm::SSAUpdater::GetValueInMiddleOfBlock(), llvm::BasicBlock::hasNPredecessors(), llvm::BasicBlock::hasNPredecessorsOrMore(), InlineFunction(), InsertPreheaderForLoop(), insertTrivialPHIs(), insertUniqueBackedgeBlock(), isCriticalEdge(), isFullPostDominator(), IsIncrementNUW(), isIndirectBrTarget(), llvm::Interval::isLoop(), isObjectDereferencedInBlock(), isSCCHeader(), IsValueFullyAvailableInBlock(), maybePrintComdat(), mayLoopAccessLocation(), memoryIsNotModifiedBetween(), MergeBasicBlockIntoOnlyPred(), mergeCleanupPad(), mergeConditionalStoreToAddress(), mergeEmptyReturnBlocks(), pred_empty(), pred_size(), predecessors(), llvm::MachineBasicBlock::predecessors(), llvm::JumpThreadingPass::ProcessGuards(), processSwitch(), promoteSingleBlockAlloca(), removeEmptyCleanup(), llvm::BasicBlock::removePredecessor(), reuseTableCompare(), rewritePHIs(), llvm::LoopSimplifyPass::run(), separateNestedLoop(), shouldKeepInEntry(), shouldRotateLoopExitingLatch(), SimplifyCondBranchToCondBranch(), simplifyOneLoop(), llvm::JumpThreadingPass::SimplifyPartiallyRedundantLoad(), SplitCriticalEdge(), SplitLandingPadPredecessors(), splitPredecessorsOfLoopExit(), TryToMergeLandingPad(), TryToSimplifyUncondBranchFromEmptyBlock(), llvm::MemorySSAUpdater::updateForClonedLoop(), llvm::MemorySSA::verifyDefUses(), and llvm::InstCombiner::visitStoreInst().

◆ pred_empty()

bool llvm::pred_empty ( const BasicBlock BB)
inline

◆ pred_end() [1/3]

pred_iterator llvm::pred_end ( BasicBlock BB)
inline

Definition at line 113 of file CFG.h.

◆ pred_end() [2/3]

const_pred_iterator llvm::pred_end ( const BasicBlock BB)
inline

Definition at line 114 of file CFG.h.

◆ pred_end() [3/3]

Interval::pred_iterator llvm::pred_end ( Interval I)
inline

Definition at line 116 of file Interval.h.

References llvm::Interval::Predecessors.

Referenced by addBlockAndPredsToSet(), allPredecessorsComeFromSameSource(), asmClobbersCTR(), callsiteIsHot(), CanPropagatePredecessorsForPHIs(), canSplitPredecessors(), llvm::CFGViewPredecessors< true >::child_begin(), llvm::GraphTraits< Inverse< Interval * > >::child_end(), llvm::CFGViewPredecessors< true >::child_end(), llvm::GraphTraits< Inverse< BasicBlock * > >::child_end(), llvm::GraphTraits< Inverse< const BasicBlock * > >::child_end(), CloneAndPruneIntoFromInst(), CloneLoop(), computeLiveInValues(), createCodeGenPreparePass(), despeculateCountZeros(), llvm::DominatorTree::dominates(), eliminateRecursiveTailCall(), eraseDeadBBsAndChildren(), llvm::CodeExtractor::findInputsOutputs(), llvm::CodeExtractor::findOrCreateBlockForHoisting(), llvm::SSAUpdaterTraits< SSAUpdater >::FindPredecessorBlocks(), findUnconditionalPreds(), FitWeights(), FoldBranchToCommonDest(), foldReturnAndProcessPred(), llvm::Loop::getCanonicalInductionVariable(), GetIfCondition(), GetPointerOperand(), llvm::LazyValueInfo::getPredicateAt(), llvm::BasicBlock::getSinglePredecessor(), getSuccPad(), llvm::BasicBlock::getUniquePredecessor(), llvm::SSAUpdater::GetValueInMiddleOfBlock(), llvm::BasicBlock::hasNPredecessors(), llvm::BasicBlock::hasNPredecessorsOrMore(), InlineFunction(), InsertPreheaderForLoop(), insertTrivialPHIs(), insertUniqueBackedgeBlock(), isCriticalEdge(), isFullPostDominator(), IsIncrementNUW(), isIndirectBrTarget(), llvm::Interval::isLoop(), isObjectDereferencedInBlock(), isSCCHeader(), IsValueFullyAvailableInBlock(), maybePrintComdat(), mayLoopAccessLocation(), memoryIsNotModifiedBetween(), MergeBasicBlockIntoOnlyPred(), mergeCleanupPad(), mergeConditionalStoreToAddress(), mergeEmptyReturnBlocks(), pred_empty(), pred_size(), predecessors(), llvm::MachineBasicBlock::predecessors(), llvm::JumpThreadingPass::ProcessGuards(), processSwitch(), promoteSingleBlockAlloca(), removeEmptyCleanup(), llvm::BasicBlock::removePredecessor(), reuseTableCompare(), rewritePHIs(), llvm::LoopSimplifyPass::run(), separateNestedLoop(), shouldKeepInEntry(), shouldRotateLoopExitingLatch(), SimplifyCondBranchToCondBranch(), simplifyOneLoop(), llvm::JumpThreadingPass::SimplifyPartiallyRedundantLoad(), SplitCriticalEdge(), SplitLandingPadPredecessors(), splitPredecessorsOfLoopExit(), TryToMergeLandingPad(), TryToSimplifyUncondBranchFromEmptyBlock(), llvm::MemorySSAUpdater::updateForClonedLoop(), and llvm::MemorySSA::verifyDefUses().

◆ pred_size()

unsigned llvm::pred_size ( const BasicBlock BB)
inline

◆ predecessors() [1/2]

pred_range llvm::predecessors ( BasicBlock BB)
inline

Definition at line 125 of file CFG.h.

References pred_begin(), and pred_end().

Referenced by allPredecessorsComeFromSameSource(), buildClonedLoops(), buildExtractionBlockSet(), calculateCXXStateNumbers(), calculateSEHStateNumbers(), canSplitCallSite(), collectTransitivePredecessors(), llvm::JumpThreadingPass::ComputeValueKnownInPredecessorsImpl(), ConnectEpilog(), ConnectProlog(), createBlockExtractorPass(), llvm::VPRecipeBuilder::createBlockInMask(), createControlHeightReductionLegacyPass(), llvm::VPRecipeBuilder::createEdgeMask(), DeleteDeadBlocks(), DFS(), llvm::GVNExpression::Expression::dump(), ensureValueAvailableInSuccessor(), llvm::GVN::ValueTable::eraseTranslateCacheEntry(), llvm::CodeExtractor::extractCodeRegion(), llvm::CodeExtractor::findOrCreateBlockForHoisting(), llvm::InnerLoopVectorizer::fixNonInductionPHIs(), formDedicatedExitBlocks(), getBranchInsertPoint(), getCoroBeginPredBlocks(), getParentPad(), getPredState(), getTwoPredecessors(), hasCallsInBlocksBetween(), insertTrivialPHIs(), llvm::ScalarEvolution::isLoopEntryGuardedByCond(), isLoopNeverExecuted(), isOnlyReachableViaThisEdge(), isSafeToPromoteArgument(), isUnconditionalBranch(), isUniformlyReached(), mergeCleanupPad(), promoteSingleBlockAlloca(), llvm::GVNHoist::rank(), rebuildLoopAfterUnswitch(), recomputeLoopBlockSet(), llvm::safestack::StackColoring::removeAllMarkers(), removeEmptyCleanup(), reportMayClobberedLoad(), shouldKeepInEntry(), llvm::JumpThreadingPass::SimplifyPartiallyRedundantLoad(), SinkCommonCodeFromPredecessors(), sinkRegion(), splitCallSite(), llvm::JumpThreadingPass::ThreadEdge(), TryToMergeLandingPad(), UnrollRuntimeLoopRemainder(), unswitchBestCondition(), unswitchNontrivialInvariants(), and llvm::MemorySSA::verifyDefUses().

◆ predecessors() [2/2]

pred_const_range llvm::predecessors ( const BasicBlock BB)
inline

Definition at line 128 of file CFG.h.

References pred_begin(), and pred_end().

◆ predicatesFoldable()

bool llvm::predicatesFoldable ( CmpInst::Predicate  P1,
CmpInst::Predicate  P2 
)

Return true if both predicates match sign or if at least one of them is an equality comparison (which is signless).

Definition at line 61 of file CmpInstAnalysis.cpp.

References llvm::ICmpInst::isEquality(), and llvm::CmpInst::isSigned().

Referenced by areInverseVectorBitmasks(), foldSignedTruncationCheck(), and foldXorToXor().

◆ predOps()

static std::array<MachineOperand, 2> llvm::predOps ( ARMCC::CondCodes  Pred,
unsigned  PredReg = 0 
)
inlinestatic

Get the operands corresponding to the given Pred value.

By default, the predicate register is assumed to be 0 (no register), but you can pass in a PredReg if that is not the case.

Definition at line 455 of file ARMBaseInstrInfo.h.

References llvm::MachineOperand::CreateImm(), and llvm::MachineOperand::CreateReg().

Referenced by addExclusiveRegPair(), llvm::ARMFrameLowering::adjustForSegmentedStacks(), llvm::ARMBaseInstrInfo::breakPartialRegDependency(), CompareMBBNumbers(), ContainsReg(), llvm::ARMBaseInstrInfo::convertToThreeAddress(), llvm::ARMBaseInstrInfo::copyFromCPSR(), llvm::Thumb1InstrInfo::copyPhysReg(), llvm::Thumb2InstrInfo::copyPhysReg(), llvm::ARMBaseInstrInfo::copyPhysReg(), llvm::ARMBaseInstrInfo::copyToCPSR(), llvm::ThumbRegisterInfo::eliminateFrameIndex(), emitAlignedDPRCS2Restores(), emitAlignedDPRCS2Spills(), emitAligningInstructions(), emitARMRegPlusImmediate(), llvm::Thumb1FrameLowering::emitEpilogue(), llvm::ARMFrameLowering::emitEpilogue(), llvm::ARMTargetLowering::EmitInstrWithCustomInserter(), llvm::ARMBaseRegisterInfo::emitLoadConstPool(), emitPostLd(), emitPostSt(), llvm::Thumb1FrameLowering::emitPrologue(), llvm::ARMFrameLowering::emitPrologue(), emitT2RegPlusImmediate(), emitThumb2LoadConstPool(), emitThumbRegPlusImmediate(), emitThumbRegPlusImmInReg(), llvm::ARMBaseInstrInfo::expandLoadStackGuardBase(), llvm::ARMBaseInstrInfo::expandPostRAPseudo(), findTemporariesForLR(), llvm::ARMBaseInstrInfo::FoldImmediate(), getComparePred(), getPostIndexedLoadStoreOpcode(), getUnconditionalBrDisp(), llvm::ARMInstrInfo::getUnindexedOpcode(), llvm::ARMBaseInstrInfo::insertBranch(), InsertLDR_STR(), llvm::ARMBaseInstrInfo::isLoadFromStackSlotPostFE(), llvm::Thumb1InstrInfo::loadRegFromStackSlot(), llvm::Thumb2InstrInfo::loadRegFromStackSlot(), llvm::ARMBaseInstrInfo::loadRegFromStackSlot(), llvm::ARMCallLowering::lowerCall(), llvm::ARMCallLowering::lowerReturn(), makeImplicit(), llvm::ARMBaseRegisterInfo::materializeFrameBaseRegister(), registerDefinedBetween(), llvm::ARMTargetLowering::ReplaceNodeResults(), llvm::ARMFrameLowering::ResolveFrameIndexReference(), llvm::Thumb1FrameLowering::restoreCalleeSavedRegisters(), rewriteT2FrameIndex(), llvm::ThumbRegisterInfo::saveScavengerRegister(), selectMergeValues(), selectUnmergeValues(), llvm::ARMBaseInstrInfo::setExecutionDomain(), llvm::Thumb1FrameLowering::spillCalleeSavedRegisters(), llvm::Thumb1InstrInfo::storeRegToStackSlot(), llvm::Thumb2InstrInfo::storeRegToStackSlot(), llvm::ARMBaseInstrInfo::storeRegToStackSlot(), and VerifyLowRegs().

◆ PrepareToSplitEntryBlock()

BasicBlock::iterator llvm::PrepareToSplitEntryBlock ( BasicBlock BB,
BasicBlock::iterator  IP 
)

Instrumentation passes often insert conditional checks into entry blocks.

Call this function before splitting the entry block to move instructions that must remain in the entry block up before the split point. Static allocas and llvm.localescape calls, for example, must remain in the entry block.

Definition at line 40 of file Instrumentation.cpp.

References assert(), E, llvm::BasicBlock::end(), llvm::Function::getEntryBlock(), llvm::BasicBlock::getParent(), I, llvm::Intrinsic::localescape, and moveBeforeInsertPoint().

Referenced by shouldInstrumentBlock().

◆ prettyPrintRegisterOp()

static bool llvm::prettyPrintRegisterOp ( raw_ostream OS,
uint8_t  Opcode,
uint64_t  Operands[2],
const MCRegisterInfo MRI,
bool  isEH 
)
static

◆ printAmdKernelCodeField()

void llvm::printAmdKernelCodeField ( const amd_kernel_code_t C,
int  FldIndex,
raw_ostream OS 
)

Definition at line 99 of file AMDKernelCodeTUtils.cpp.

References get_amd_kernel_code_t_FieldName(), and Printer.

Referenced by dumpAmdKernelCode().

◆ PrintDomTree()

template<class NodeT >
void llvm::PrintDomTree ( const DomTreeNodeBase< NodeT > *  N,
raw_ostream O,
unsigned  Lev 
)

◆ PrintError() [1/3]

void llvm::PrintError ( ArrayRef< SMLoc ErrorLoc,
const Twine Msg 
)

◆ PrintError() [2/3]

void llvm::PrintError ( const char Loc,
const Twine Msg 
)

◆ PrintError() [3/3]

void llvm::PrintError ( const Twine Msg)

Definition at line 65 of file Error.cpp.

References llvm::WithColor::error().

◆ printEscapedString()

void llvm::printEscapedString ( StringRef  Name,
raw_ostream Out 
)

Print each character of the specified string, escaping it if it is not printable or if it is an escape char.

Definition at line 61 of file StringExtras.cpp.

References C, hexdigit(), isPrint(), and llvm::StringRef::size().

Referenced by llvm::Attribute::getAsString(), getOrdinalSuffix(), maybePrintComdat(), printLLVMNameWithoutPrefix(), printSyncScope(), WriteAsOperandInternal(), and WriteConstantInternal().

◆ PrintFatalError() [1/2]

void llvm::PrintFatalError ( const Twine Msg)

◆ PrintFatalError() [2/2]

void llvm::PrintFatalError ( ArrayRef< SMLoc ErrorLoc,
const Twine Msg 
)

Definition at line 74 of file Error.cpp.

References PrintError(), and llvm::sys::RunInterruptHandlers().

◆ printHTMLEscaped()

void llvm::printHTMLEscaped ( StringRef  String,
raw_ostream Out 
)

Print each character of the specified string, escaping HTML special characters.

Definition at line 71 of file StringExtras.cpp.

References C.

Referenced by getOrdinalSuffix().

◆ printJumpTableEntryReference()

Printable llvm::printJumpTableEntryReference ( unsigned  Idx)

Prints a jump table entry reference.

The format is: jump-table.5 - a jump table entry with index == 5.

Usage: OS << printJumpTableEntryReference(Idx) << '
';

Definition at line 903 of file MachineFunction.cpp.

Referenced by llvm::MachineJumpTableInfo::print(), llvm::MachineOperand::print(), and llvm::MachineJumpTableInfo::RemoveJumpTable().

◆ PrintLaneMask()

Printable llvm::PrintLaneMask ( LaneBitmask  LaneMask)
inline

◆ printLivesAt()

LLVM_DUMP_METHOD void llvm::printLivesAt ( SlotIndex  SI,
const LiveIntervals LIS,
const MachineRegisterInfo MRI 
)

◆ printLLVMNameWithoutPrefix()

void llvm::printLLVMNameWithoutPrefix ( raw_ostream OS,
StringRef  Name 
)

Print out a name of an LLVM value without any prefixes.

The name is surrounded with ""'s and escaped if it has any special or non-printable characters in it.

Definition at line 398 of file AsmWriter.cpp.

References assert(), C, llvm::StringRef::empty(), Name, printEscapedString(), and llvm::StringRef::size().

Referenced by llvm::MachineOperand::print(), llvm::MachineMemOperand::print(), printIRBlockReference(), printIRValueReference(), and PrintLLVMName().

◆ printLoop()

void llvm::printLoop ( Loop L,
raw_ostream OS,
const std::string &  Banner = "" 
)

◆ printLowerCase()

void llvm::printLowerCase ( StringRef  String,
raw_ostream Out 
)

printLowerCase - Print each character as lowercase if it is uppercase.

Definition at line 88 of file StringExtras.cpp.

References C, and toLower().

Referenced by getOrdinalSuffix(), and printReg().

◆ printMBBReference()

Printable llvm::printMBBReference ( const MachineBasicBlock MBB)

Prints a machine basic block reference.

The format is: bb.5 - a machine basic block with MBB.getNumber() == 5.

Usage: OS << printMBBReference(MBB) << '
';

Definition at line 74 of file MachineBasicBlock.cpp.

References llvm::ilist_callback_traits< NodeTy >::addNodeToList(), llvm::MachineFunction::addToMBBNumbering(), assert(), llvm::ilist_alloc_traits< NodeTy >::deleteNode(), E, llvm::MachineInstr::getMF(), llvm::MachineBasicBlock::getParent(), llvm::MachineInstr::getParent(), llvm::MachineFunction::getRegInfo(), I, llvm::MachineBasicBlock::instr_begin(), llvm::MachineBasicBlock::instr_end(), MI, N, llvm::MachineBasicBlock::printAsOperand(), llvm::MachineFunction::removeFromMBBNumbering(), llvm::ilist_callback_traits< NodeTy >::removeNodeFromList(), and llvm::ilist_callback_traits< NodeTy >::transferNodesFromList().

Referenced by addSegmentsWithValNo(), allPhiOperandsUndefined(), llvm::HexagonInstrInfo::analyzeBranch(), llvm::MachineBasicBlock::canSplitCriticalEdge(), llvm::TailDuplicator::canTailDuplicate(), CompareMBBNumbers(), llvm::rdf::Liveness::computeLiveIns(), llvm::MIRPrinter::convert(), llvm::HexagonInstrInfo::copyPhysReg(), createAArch64ConditionOptimizerPass(), createBBSelectReg(), createSIWholeQuadModePass(), llvm::HexagonFrameLowering::determineCalleeSaves(), llvm::SystemZPostRASchedStrategy::enterMBB(), llvm::BitTracker::MachineEvaluator::evaluate(), llvm::GCNScheduleDAGMILive::finalizeSchedule(), llvm::ScheduleDAGInstrs::fixupKills(), getBlockName(), getSchedRegions(), getStartOrEndSlot(), getUnconditionalBrDisp(), llvm::SelectionDAGISel::getUninvalidatedNodeId(), hasOneExitNode(), hoistAndMergeSGPRInits(), INITIALIZE_PASS(), llvm::HexagonInstrInfo::insertBranch(), llvm::po_iterator_storage< LoopBounds, true >::insertEdge(), InstructionStoresToFI(), llvm::MachineTraceMetrics::Ensemble::invalidate(), llvm::MachineTraceMetrics::invalidate(), llvm::HexagonInstrInfo::invertAndChangeJumpTarget(), isCopyFeedingInvariantStore(), isDebug(), isFunctionEntryBlock(), isInRage(), isMinSize(), isPHIRegionIndex(), llvm::SystemZPostRASchedStrategy::leaveMBB(), matchPair(), mergeOperations(), llvm::rdf::operator<<(), parseCond(), llvm::MachineJumpTableInfo::print(), llvm::MIPrinter::print(), llvm::MachineTraceMetrics::TraceBlockInfo::print(), llvm::MachineTraceMetrics::Trace::print(), llvm::ARMConstantPoolMBB::print(), llvm::LiveIntervals::print(), llvm::MachineOperand::print(), llvm::MachineBasicBlock::print(), llvm::MachineBranchProbabilityInfo::printEdgeProbability(), ProfitableToMerge(), llvm::rdf::DataFlowGraph::pushAllDefs(), pushDepHeight(), registerDefinedBetween(), llvm::HexagonInstrInfo::removeBranch(), removeExternalCFGEdges(), llvm::rdf::Liveness::resetKills(), llvm::VLIWMachineScheduler::schedule(), llvm::ScheduleDAGMI::schedule(), llvm::SIScheduleDAGMI::schedule(), llvm::ScheduleDAGMILive::schedule(), split(), llvm::MachineBasicBlock::SplitCriticalEdge(), llvm::MachineFunction::verify(), verifyCTRBranch(), VerifyPHIs(), and WriteGraph().

◆ PrintMessage()

static void llvm::PrintMessage ( ArrayRef< SMLoc Loc,
SourceMgr::DiagKind  Kind,
const Twine Msg 
)
static

◆ printMIR() [1/2]

void llvm::printMIR ( raw_ostream OS,
const Module M 
)

Print LLVM IR using the MIR serialization format to the given output stream.

Definition at line 821 of file MIRPrinter.cpp.

◆ printMIR() [2/2]

void llvm::printMIR ( raw_ostream OS,
const MachineFunction MF 
)

Print a machine function using the MIR serialization format to the given output stream.

Definition at line 826 of file MIRPrinter.cpp.

References llvm::MIRPrinter::print(), and Printer.

◆ PrintNote()

void llvm::PrintNote ( ArrayRef< SMLoc NoteLoc,
const Twine Msg 
)

Definition at line 43 of file Error.cpp.

References llvm::SourceMgr::DK_Note, and PrintMessage().

Referenced by QualifiedNameOfImplicitName().

◆ PrintRecyclerStats()

void llvm::PrintRecyclerStats ( size_t  Size,
size_t  Align,
size_t  FreeListSize 
)

PrintRecyclingAllocatorStats - Helper for RecyclingAllocator for printing statistics.

Definition at line 32 of file Allocator.cpp.

References errs().

Referenced by llvm::Recycler< llvm::MachineInstr >::PrintStats().

◆ printReg()

Printable llvm::printReg ( unsigned  Reg,
const TargetRegisterInfo TRI = nullptr,
unsigned  SubIdx = 0,
const MachineRegisterInfo MRI = nullptr 
)

Prints virtual and physical registers with or without a TRI instance.

The format is: noreg - NoRegister %5 - a virtual register. %5:sub_8bit - a virtual register with sub-register index (with TRI). eax - a physical register physreg17 - a physical register when no TRI instance given.

Usage: OS << printReg(Reg, TRI, SubRegIdx) << '
';

Definition at line 90 of file TargetRegisterInfo.cpp.

References llvm::MCRegisterInfo::getName(), llvm::MCRegisterInfo::getNumRegs(), llvm::TargetRegisterInfo::getSubRegIndexName(), llvm::MachineRegisterInfo::getVRegName(), llvm::TargetRegisterInfo::isStackSlot(), llvm::TargetRegisterInfo::isVirtualRegister(), llvm_unreachable, Name, printLowerCase(), Reg, llvm::TargetRegisterInfo::stackSlot2Index(), and llvm::TargetRegisterInfo::virtReg2Index().

Referenced by llvm::AggressiveAntiDepBreaker::AggressiveAntiDepBreaker(), llvm::AllocationOrder::AllocationOrder(), allPhiOperandsUndefined(), llvm::A57ChainingConstraint::apply(), llvm::RegisterBankInfo::applyDefaultMapping(), llvm::LiveRegMatrix::assign(), llvm::HexagonFrameLowering::assignCalleeSavedSpillSlots(), llvm::LiveRangeEdit::calculateRegClassAndHint(), llvm::TargetRegisterInfo::checkAllSuperRegsMarked(), containsNewBackedge(), llvm::HexagonInstrInfo::copyPhysReg(), createBBSelectReg(), createGreedyRegisterAllocator(), createRegUsageInfoCollector(), createSIFixWWMLivenessPass(), CriticalPathStep(), llvm::ARMFrameLowering::determineCalleeSaves(), llvm::AArch64FrameLowering::determineCalleeSaves(), llvm::HexagonFrameLowering::determineCalleeSaves(), llvm::SDep::dump(), dump_registers(), llvm::TargetRegisterInfo::dumpReg(), emitDebugValueComment(), llvm::AsmPrinter::emitImplicitDef(), emitKill(), llvm::BitTracker::MachineEvaluator::evaluate(), llvm::RegScavenger::FindUnusedReg(), llvm::RegBankSelect::getAnalysisUsage(), getDwarfRegNum(), getNumAllocatableRegsForConstraints(), getPHIDestReg(), getTag(), hasOneExitNode(), hasTiedDef(), INITIALIZE_PASS(), isACalleeSavedRegister(), llvm::CoalescerPair::isCoalescable(), isCrossCopy(), isDebug(), isDefInSubRange(), isFullUndefDef(), isFunctionEntryBlock(), isLiveOut(), isNopCopy(), isPHIRegionIndex(), isTerminalReg(), llvm::ARCInstrInfo::loadRegFromStackSlot(), llvm::HexagonEvaluator::mask(), matchPair(), llvm::AggressiveAntiDepBreaker::Observe(), llvm::VirtReg2IndexFunctor::operator()(), llvm::rdf::operator<<(), operator<<(), llvm::PhysicalRegisterUsageInfo::print(), llvm::LiveIntervalUnion::print(), llvm::LivePhysRegs::print(), llvm::MIPrinter::print(), llvm::VirtRegMap::print(), llvm::MachineOperand::print(), llvm::RegisterBankInfo::OperandsMapper::print(), llvm::MachineFunction::print(), llvm::MachineBasicBlock::print(), llvm::LiveInterval::print(), llvm::BitTracker::print_cells(), printCFIRegister(), printCustomRegMask(), printLivesAt(), PrintNodeInfo(), printRegMIR(), pushDepHeight(), removeExternalCFGEdges(), ReplaceFrameIndex(), reportMismatch(), llvm::AArch64FrameLowering::restoreCalleeSavedRegisters(), llvm::Localizer::runOnMachineFunction(), llvm::RegisterClassInfo::runOnMachineFunction(), llvm::RegScavenger::scavengeRegister(), llvm::RegScavenger::scavengeRegisterBackwards(), llvm::AArch64FrameLowering::spillCalleeSavedRegisters(), llvm::ARCInstrInfo::storeRegToStackSlot(), false::Chain::str(), llvm::LiveRegMatrix::unassign(), llvm::LiveIntervals::HMEditor::updateAllRanges(), llvm::ScheduleDAGMILive::updatePressureDiffs(), llvm::MachineFunction::verify(), and llvm::MachineRegisterInfo::verifyUseList().

◆ printRegClassOrBank()

Printable llvm::printRegClassOrBank ( unsigned  Reg,
const MachineRegisterInfo RegInfo,
const TargetRegisterInfo TRI 
)

◆ printRegUnit()

Printable llvm::printRegUnit ( unsigned  Unit,
const TargetRegisterInfo TRI 
)

◆ PrintStatistics() [1/2]

void llvm::PrintStatistics ( )

◆ PrintStatistics() [2/2]

void llvm::PrintStatistics ( raw_ostream OS)

Print statistics to the given output stream.

Definition at line 173 of file Statistic.cpp.

References llvm::raw_ostream::flush(), format(), max(), size(), StatInfo, Stats, and utostr().

◆ PrintStatisticsJSON()

void llvm::PrintStatisticsJSON ( raw_ostream OS)

Print statistics in JSON format.

This does include all global timers (

See also
Timer, TimerGroup). Note that the timers are cleared after printing and will not be printed in human readable form or in a second call of PrintStatisticsJSON().

Definition at line 203 of file Statistic.cpp.

References assert(), llvm::raw_ostream::flush(), llvm::Statistic::getDebugType(), llvm::Statistic::getName(), llvm::Statistic::getValue(), None, llvm::TimerGroup::printAllJSONValues(), StatInfo, and Stats.

Referenced by PrintStatistics(), and llvm::lto::LTO::run().

◆ printVRegOrUnit()

Printable llvm::printVRegOrUnit ( unsigned  VRegOrUnit,
const TargetRegisterInfo TRI 
)

◆ PrintWarning() [1/3]

void llvm::PrintWarning ( ArrayRef< SMLoc WarningLoc,
const Twine Msg 
)

Definition at line 47 of file Error.cpp.

References llvm::SourceMgr::DK_Warning, and PrintMessage().

◆ PrintWarning() [2/3]

void llvm::PrintWarning ( const char Loc,
const Twine Msg 
)

◆ PrintWarning() [3/3]

void llvm::PrintWarning ( const Twine Msg)

Definition at line 55 of file Error.cpp.

References llvm::WithColor::warning().

◆ programUndefinedIfFullPoison()

bool llvm::programUndefinedIfFullPoison ( const Instruction PoisonI)

Return true if this function can prove that if PoisonI is executed and yields a full-poison value (all bits poison), then that will trigger undefined behavior.

Note that this currently only considers the basic block that is the parent of I.

Definition at line 4416 of file ValueTracking.cpp.

References llvm::ilist_node_impl< OptionsT >::getIterator(), llvm::Instruction::getParent(), and llvm::SmallSet< T, N, C >::insert().

Referenced by createSeparateConstOffsetFromGEPPass(), and getRangeForAffineARHelper().

◆ promoteCall()

Instruction * llvm::promoteCall ( CallSite  CS,
Function Callee,
CastInst **  RetBitCast = nullptr 
)

Promote the given indirect call site to unconditionally call Callee.

This function promotes the given call site, returning the direct call or invoke instruction. If the function type of the call site doesn't match that of the callee, bitcast instructions are inserted where appropriate. If RetBitCast is non-null, it will be used to store the return value bitcast, if created.

Definition at line 366 of file CallPromotionUtils.cpp.

References Arg, assert(), llvm::CastInst::CreateBitOrPointerCast(), createRetBitCast(), llvm::AttributeSet::get(), llvm::AttributeList::get(), llvm::CallSiteBase< FunTy, BBTy, ValTy, UserTy, UseTy, InstrTy, CallTy, InvokeTy, IterTy >::getArgument(), llvm::CallSiteBase< FunTy, BBTy, ValTy, UserTy, UseTy, InstrTy, CallTy, InvokeTy, IterTy >::getAttributes(), llvm::CallSiteBase< FunTy, BBTy, ValTy, UserTy, UseTy, InstrTy, CallTy, InvokeTy, IterTy >::getCalledFunction(), llvm::Function::getContext(), llvm::AttributeList::getFnAttributes(), llvm::Function::getFunctionType(), llvm::CallSiteBase< FunTy, BBTy, ValTy, UserTy, UseTy, InstrTy, CallTy, InvokeTy, IterTy >::getFunctionType(), llvm::CallSiteBase< FunTy, BBTy, ValTy, UserTy, UseTy, InstrTy, CallTy, InvokeTy, IterTy >::getInstruction(), llvm::FunctionType::getNumParams(), llvm::AttributeList::getParamAttributes(), llvm::Function::getReturnType(), llvm::Value::getType(), llvm::Type::isVoidTy(), llvm::LLVMContext::MD_callees, llvm::LLVMContext::MD_prof, llvm::CallSiteBase< FunTy, BBTy, ValTy, UserTy, UseTy, InstrTy, CallTy, InvokeTy, IterTy >::mutateFunctionType(), llvm::SmallVectorTemplateBase< T >::push_back(), llvm::AttrBuilder::remove(), llvm::AttributeList::ReturnIndex, llvm::CallSiteBase< FunTy, BBTy, ValTy, UserTy, UseTy, InstrTy, CallTy, InvokeTy, IterTy >::setArgument(), llvm::CallSiteBase< FunTy, BBTy, ValTy, UserTy, UseTy, InstrTy, CallTy, InvokeTy, IterTy >::setAttributes(), llvm::CallSiteBase< FunTy, BBTy, ValTy, UserTy, UseTy, InstrTy, CallTy, InvokeTy, IterTy >::setCalledFunction(), llvm::Instruction::setMetadata(), and llvm::AttributeFuncs::typeIncompatible().

Referenced by promoteCallWithIfThenElse().

◆ promoteCallWithIfThenElse()

Instruction * llvm::promoteCallWithIfThenElse ( CallSite  CS,
Function Callee,
MDNode BranchWeights = nullptr 
)

Promote the given indirect call site to conditionally call Callee.

This function creates an if-then-else structure at the location of the call site. The original call site is moved into the "else" block. A clone of the indirect call site is promoted, placed in the "then" block, and returned. If BranchWeights is non-null, it will be used to set !prof metadata on the new conditional branch.

Definition at line 440 of file CallPromotionUtils.cpp.

References promoteCall(), and versionCallSite().

Referenced by llvm::pgo::promoteIndirectCall().

◆ promoteLoopAccessesToScalars()

bool llvm::promoteLoopAccessesToScalars ( const SmallSetVector< Value *, 8 > &  PointerMustAliases,
SmallVectorImpl< BasicBlock *> &  ExitBlocks,
SmallVectorImpl< Instruction *> &  InsertPts,
PredIteratorCache PIC,
LoopInfo LI,
DominatorTree DT,
const TargetLibraryInfo TLI,
Loop CurLoop,
AliasSetTracker CurAST,
ICFLoopSafetyInfo SafetyInfo,
OptimizationRemarkEmitter ORE 
)

Try to promote memory values to scalars by sinking stores out of the loop and moving loads to before the loop.

We do this by looping over the stores in the loop, looking for stores to Must pointers which are loop invariant. It takes a set of must-alias values, Loop exit blocks vector, loop exit blocks insertion point vector, PredIteratorCache, LoopInfo, DominatorTree, Loop, AliasSet information for all instructions of the loop and loop safety information as arguments. Diagnostics is emitted via ORE. It returns changed status.

We do this by looping over the stores in the loop, looking for stores to Must pointers which are loop invariant.

Definition at line 1723 of file LICM.cpp.

References llvm::SSAUpdater::AddAvailableValue(), all_of(), llvm::ICFLoopSafetyInfo::anyBlockMayThrow(), assert(), llvm::SetVector< T, SmallVector< T, N >, SmallDenseSet< T, N > >::begin(), llvm::LoopBase< BlockT, LoopT >::blocks(), llvm::LoopBase< BlockT, LoopT >::contains(), dbgs(), DEBUG_TYPE, llvm::DominatorTree::dominates(), dyn_cast(), llvm::OptimizationRemarkEmitter::emit(), llvm::SmallVectorBase::empty(), llvm::LoopBase< BlockT, LoopT >::end(), eraseInstruction(), From, llvm::Instruction::getAAMetadata(), llvm::DataLayout::getABITypeAlignment(), llvm::Module::getDataLayout(), llvm::LoopInfoBase< BlockT, LoopT >::getLoopFor(), llvm::LoopBase< BlockT, LoopT >::getLoopPreheader(), llvm::BasicBlock::getModule(), llvm::Value::getName(), llvm::User::getOperand(), llvm::LoopBase< BlockT, LoopT >::getSubLoops(), llvm::BasicBlock::getTerminator(), llvm::Value::getType(), GetUnderlyingObject(), isAllocLikeFn(), isDereferenceableAndAlignedPointer(), llvm::ICFLoopSafetyInfo::isGuaranteedToExecute(), isSafeToExecuteUnconditionally(), LICM, LLVM_DEBUG, llvm::SPII::Load, max(), PointerMayBeCaptured(), llvm::SmallVectorTemplateBase< T >::push_back(), llvm::Instruction::setAAMetadata(), llvm::LoadInst::setAlignment(), llvm::Instruction::setDebugLoc(), llvm::LoadInst::setOrdering(), SSA, llvm::SPII::Store, Unordered, llvm::Value::use_empty(), and llvm::Value::users().

Referenced by createLICMPass().

◆ PromoteMemToReg()

void llvm::PromoteMemToReg ( ArrayRef< AllocaInst *>  Allocas,
DominatorTree DT,
AssumptionCache AC = nullptr 
)

Promote the specified list of alloca instructions into scalar registers, inserting PHI nodes as appropriate.

This function makes use of DominanceFrontier information. This function does not modify the CFG of the function at all. All allocas must be from the same function.

Definition at line 1024 of file PromoteMemoryToRegister.cpp.

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

Referenced by promoteMemoryToRegister(), and relocationViaAlloca().

◆ propagateIRFlags()

void llvm::propagateIRFlags ( Value I,
ArrayRef< Value *>  VL,
Value OpValue = nullptr 
)

Get the intersection (logical and) of all of the potential IR flags of each scalar operation (VL) that will be converted into a vector (I).

If OpValue is non-null, we only consider operations similar to OpValue when intersecting. Flag set: NSW, NUW, exact, and all of fast-math.

Definition at line 916 of file LoopUtils.cpp.

References llvm::Instruction::andIRFlags(), dyn_cast(), llvm::Instruction::getOpcode(), and I.

Referenced by createRdxShuffleMask(), getOrderedReduction(), getShuffleReduction(), and inversePermutation().

◆ propagateMetadata()

Instruction * llvm::propagateMetadata ( Instruction Inst,
ArrayRef< Value *>  VL 
)

Specifically, let Kinds = [MD_tbaa, MD_alias_scope, MD_noalias, MD_fpmath, MD_nontemporal, MD_access_group].

For K in Kinds, we get the MDNode for K from each of the elements of VL, compute their "intersection" (i.e., the most generic metadata value that covers all of the individual values), and set I's metadata for M equal to the intersection value.

This function always sets a (possibly null) value for each K in Kinds.

Returns
I after propagating metadata from VL.

Definition at line 556 of file VectorUtils.cpp.

References E, llvm::Instruction::getAllMetadataOtherThanDebugLoc(), llvm::Instruction::getMetadata(), llvm::MDNode::getMostGenericAliasScope(), llvm::MDNode::getMostGenericFPMath(), llvm::MDNode::getMostGenericTBAA(), llvm::MDNode::intersect(), intersectAccessGroups(), Kind, llvm_unreachable, llvm::LLVMContext::MD_access_group, llvm::LLVMContext::MD_alias_scope, llvm::LLVMContext::MD_fpmath, llvm::LLVMContext::MD_invariant_load, llvm::LLVMContext::MD_noalias, llvm::LLVMContext::MD_nontemporal, llvm::LLVMContext::MD_tbaa, llvm::Instruction::setMetadata(), and llvm::ArrayRef< T >::size().

Referenced by llvm::InnerLoopVectorizer::addMetadata(), llvm::InterleaveGroup< llvm::Instruction >::addMetadata(), getChainID(), inversePermutation(), and propagateMetadata().

◆ propagatesFullPoison()

bool llvm::propagatesFullPoison ( const Instruction I)

Return true if this function can prove that I is guaranteed to yield full-poison (all bits poison) if at least one of its operands are full-poison (all bits poison).

The exact rules for how poison propagates through instructions have not been settled as of 2015-07-10, so this function is conservative and only considers poison to be propagated in uncontroversial cases. There is no attempt to track values that may be only partially poison.

Definition at line 4359 of file ValueTracking.cpp.

References llvm::MCID::Add, and llvm::Instruction::getOpcode().

Referenced by getRangeForAffineARHelper().

◆ pruneCache()

bool llvm::pruneCache ( StringRef  Path,
CachePruningPolicy  Policy 
)

◆ PTOGV()

GenericValue llvm::PTOGV ( void *  P)
inline

◆ readExponent()

static int llvm::readExponent ( StringRef::iterator  begin,
StringRef::iterator  end 
)
static

Definition at line 195 of file APFloat.cpp.

References assert(), llvm::sys::path::begin(), decDigitValue(), and llvm::sys::path::end().

Referenced by interpretDecimal().

◆ readModuleSummaryIndex()

Error llvm::readModuleSummaryIndex ( MemoryBufferRef  Buffer,
ModuleSummaryIndex CombinedIndex,
uint64_t  ModuleId 
)

Parse the specified bitcode buffer and merge the index into CombinedIndex.

Definition at line 6092 of file BitcodeReader.cpp.

References getSingleModule(), and llvm::Expected< T >::takeError().

◆ readPGOFuncNameStrings()

Error llvm::readPGOFuncNameStrings ( StringRef  NameStrings,
InstrProfSymtab Symtab 
)

NameStrings is a string composed of one of more sub-strings encoded in the format described above.

The substrings are separated by 0 or more zero bytes. This method decodes the string and populates the Symtab.

Definition at line 437 of file InstrProf.cpp.

References llvm::InstrProfSymtab::addFuncName(), consumeError(), llvm::StringRef::data(), llvm::SmallVectorTemplateCommon< T, typename >::data(), decodeULEB128(), E, getInstrProfNameSeparator(), llvm::zlib::isAvailable(), N, Name, P, llvm::SmallVectorBase::size(), llvm::StringRef::size(), llvm::StringRef::split(), llvm::Error::success(), llvm::zlib::uncompress(), uncompress_failed, and zlib_unavailable.

Referenced by llvm::InstrProfSymtab::create(), and getInstrProfNameSeparator().

◆ recognizeBSwapOrBitReverseIdiom()

bool llvm::recognizeBSwapOrBitReverseIdiom ( Instruction I,
bool  MatchBSwaps,
bool  MatchBitReversals,
SmallVectorImpl< Instruction *> &  InsertedInsts 
)

Try to match a bswap or bitreverse idiom.

If an idiom is matched, an intrinsic call is inserted before I. Any added instructions are returned in InsertedInsts. They will all have been added to a basic block.

A bitreverse idiom normally requires around 2*BW nodes to be searched (where BW is the bitwidth of the integer type). A bswap idiom requires anywhere up to BW / 4 nodes to be searched, so is significantly faster.

This function returns true on a successful match or false otherwise.

Definition at line 2749 of file Local.cpp.

References llvm::Intrinsic::bitreverse, bitTransformIsCorrectForBitReverse(), bitTransformIsCorrectForBSwap(), llvm::Intrinsic::bswap, collectBitParts(), llvm::CastInst::Create(), llvm::CallInst::Create(), dyn_cast(), F(), llvm::IntegerType::getBitWidth(), llvm::Intrinsic::getDeclaration(), llvm::Instruction::getModule(), llvm::Operator::getOpcode(), llvm::Value::getType(), llvm::Value::hasOneUse(), llvm::SmallVectorTemplateBase< T >::push_back(), and llvm::Instruction::user_back().

Referenced by getKnownAlignment(), makeBitReverse(), and llvm::InstCombiner::visitAnd().

◆ recomputeLiveIns()

static void llvm::recomputeLiveIns ( MachineBasicBlock MBB)
inlinestatic

Convenience function for recomputing live-in's for MBB.

Definition at line 190 of file LivePhysRegs.h.

References llvm::MachineBasicBlock::clearLiveIns(), and computeAndAddLiveIns().

Referenced by findHoistingInsertPosAndDeps().

◆ recomputeLivenessFlags()

void llvm::recomputeLivenessFlags ( MachineBasicBlock MBB)

◆ RecursivelyDeleteDeadPHINode()

bool llvm::RecursivelyDeleteDeadPHINode ( PHINode PN,
const TargetLibraryInfo TLI = nullptr 
)

If the specified value is an effectively dead PHI node, due to being a def-use chain of single-use nodes that either forms a cycle or is terminated by a trivially dead instruction, delete it.

RecursivelyDeleteDeadPHINode - If the specified value is an effectively dead PHI node, due to being a def-use chain of single-use nodes that either forms a cycle or is terminated by a trivially dead instruction, delete it.

If that makes any of its operands trivially dead, delete them too, recursively. Return true if a change was made.

Definition at line 513 of file Local.cpp.

References areAllUsesEqual(), llvm::UndefValue::get(), I, llvm::SmallPtrSetImpl< PtrType >::insert(), and RecursivelyDeleteTriviallyDeadInstructions().

Referenced by DeleteDeadPHIs(), and llvm::SimplifyCFGOptions::setAssumptionCache().

◆ RecursivelyDeleteTriviallyDeadInstructions() [1/2]

bool llvm::RecursivelyDeleteTriviallyDeadInstructions ( Value V,
const TargetLibraryInfo TLI = nullptr,
MemorySSAUpdater MSSAU = nullptr 
)

If the specified value is a trivially dead instruction, delete it.

RecursivelyDeleteTriviallyDeadInstructions - If the specified value is a trivially dead instruction, delete it.

If that makes any of its operands trivially dead, delete them too, recursively. Return true if any instructions were deleted.

Definition at line 430 of file Local.cpp.

References dyn_cast(), I, isInstructionTriviallyDead(), llvm::SmallVectorTemplateBase< T >::push_back(), and llvm::Value::use_empty().

Referenced by allPredecessorsComeFromSameSource(), asmClobbersCTR(), ConstantFoldTerminator(), ConvertToSInt(), createFFSIntrinsic(), createSeparateConstOffsetFromGEPPass(), llvm::objcarc::EraseInstruction(), EraseTerminatorAndDCECond(), GetPointerOperand(), hasZeroSignBit(), IsNonLocalValue(), makeBitReverse(), mayLoopAccessLocation(), RecursivelyDeleteDeadPHINode(), runImpl(), llvm::SimplifyCFGOptions::setAssumptionCache(), simplifyLoopAfterUnroll(), simplifyLoopInst(), StripSymbolNames(), and unifyBitWidth().

◆ RecursivelyDeleteTriviallyDeadInstructions() [2/2]

void llvm::RecursivelyDeleteTriviallyDeadInstructions ( SmallVectorImpl< Instruction *> &  DeadInsts,
const TargetLibraryInfo TLI = nullptr,
MemorySSAUpdater MSSAU = nullptr 
)

Delete all of the instructions in DeadInsts, and all other instructions that deleting these in turn causes to be trivially dead.

The initial instructions in the provided vector must all have empty use lists and satisfy isInstructionTriviallyDead.

DeadInsts will be used as scratch storage for this routine and will be empty afterward.

Definition at line 443 of file Local.cpp.

References assert(), llvm::SmallVectorBase::empty(), llvm::Instruction::eraseFromParent(), I, isInstructionTriviallyDead(), llvm::User::operands(), llvm::SmallVectorImpl< T >::pop_back_val(), llvm::SmallVectorTemplateBase< T >::push_back(), llvm::MemorySSAUpdater::removeMemoryAccess(), salvageDebugInfo(), and llvm::Value::use_empty().

◆ recursivelySimplifyInstruction()

bool llvm::recursivelySimplifyInstruction ( Instruction I,
const TargetLibraryInfo TLI = nullptr,
const DominatorTree DT = nullptr,
AssumptionCache AC = nullptr 
)

Recursively attempt to simplify an instruction.

This routine uses SimplifyInstruction to simplify 'I', and if successful replaces uses of 'I' with the simplified value. It then recurses on each of the users impacted. It returns true if any simplifications were performed.

Definition at line 5427 of file InstructionSimplify.cpp.

References replaceAndRecursivelySimplifyImpl().

Referenced by llvm::SimplifyQuery::getWithInstruction(), and RemovePredecessorAndSimplify().

◆ RegionGraphTraits() [1/2]

llvm::RegionGraphTraits ( MachineRegion  ,
MachineRegionNode   
)

◆ RegionGraphTraits() [2/2]

llvm::RegionGraphTraits ( Region  ,
RegionNode   
)

◆ RegionNodeGraphTraits() [1/2]

llvm::RegionNodeGraphTraits ( MachineRegionNode  ,
MachineBasicBlock  ,
MachineRegion   
)

◆ RegionNodeGraphTraits() [2/2]

llvm::RegionNodeGraphTraits ( RegionNode  ,
BasicBlock  ,
Region   
)

◆ RemapFunction()

void llvm::RemapFunction ( Function F,
ValueToValueMapTy VM,
RemapFlags  Flags = RF_None,
ValueMapTypeRemapper TypeMapper = nullptr,
ValueMaterializer Materializer = nullptr 
)
inline

Remap the operands, metadata, arguments, and instructions of a function.

Calls MapValue() on prefix data, prologue data, and personality function; calls MapMetadata() on each attached MDNode; remaps the argument types using the provided TypeMapper; and calls RemapInstruction() on every instruction.

Definition at line 264 of file ValueMapper.h.

References llvm::ValueMapper::remapFunction().

Referenced by wrapConstantAsMetadata().

◆ remapInstruction()

void llvm::remapInstruction ( Instruction I,
ValueToValueMapTy VMap 
)

◆ RemapInstruction()

void llvm::RemapInstruction ( Instruction I,
ValueToValueMapTy VM,
RemapFlags  Flags = RF_None,
ValueMapTypeRemapper TypeMapper = nullptr,
ValueMaterializer Materializer = nullptr 
)
inline

Convert the instruction operands from referencing the current values into those specified by VM.

If RF_IgnoreMissingLocals is set and an operand can't be found via MapValue(), use the old value. Otherwise assert that this doesn't happen.

Note that MapValue() only returns nullptr for SSA values missing from VM.

Definition at line 251 of file ValueMapper.h.

References llvm::ValueMapper::remapInstruction().

Referenced by assertBranchOrSelectConditionHoisted(), buildClonedLoopBlocks(), CloneAndPruneIntoFromInst(), CloneFunction(), CloneFunctionInto(), CloneLoop(), FoldBranchToCommonDest(), remapInstructionsInBlocks(), shouldRotateLoopExitingLatch(), and UnrollRuntimeLoopRemainder().

◆ remapInstructionsInBlocks()

void llvm::remapInstructionsInBlocks ( const SmallVectorImpl< BasicBlock *> &  Blocks,
ValueToValueMapTy VMap 
)

Remaps instructions in Blocks using the mapping in VMap.

Definition at line 724 of file CloneFunction.cpp.

References RemapInstruction(), RF_IgnoreMissingLocals, and RF_NoModuleLevelChanges.

Referenced by peelLoop(), llvm::InlineFunctionInfo::reset(), and llvm::LoopVersioning::versionLoop().

◆ remove_bad_alloc_error_handler()

void llvm::remove_bad_alloc_error_handler ( )

Restores default bad alloc error handling behavior.

Definition at line 139 of file ErrorHandling.cpp.

References BadAllocErrorHandler, BadAllocErrorHandlerMutex, BadAllocErrorHandlerUserData, and Lock.

Referenced by llvm::ScopedFatalErrorHandler::~ScopedFatalErrorHandler().

◆ remove_fatal_error_handler()

void llvm::remove_fatal_error_handler ( )

Restores default error handling behaviour.

Definition at line 74 of file ErrorHandling.cpp.

References ErrorHandler, ErrorHandlerMutex, ErrorHandlerUserData, and Lock.

Referenced by LLVMResetFatalErrorHandler(), and llvm::ScopedFatalErrorHandler::~ScopedFatalErrorHandler().

◆ remove_if()

template<typename R , typename UnaryPredicate >
auto llvm::remove_if ( R &&  Range,
UnaryPredicate  P 
) -> decltype(adl_begin(Range))

◆ removeAllNonTerminatorAndEHPadInstructions()

unsigned llvm::removeAllNonTerminatorAndEHPadInstructions ( BasicBlock BB)

◆ RemovePredecessorAndSimplify()

void llvm::RemovePredecessorAndSimplify ( BasicBlock BB,
BasicBlock Pred,
DomTreeUpdater DTU = nullptr 
)

Like BasicBlock::removePredecessor, this method is called when we're about to delete Pred as a predecessor of BB.

RemovePredecessorAndSimplify - Like BasicBlock::removePredecessor, this method is called when we're about to delete Pred as a predecessor of BB.

If BB contains any PHI nodes, this drops the entries in the PHI nodes for Pred.

Unlike the removePredecessor method, this attempts to simplify uses of PHI nodes that collapse into identity values. For example, if we have: x = phi(1, 0, 0, 0) y = and x, z

.. and delete the predecessor corresponding to the '1', this will attempt to recursively fold the 'and' to 0.

If BB contains any PHI nodes, this drops the entries in the PHI nodes for Pred.

Unlike the removePredecessor method, this attempts to simplify uses of PHI nodes that collapse into identity values. For example, if we have: x = phi(1, 0, 0, 0) y = and x, z

.. and delete the predecessor corresponding to the '1', this will attempt to recursively fold the and to 0.

Definition at line 643 of file Local.cpp.

References llvm::BasicBlock::begin(), llvm::DomTreeUpdater::deleteEdgeRelaxed(), llvm::BasicBlock::front(), recursivelySimplifyInstruction(), and llvm::BasicBlock::removePredecessor().

Referenced by llvm::SimplifyCFGOptions::setAssumptionCache().

◆ removeUnreachableBlocks()

bool llvm::removeUnreachableBlocks ( Function F,
LazyValueInfo LVI = nullptr,
DomTreeUpdater DTU = nullptr,
MemorySSAUpdater MSSAU = nullptr 
)

◆ removeUnwindEdge()

void llvm::removeUnwindEdge ( BasicBlock BB,
DomTreeUpdater DTU = nullptr 
)

Replace 'BB's terminator with one that does not have an unwind successor block.

Rewrites invoke to call, etc. Updates any PHIs in unwind successor.

Parameters
BBBlock whose terminator will be replaced. Its terminator must have an unwind successor.

Definition at line 2161 of file Local.cpp.

References llvm::CatchSwitchInst::addHandler(), changeToCall(), llvm::CatchSwitchInst::Create(), llvm::CleanupReturnInst::Create(), llvm::DomTreeUpdater::deleteEdgeRelaxed(), llvm::Instruction::eraseFromParent(), llvm::Instruction::getDebugLoc(), llvm::BasicBlock::getTerminator(), llvm_unreachable, llvm::BasicBlock::removePredecessor(), llvm::Value::replaceAllUsesWith(), llvm::Instruction::setDebugLoc(), and llvm::Value::takeName().

Referenced by getKnownAlignment(), mergeCleanupPad(), removeEmptyCleanup(), and SimplifyFunction().

◆ renameModuleForThinLTO()

bool llvm::renameModuleForThinLTO ( Module M,
const ModuleSummaryIndex Index,
SetVector< GlobalValue *> *  GlobalsToImport = nullptr 
)

Perform in-place global value handling on the given Module for exported local functions renamed and promoted for ThinLTO.

Definition at line 309 of file FunctionImportUtils.cpp.

References llvm::FunctionImportGlobalProcessing::run().

Referenced by doImportingForModule(), llvm::FunctionImportGlobalProcessing::FunctionImportGlobalProcessing(), and llvm::lto::thinBackend().

◆ replaceAllDbgUsesWith()

bool llvm::replaceAllDbgUsesWith ( Instruction From,
Value To,
Instruction DomPoint,
DominatorTree DT 
)

Point debug users of From to To or salvage them.

Use this function only when replacing all uses of From with To, with a guarantee that From is going to be deleted.

Follow these rules to prevent use-before-def of To: . If To is a linked Instruction, set DomPoint to To. . If To is an unlinked Instruction, set DomPoint to the Instruction To will be inserted after. . If To is not an Instruction (e.g a Constant), the choice of DomPoint is arbitrary. Pick From for simplicity.

If a debug user cannot be preserved without reordering variable updates or introducing a use-before-def, it is either salvaged (salvageDebugInfo) or deleted. Returns true if any debug users were updated.

Definition at line 1808 of file Local.cpp.

References llvm::DIExpression::appendToStack(), assert(), llvm::Module::getDataLayout(), llvm::Instruction::getModule(), llvm::Type::getPrimitiveSizeInBits(), llvm::DIVariable::getSignedness(), llvm::Value::getType(), isBitCastSemanticsPreserving(), llvm::Type::isIntegerTy(), llvm::Value::isUsedByMetadata(), None, rewriteDebugUsers(), llvm::DIBasicType::Signed, and Signed.

Referenced by llvm::InstCombiner::commonCastTransforms(), getKnownAlignment(), and llvm::InstCombiner::visitZExt().

◆ replaceAndRecursivelySimplify()

bool llvm::replaceAndRecursivelySimplify ( Instruction I,
Value SimpleV,
const TargetLibraryInfo TLI = nullptr,
const DominatorTree DT = nullptr,
AssumptionCache AC = nullptr 
)

Replace all uses of 'I' with 'SimpleV' and simplify the uses recursively.

This first performs a normal RAUW of I with SimpleV. It then recursively attempts to simplify those users updated by the operation. The 'I' instruction must not be equal to the simplified value 'SimpleV'.

The function returns true if any simplifications were performed.

Definition at line 5434 of file InstructionSimplify.cpp.

References assert(), and replaceAndRecursivelySimplifyImpl().

Referenced by despeculateCountZeros(), llvm::SimplifyQuery::getWithInstruction(), and replaceWithConstant().

◆ replaceCreatedSSACopys()

static void llvm::replaceCreatedSSACopys ( PredicateInfo PredInfo,
Function F 
)
static

◆ replaceDbgDeclare()

bool llvm::replaceDbgDeclare ( Value Address,
Value NewAddress,
Instruction InsertBefore,
DIBuilder Builder,
bool  DerefBefore,
int  Offset,
bool  DerefAfter 
)

Replaces llvm.dbg.declare instruction when the address it describes is replaced with a new value.

If Deref is true, an additional DW_OP_deref is prepended to the expression. If Offset is non-zero, a constant displacement is added to the expression (between the optional Deref operations). Offset can be negative.

Definition at line 1520 of file Local.cpp.

References assert(), llvm::Instruction::eraseFromParent(), FindDbgAddrUses(), llvm::ilist_node_with_parent< NodeTy, ParentTy, Options >::getNextNode(), and llvm::DIExpression::prepend().

Referenced by getKnownAlignment(), and replaceDbgDeclareForAlloca().

◆ replaceDbgDeclareForAlloca()

bool llvm::replaceDbgDeclareForAlloca ( AllocaInst AI,
Value NewAllocaAddress,
DIBuilder Builder,
bool  DerefBefore,
int  Offset,
bool  DerefAfter 
)

Replaces llvm.dbg.declare instruction when the alloca it describes is replaced with a new value.

If Deref is true, an additional DW_OP_deref is prepended to the expression. If Offset is non-zero, a constant displacement is added to the expression (between the optional Deref operations). Offset can be negative. The new llvm.dbg.declare is inserted immediately after AI.

Definition at line 1540 of file Local.cpp.

References llvm::ilist_node_with_parent< NodeTy, ParentTy, Options >::getNextNode(), and replaceDbgDeclare().

Referenced by getKnownAlignment(), InlineFunction(), and StackMallocSizeClass().

◆ replaceDbgUsesWithUndef()

bool llvm::replaceDbgUsesWithUndef ( Instruction I)

Replace all the uses of an SSA value in .dbg intrinsics with undef.

This is useful for signaling that a variable, e.g. has been found dead and hence it's unavailable at a given program point. Returns true if the dbg values have been changed.

Definition at line 479 of file Local.cpp.

References findDbgUsers(), llvm::MetadataAsValue::get(), llvm::ValueAsMetadata::get(), llvm::UndefValue::get(), llvm::Value::getType(), llvm::User::setOperand(), and llvm::RegState::Undef.

Referenced by LinearizeExprTree(), and llvm::SimplifyCFGOptions::setAssumptionCache().

◆ replaceDbgValueForAlloca()

void llvm::replaceDbgValueForAlloca ( AllocaInst AI,
Value NewAllocaAddress,
DIBuilder Builder,
int  Offset = 0 
)

Replaces multiple llvm.dbg.value instructions when the alloca it describes is replaced with a new value.

If Offset is non-zero, a constant displacement is added to the expression (after the mandatory Deref). Offset can be negative. New llvm.dbg.value instructions are inserted at the locations of the instructions they replace.

Definition at line 1575 of file Local.cpp.

References llvm::Value::getContext(), llvm::MetadataAsValue::getIfExists(), llvm::LocalAsMetadata::getIfExists(), llvm::Use::getUser(), and replaceOneDbgValueForAlloca().

Referenced by getKnownAlignment().

◆ replaceDominatedUsesWith() [1/2]

unsigned llvm::replaceDominatedUsesWith ( Value From,
Value To,
DominatorTree DT,
const BasicBlockEdge Edge 
)

Replace each use of 'From' with 'To' if that use is dominated by the given edge.

Returns the number of replacements made.

Definition at line 2434 of file Local.cpp.

References llvm::DominatorTree::dominates(), and replaceDominatedUsesWith().

Referenced by getKnownAlignment(), isOnlyReachableViaThisEdge(), and sinkInstruction().

◆ replaceDominatedUsesWith() [2/2]

unsigned llvm::replaceDominatedUsesWith ( Value From,
Value To,
DominatorTree DT,
const BasicBlock BB 
)

Replace each use of 'From' with 'To' if that use is dominated by the end of the given BasicBlock.

Returns the number of replacements made.

Definition at line 2443 of file Local.cpp.

References getParent(), I, llvm::DominatorTreeBase< NodeT, IsPostDom >::properlyDominates(), and replaceDominatedUsesWith().

◆ ReplaceInstWithInst() [1/2]

void llvm::ReplaceInstWithInst ( BasicBlock::InstListType BIL,
BasicBlock::iterator BI,
Instruction I 
)

◆ ReplaceInstWithInst() [2/2]

void llvm::ReplaceInstWithInst ( Instruction From,
Instruction To 
)

Replace the instruction specified by From with the instruction specified by To.

Copies DebugLoc from BI to I, if I doesn't already have a DebugLoc.

Definition at line 274 of file BasicBlockUtils.cpp.

References llvm::BasicBlock::getInstList(), llvm::Instruction::getParent(), and ReplaceInstWithInst().

◆ ReplaceInstWithValue()

void llvm::ReplaceInstWithValue ( BasicBlock::InstListType BIL,
BasicBlock::iterator BI,
Value V 
)

Replace all uses of an instruction (specified by BI) with a value, then remove and delete the original instruction.

Definition at line 240 of file BasicBlockUtils.cpp.

References llvm::iplist_impl< IntrusiveListT, TraitsT >::erase(), llvm::Value::hasName(), I, llvm::Value::replaceAllUsesWith(), and llvm::Value::takeName().

Referenced by ReplaceInstWithInst().

◆ replaceNonLocalUsesWith()

unsigned llvm::replaceNonLocalUsesWith ( Instruction From,
Value To 
)

◆ replaceSymbolicStrideSCEV()

const SCEV * llvm::replaceSymbolicStrideSCEV ( PredicatedScalarEvolution PSE,
const ValueToValueMap PtrToStride,
Value Ptr,
Value OrigPtr = nullptr 
)

Return the SCEV corresponding to a pointer with the symbolic stride replaced with constant one, assuming the SCEV predicate associated with PSE is true.

If necessary this method will version the stride of the pointer according to PtrToStride and therefore add further predicates to PSE.

If OrigPtr is not null, use it to look up the stride value instead of Ptr. PtrToStride provides the mapping between the pointer value and its stride as collected by LoopVectorizationLegality::collectStridedAccess.

Definition at line 145 of file LoopAccessAnalysis.cpp.

References llvm::PredicatedScalarEvolution::addPredicate(), dbgs(), llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::end(), llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::find(), llvm::ScalarEvolution::getEqualPredicate(), llvm::ScalarEvolution::getOne(), llvm::ScalarEvolution::getSCEV(), llvm::PredicatedScalarEvolution::getSCEV(), llvm::PredicatedScalarEvolution::getSE(), llvm::Value::getType(), LLVM_DEBUG, SI, and stripIntegerCast().

Referenced by concatenateVectors(), llvm::LoopAccessInfo::getPSE(), getPtrStride(), hasComputableBounds(), and llvm::RuntimePointerChecking::insert().

◆ report_bad_alloc_error()

void llvm::report_bad_alloc_error ( const char Reason,
bool  GenCrashDiag = true 
)

Reports a bad alloc error, calling any user defined bad alloc error handler.

In contrast to the generic 'report_fatal_error' functions, this function is expected to return, e.g. the user defined error handler throws an exception.

Note: When throwing an exception in the bad alloc handler, make sure that the following unwind succeeds, e.g. do not trigger additional allocations in the unwind chain.

If no error handler is installed (default), then a bad_alloc exception is thrown, if LLVM is compiled with exception support, otherwise an assertion is called.

Definition at line 147 of file ErrorHandling.cpp.

References BadAllocErrorHandler, BadAllocErrorHandlerMutex, BadAllocErrorHandlerUserData, install_out_of_memory_new_handler(), llvm_unreachable, Lock, and write().

Referenced by llvm::SmallVectorTemplateBase< T >::grow(), llvm::SmallVectorBase::grow_pod(), out_of_memory_new_handler(), safe_calloc(), safe_malloc(), safe_realloc(), and llvm::ScopedFatalErrorHandler::~ScopedFatalErrorHandler().

◆ report_fatal_error() [1/5]

void llvm::report_fatal_error ( const char reason,
bool  gen_crash_diag = true 
)

Reports a serious error, calling any installed error handler.

These functions are intended to be used for error conditions which are outside the control of the compiler (I/O errors, invalid user input, etc.)

If no error handler is installed the default is to print the message to standard error, followed by a newline. After the error handler is called this function will call exit(1), it does not return.

Definition at line 82 of file ErrorHandling.cpp.

References report_fatal_error().

◆ report_fatal_error() [2/5]

void llvm::report_fatal_error ( const std::string &  reason,
bool  gen_crash_diag = true 
)

Definition at line 86 of file ErrorHandling.cpp.

References report_fatal_error().

◆ report_fatal_error() [3/5]

void llvm::report_fatal_error ( StringRef  reason,
bool  gen_crash_diag = true 
)

Definition at line 90 of file ErrorHandling.cpp.

References report_fatal_error().

◆ report_fatal_error() [4/5]

void llvm::report_fatal_error ( const Twine reason,
bool  gen_crash_diag = true 
)

◆ report_fatal_error() [5/5]

void llvm::report_fatal_error ( Error  Err,
bool  gen_crash_diag = true 
)

Report a serious error, calling any installed error handler.

See ErrorHandling.h.

Definition at line 140 of file Error.cpp.

Referenced by __jit_debug_register_code(), addData(), llvm::TargetPassConfig::addMachinePasses(), llvm::ThinLTOCodeGenerator::addModule(), llvm::MCJIT::addObjectFile(), llvm::TargetPassConfig::addPass(), llvm::X86FrameLowering::adjustForHiPEPrologue(), llvm::ARMFrameLowering::adjustForSegmentedStacks(), llvm::X86FrameLowering::adjustForSegmentedStacks(), llvm::RegAllocBase::allocatePhysRegs(), allocateSGPR32InputImpl(), AnalyzeReturnValues(), llvm::cl::basic_parser_impl::anchor(), llvm::RuntimeDyldImpl::applyExternalSymbolRelocations(), ARM64EmitUnwindInfo(), llvm::yaml::Stream::begin(), llvm::MachObjectWriter::bindIndirectSymbols(), branchMaxOffsets(), llvm::coro::buildCoroutineFrame(), llvm::coro::Shape::buildFrom(), calculateCXXStateNumbers(), calculateSEHStateNumbers(), llvm::Interpreter::callExternalFunction(), canLowerToLDG(), CC_Lanai32_VarArg(), llvm::AMDGPUCallLowering::CCAssignFnForCall(), llvm::R600TargetLowering::CCAssignFnForCall(), llvm::AArch64TargetLowering::CCAssignFnForCall(), llvm::AMDGPUCallLowering::CCAssignFnForReturn(), llvm::ARMTargetLowering::CCAssignFnForReturn(), llvm::MCELFStreamer::ChangeSection(), llvm::MCObjectStreamer::changeSectionImpl(), checkAddrSpaceIsValidForLibcall(), CheckBundleSubtargets(), checkMachOComdat(), checkScale(), llvm::RegionBase< RegionTraits< Function > >::clearNodeCache(), codegen(), llvm::LTOCodeGenerator::compile(), computeBytesPoppedByCalleeForSRet(), computeCalleeSaveRegisterPairs(), computeDeadSymbols(), computeTargetABI(), ConvertDoubleToBytes(), copyFeaturesToFunction(), llvm::NVPTXInstrInfo::copyPhysReg(), llvm::X86InstrInfo::copyPhysReg(), llvm::TargetMachineBuilder::create(), createBlockExtractorPass(), llvm::MCAsmBackend::createDwoObjectWriter(), llvm::SpecialCaseList::createOrDie(), createPPCMCAsmInfo(), llvm::NVPTXAsmPrinter::doFinalization(), doImportingForModule(), llvm::NVPTXAsmPrinter::doInitialization(), llvm::SplitEditor::dump(), llvm::RISCVRegisterInfo::eliminateFrameIndex(), llvm::MCELFStreamer::EmitBundleAlignMode(), llvm::MCELFStreamer::EmitBundleLock(), llvm::MCELFStreamer::EmitBundleUnlock(), EmitCamlGlobal(), llvm::MCELFStreamer::EmitCommonSymbol(), llvm::MCWinCOFFStreamer::EmitCommonSymbol(), llvm::RuntimeDyldImpl::emitCommonSymbols(), llvm::MipsTargetStreamer::emitDirectiveModuleOddSPReg(), llvm::MCStreamer::EmitDTPRel32Value(), llvm::MCStreamer::EmitDTPRel64Value(), llvm::MachineInstr::emitError(), llvm::AsmPrinter::EmitFunctionEntryLabel(), EmitGCCInlineAsmStr(), llvm::ExecutionEngine::emitGlobals(), llvm::AsmPrinter::EmitGlobalVariable(), llvm::MCStreamer::EmitGPRel32Value(), llvm::MCStreamer::EmitGPRel64Value(), llvm::ThinLTOCodeGenerator::emitImports(), llvm::BPFTargetLowering::EmitInstrWithCustomInserter(), llvm::SITargetLowering::EmitInstrWithCustomInserter(), llvm::TargetLoweringObjectFileELF::emitModuleMetadata(), llvm::TargetLoweringObjectFileMachO::emitModuleMetadata(), EmitMSInlineAsmStr(), EmitNops(), llvm::MCJIT::emitObject(), llvm::MipsSEFrameLowering::emitPrologue(), llvm::SparcFrameLowering::emitPrologue(), llvm::XCoreFrameLowering::emitPrologue(), llvm::X86FrameLowering::emitPrologue(), llvm::MCStreamer::EmitRawTextImpl(), llvm::RuntimeDyldImpl::emitSection(), llvm::AsmPrinter::EmitSpecialLLVMGlobal(), llvm::MCStreamer::EmitTPRel32Value(), llvm::MCStreamer::EmitTPRel64Value(), llvm::MCELFStreamer::EmitValueImpl(), llvm::MCELFStreamer::EmitValueToAlignment(), llvm::MCObjectStreamer::EmitWeakReference(), encodeBase64StringEntry(), llvm::object::RelocVisitor::error(), ExpandCryptoAEK(), llvm::CodeExtractor::extractCodeRegion(), llvm::SimpleBitstreamCursor::fillCurWord(), FindFirstNonCommonLetter(), llvm::MCJIT::findSymbol(), findUnwindDestinations(), llvm::MCAssembler::Finish(), foldPatchpoint(), FPCCToARMCC(), llvm::MCJIT::generateCodeForModule(), llvm::BitstreamCursor::getAbbrev(), getAccessVariant(), getAddrSpace(), GetAEABIUnwindPersonalityName(), getAlignment(), llvm::object::ELFObjectFile< ELFT >::getArch(), getARMFixupKindMachOInfo(), llvm::object::MachOUniversalBinary::ObjectForArch::getAsArchive(), llvm::object::MachOUniversalBinary::ObjectForArch::getAsObjectFile(), getAssociatedSymbol(), llvm::SelectionDAG::getAtomicMemcpy(), llvm::SelectionDAG::getAtomicMemmove(), llvm::SelectionDAG::getAtomicMemset(), llvm::TargetLoweringObjectFileELF::getCFIPersonalitySymbol(), llvm::MCRegisterInfo::getCodeViewRegNum(), getComdatGVForCOFF(), getComparePred(), getConstant(), llvm::BitcodeReaderValueList::getConstantFwdRef(), llvm::ExecutionEngine::getConstantValue(), llvm::GCOVOptions::getDefault(), llvm::TargetLoweringBase::getDefaultSafeStackPointerLocation(), llvm::HexagonInstrInfo::getDotNewOp(), getEffectiveAArch64CodeModel(), getEffectiveCodeModel(), getEffectivePPCCodeModel(), getEffectiveSparcCodeModel(), getEffectiveSystemZCodeModel(), getEffectiveX86CodeModel(), getEffectiveXCoreCodeModel(), getELFComdat(), llvm::MCSymbolMachO::getEncodedFlags(), getEntryForPercentile(), getExpandedMinMaxOps(), llvm::XCoreTargetObjectFile::getExplicitSectionGlobal(), llvm::TargetLoweringObjectFileMachO::getExplicitSectionGlobal(), llvm::object::ELFObjectFile< ELFT >::getFileFormatName(), getFixupKindLog2Size(), getFixupOffset(), getFrameIndexOperandNum(), llvm::GCModuleInfo::getGCStrategy(), getGlobalVariableI32(), llvm::AMDGPUDisassembler::getInstruction(), getInt(), getLabelOffset(), getLeastCommonType(), getMemCmpLoad(), getMnemonicFromOpcode(), getMOVL(), llvm::RegionBase< RegionTraits< Function > >::getNameStr(), getNarrowIntrinsic(), getOrInsertGlobal(), getPassInfo(), getPassNameAndInstanceNum(), getPointerOperandIndex(), llvm::RTDyldMemoryManager::getPointerToNamedFunction(), GetPromotionOpcode(), getRegClassForUnfoldedLoad(), llvm::LanaiTargetLowering::getRegisterByName(), llvm::SparcTargetLowering::getRegisterByName(), llvm::AVRTargetLowering::getRegisterByName(), llvm::HexagonTargetLowering::getRegisterByName(), llvm::SITargetLowering::getRegisterByName(), llvm::MipsTargetLowering::getRegisterByName(), llvm::PPCTargetLowering::getRegisterByName(), llvm::X86TargetLowering::getRegisterByName(), llvm::TargetLowering::getRegisterByName(), llvm::object::ELFObjectFile< ELFT >::getRel(), llvm::object::ELFObjectFile< ELFT >::getRela(), getRelaxedOpcode(), llvm::object::ELFObjectFile< ELFT >::getRelocatedSection(), getRelocType(), llvm::object::ELFObjectFile< ELFT >::getRelSection(), llvm::X86RegisterInfo::getReservedRegs(), getRetpolineSymbol(), GetScratchRegister(), getSEHRegistrationNodeSize(), getSignature(), getStruct(), llvm::object::ELFObjectFile< ELFT >::getSymbol(), llvm::MachObjectWriter::getSymbolAddress(), llvm::MCJIT::getSymbolAddress(), llvm::object::COFFObjectFile::getSymbolAuxData(), llvm::object::MachOObjectFile::getSymbolByIndex(), llvm::SelectionDAG::getSymbolFunctionGlobalAddress(), llvm::object::MachOObjectFile::getSymbolIndex(), getSymbolOffsetImpl(), getSymbolValue(), llvm::HexagonTargetLowering::getTargetNodeName(), llvm::TargetLoweringObjectFile::getTTypeReference(), getUnderlyingArgReg(), getUniformBase(), getWasmComdat(), llvm::TargetFrameLowering::getWinEHParentFrameOffset(), HasConditionalBranch(), llvm::BitCodeAbbrevOp::hasEncodingData(), llvm::RISCVFrameLowering::hasFP(), HasSecRelSymbolRef(), llvm::HexagonMCELFStreamer::HexagonMCEmitCommonSymbol(), inBytes(), incrementLoc(), INITIALIZE_PASS(), llvm::MCObjectFileInfo::InitMCObjectFileInfo(), llvm::X86FrameLowering::inlineStackProbe(), insertCall(), llvm::RISCVInstrInfo::insertIndirectBranch(), insertSignalHandler(), insertSpills(), is_ns_word_char(), isAssociative(), llvm::AsmPrinter::isBlockOnlyReachableByFallthrough(), isDirectCall(), isInSymtab(), isKnownTypeIdMember(), llvm::X86Subtarget::isLegalToCallImmediateAddr(), llvm::SelectionDAGISel::isOrEquivalentToAdd(), isSortedByValueNo(), isThumbFunc(), llvm::MCAsmLayout::layoutFragment(), LLVMGetSectionContents(), LLVMGetSectionName(), LLVMGetSymbolAddress(), LLVMGetSymbolName(), LLVMMoveToContainingSection(), LLVMVerifyFunction(), LLVMVerifyModule(), llvm::RuntimeDyld::loadObject(), llvm::ExecutionEngine::LoadValueFromMemory(), llvm::lto::localCache(), lookupFunction(), LowerADJUST_TRAMPOLINE(), llvm::SITargetLowering::LowerCall(), lowerCallResult(), llvm::SITargetLowering::LowerCallResult(), LowerCallResult(), llvm::AsmPrinter::lowerConstant(), LowerDYNAMIC_STACKALLOC(), llvm::SparcTargetLowering::LowerFormalArguments_32(), LowerInterruptReturn(), llvm::IntrinsicLowering::LowerIntrinsicCall(), lowerMSABitClearImm(), LowerMUL(), llvm::MipsMCInstLower::LowerOperand(), llvm::BPFTargetLowering::LowerOperation(), llvm::RISCVTargetLowering::LowerOperation(), lowerRegToMasks(), LowerRISCVMachineOperandToMCOperand(), LowerVectorINT_TO_FP(), makeCombineInst(), llvm::TargetLowering::makeLibCall(), mapArchToCVCPUType(), MarkEHGuard(), MarkEHRegistrationNode(), mayTailCallThisCC(), llvm::MCELFStreamer::MCELFStreamer(), mergeTypeForSet(), llvm::MipsSubtarget::MipsSubtarget(), moveSpillUsesAfterCoroBegin(), llvm::TargetLoweringBase::needsFixedCatchObjects(), needsRuntimeRegistrationOfSectionRange(), llvm::EscapeEnumerator::Next(), llvm::DataLayout::operator==(), llvm::LTOCodeGenerator::optimize(), optimizeCall(), llvm::SymbolRewriter::RewriteMapParser::parse(), llvm::DWARFDebugFrame::parse(), llvm::TargetLowering::ParseConstraints(), parseRefinementStep(), Passv64i1ArgInRegs(), patchMatchingInput(), pickOpcodeForVT(), llvm::sys::fs::recursive_directory_iterator::pop(), llvm::PPCSubtarget::PPCSubtarget(), PrepareCall(), llvm::MCSymbol::print(), llvm::WebAssemblyAsmPrinter::PrintAsmMemoryOperand(), llvm::WebAssemblyAsmPrinter::PrintAsmOperand(), llvm::XCoreInstPrinter::printInst(), PrintQuotedString(), llvm::NVPTXInstPrinter::printRegName(), llvm::AsmPrinter::PrintSpecial(), llvm::MCSectionELF::PrintSwitchToSection(), llvm::RuntimeDyldCOFFI386::processRelocationRef(), llvm::RuntimeDyldCOFFThumb::processRelocationRef(), llvm::RuntimeDyldELF::processRelocationRef(), llvm::RuntimeDyldCOFFX86_64::processRelocationRef(), pruneCache(), raise_relocation_error(), llvm::SimpleBitstreamCursor::Read(), llvm::BitstreamCursor::ReadAbbrevRecord(), readFloat32(), readFloat64(), readLEB128(), llvm::BitstreamCursor::readRecord(), readString(), readsVCCZ(), readUint32(), readUint8(), readULEB128(), readVarint32(), readVaruint1(), readVaruint32(), recoverFramePointer(), llvm::ARMAsmBackend::relaxInstruction(), removeTailCallAttribute(), ReplaceINTRINSIC_W_CHAIN(), report_fatal_error(), ReportError(), llvm::MCContext::reportError(), reportFastISelFailure(), reportGISelFailure(), reportTranslationError(), ResolveSymbol(), rewriteComdat(), llvm::LoopUnrollAndJamPass::run(), llvm::LoopFullUnrollPass::run(), llvm::LICMPass::run(), llvm::legacy::FunctionPassManager::run(), llvm::ThinLTOCodeGenerator::run(), llvm::VerifierPass::run(), llvm::WholeProgramDevirtPass::run(), llvm::MCJIT::runFunction(), llvm::ExecutionEngine::runFunctionAsMain(), llvm::LiveVariables::runOnMachineFunction(), scavengeFrameVirtualRegs(), llvm::object::COFFObjectFile::section_rel_begin(), llvm::object::ELFObjectFile< ELFT >::section_rel_end(), llvm::Hexagon_MC::selectHexagonCPU(), llvm::SelectionDAGISel::SelectInlineAsmMemoryOperands(), selectJumpTableArmEncoding(), llvm::XCoreTargetObjectFile::SelectSectionForGlobal(), llvm::TargetLoweringObjectFileWasm::SelectSectionForGlobal(), llvm::MCSection::setBundleLockState(), llvm::orc::OrcMCJITReplacement::setProcessAllSections(), shouldAlwaysEmitCompleteClassType(), shouldKeepInEntry(), llvm::BitstreamCursor::skipRecord(), llvm::fuzzerop::SourcePred::SourcePred(), split(), splitBlock(), splitCodeGen(), srcMgrDiagHandler(), llvm::TargetPassConfig::TargetPassConfig(), llvm::object::COFFObjectFile::toSymb(), TypeSizeToSizeIndex(), unpackF64OnRV32DSoftABI(), UnpackFromArgumentSlot(), UpgradeDebugInfo(), llvm::MachineFunction::verify(), llvm::LegalizerInfo::verify(), llvm::AssumptionCacheTracker::verifyAnalysis(), verifyModule(), VerifyVectorType(), VisitGlobalVariableForEmission(), llvm::Interpreter::visitUnreachableInst(), llvm::MCAssembler::writeFragmentPadding(), llvm::MCAssembler::writeSectionData(), llvm::raw_fd_ostream::~raw_fd_ostream(), and llvm::ScopedFatalErrorHandler::~ScopedFatalErrorHandler().

◆ reportAndResetTimings()

void llvm::reportAndResetTimings ( )

If -time-passes has been specified, report the timings immediately and then reset the timers to zero.

If timing is enabled, report the times collected up to now and then reset them.

Definition at line 157 of file PassTimingInfo.cpp.

References assert(), and formatv().

Referenced by llvm::LTOCodeGenerator::compileOptimized(), and llvm::ThinLTOCodeGenerator::run().

◆ reportGISelFailure() [1/2]

void llvm::reportGISelFailure ( MachineFunction MF,
const TargetPassConfig TPC,
MachineOptimizationRemarkEmitter MORE,
MachineOptimizationRemarkMissed R 
)

◆ reportGISelFailure() [2/2]

void llvm::reportGISelFailure ( MachineFunction MF,
const TargetPassConfig TPC,
MachineOptimizationRemarkEmitter MORE,
const char PassName,
StringRef  Msg,
const MachineInstr MI 
)

◆ ResetStatistics()

void llvm::ResetStatistics ( )

Reset the statistics.

This can be used to zero and de-register the statistics in order to measure a compilation.

When this function begins to call destructors prior to returning, all statistics will be zero and unregistered. However, that might not remain the case by the time this function finishes returning. Whether update from other threads are lost or merely deferred until during the function return is timing sensitive.

Callers who intend to use this to measure statistics for a single compilation should ensure that no compilations are in progress at the point this function is called and that only one compilation executes until calling GetStatistics().

Definition at line 266 of file Statistic.cpp.

◆ resolveTypes()

RecTy * llvm::resolveTypes ( RecTy T1,
RecTy T2 
)

Find a common type that T1 and T2 convert to.

Return 0 if no such type exists.

Definition at line 255 of file Record.cpp.

References llvm::RecTy::getListTy(), resolveRecordTypes(), T1, and llvm::RecTy::typeIsConvertibleTo().

Referenced by llvm::RecordRecTy::classes_end().

◆ RestorePrettyStackState()

void llvm::RestorePrettyStackState ( const void *  State)

Restores the topmost element of the "pretty" stack state to State, which should come from a previous call to SavePrettyStackState().

This is useful when using a CrashRecoveryContext in code that also uses PrettyStackTraceEntries, to make sure the stack that's printed if a crash happens after a crash that's been recovered by CrashRecoveryContext doesn't have frames on it that were added in code unwound by the CrashRecoveryContext.

Definition at line 201 of file PrettyStackTrace.cpp.

References PrettyStackTraceHead.

Referenced by llvm::PrettyStackTraceProgram::PrettyStackTraceProgram().

◆ RetCC_ARM_AAPCS_Custom_f64()

static bool llvm::RetCC_ARM_AAPCS_Custom_f64 ( unsigned ValNo,
MVT ValVT,
MVT LocVT,
CCValAssign::LocInfo LocInfo,
ISD::ArgFlagsTy ArgFlags,
CCState State 
)
static

Definition at line 155 of file ARMCallingConv.h.

References RetCC_ARM_APCS_Custom_f64().

◆ RetCC_ARM_APCS_Custom_f64()

static bool llvm::RetCC_ARM_APCS_Custom_f64 ( unsigned ValNo,
MVT ValVT,
MVT LocVT,
CCValAssign::LocInfo LocInfo,
ISD::ArgFlagsTy ArgFlags,
CCState State 
)
static

Definition at line 144 of file ARMCallingConv.h.

References f64RetAssign(), and llvm::MVT::v2f64.

Referenced by RetCC_ARM_AAPCS_Custom_f64().

◆ returnTypeIsEligibleForTailCall()

bool llvm::returnTypeIsEligibleForTailCall ( const Function F,
const Instruction I,
const ReturnInst Ret,
const TargetLoweringBase TLI 
)

◆ reverse() [1/2]

template<typename ContainerTy >
auto llvm::reverse ( ContainerTy &&  C,
typename std::enable_if< has_rbegin< ContainerTy >::value >::type = nullptr 
) -> decltype(make_range(C.rbegin(), C.rend()))

Definition at line 267 of file STLExtras.h.

References C, and make_range().

Referenced by llvm::InstCombineWorklist::AddInitialGroup(), addLoopIntoQueue(), analyzeArguments(), analyzeStandardArguments(), AppendEndToFunction(), llvm::DebugLoc::appendInlinedAt(), llvm::internal::appendLoopsToWorklist(), llvm::DomTreeBuilder::SemiNCAInfo< DomTreeT >::ApplyUpdates(), llvm::LazyCallGraph::buildRefSCCs(), castToIncrementInst(), llvm::WebAssemblyDebugValueManager::clone(), cloneLoopNest(), llvm::detail::IEEEFloat::compareAbsoluteValue(), llvm::ScalarEvolution::computeAccessFunctions(), llvm::MCCodePaddingPolicy::computeFirstWindowPenaltyWeight(), ComputePostOrders(), computeUnlikelySuccessors(), ConstantFoldLoadFromConstPtr(), containsSafePHI(), deduceFunctionAttributeInRPO(), llvm::AsmPrinter::doFinalization(), dumpRelocs(), llvm::XCoreFrameLowering::emitPrologue(), llvm::ARMException::endFunction(), findBuildAggregate(), findBuildVector(), llvm::CodeExtractor::findInputsOutputs(), findStartOfTree(), fixPhis(), foldBitcastedFPLogic(), llvm::DomTreeBuilder::SemiNCAInfo< DomTreeT >::ChildrenGetter< Inverse >::Get(), llvm::SelectionDAG::getConstant(), getCopyToParts(), GetDepth(), llvm::LoopInfoBase< BasicBlock, Loop >::getLoopsInPreorder(), getQualifiedName(), getRetpolineSymbol(), llvm::ScalarEvolution::getSCEVAtScope(), getSchedRegions(), getShiftAmountTyForConstant(), greaterWithBias(), handlePhiDef(), hasAnyNonFlatUseOfReg(), hasValueBeenRAUWed(), hasVulnerableLoad(), hoistRegion(), incorporateNewSCCRange(), INITIALIZE_PASS(), insertCSRRestores(), llvm::PopulateLoopsDFS< BlockT, LoopT >::insertIntoLoop(), llvm::xray::Profile::internPath(), isEFLAGSLive(), isProfitableChain(), isSafeToSpeculateStore(), isWeak(), llvm::sys::DynamicLibrary::HandleSet::LibLookup(), makeBitReverse(), mapBinOpcode(), llvm::WebAssemblyDebugValueManager::move(), MoveAndTeeForMultiUse(), moveHeaderPhiOperandsToForeBlocks(), moveUp(), llvm::X86FrameLowering::orderFrameObjects(), patchAndReplaceAllUsesWith(), llvm::itanium_demangle::FloatLiteralImpl< Float >::printLeft(), llvm::xray::profileFromTrace(), llvm::SyntheticCountsUtils< CallGraphType >::propagate(), llvm::GVNHoist::rank(), llvm::WebAssemblyExceptionInfo::recalculate(), rematerializeLiveValues(), llvm::LazyCallGraph::RefSCC::removeInternalRefEdge(), ReplaceFoldableUses(), llvm::AArch64FrameLowering::restoreCalleeSavedRegisters(), llvm::WebAssemblyException::reverseBlock(), llvm::LoopBase< BasicBlock, Loop >::reverseBlock(), llvm::InlinerPass::run(), llvm::FunctionToLoopPassAdaptor< LoopPassT >::run(), llvm::ModuleToPostOrderCGSCCPassAdaptor< CGSCCPassT >::run(), llvm::LPPassManager::runOnFunction(), llvm::BlockFrequencyInfoImpl< llvm::BitTracker >::setBlockFreq(), llvm::MipsCallLowering::MipsHandler::setLeastSignificantFirst(), shouldInstrumentReadWriteFromAddress(), sinkRegion(), sortLocalVars(), SortNonLocalDepInfoCache(), speculatePHIs(), llvm::Thumb1FrameLowering::spillCalleeSavedRegisters(), llvm::ExecutionEngine::StoreValueToMemory(), llvm::LazyCallGraph::RefSCC::switchInternalEdgeToRef(), llvm::JumpThreadingPass::ThreadGuard(), llvm::ScaledNumberBase::toString(), llvm::APInt::toString(), tryToVectorizeHorReductionOrInstOperands(), llvm::MCJIT::UnregisterJITEventListener(), llvm::OrcCBindingsStack::UnregisterJITEventListener(), and unswitchTrivialSwitch().

◆ reverse() [2/2]

template<typename ContainerTy >
auto llvm::reverse ( ContainerTy &&  C,
typename std::enable_if<!has_rbegin< ContainerTy >::value >::type = nullptr 
) -> decltype(make_range(llvm::make_reverse_iterator(std::end(C)), llvm::make_reverse_iterator(std::begin(C))))

◆ reverseBits()

template<typename T >
T llvm::reverseBits ( T  Val)

◆ ReverseStackTrace()

PrettyStackTraceEntry* llvm::ReverseStackTrace ( PrettyStackTraceEntry Head)

Definition at line 46 of file PrettyStackTrace.cpp.

Referenced by PrintStack().

◆ rewriteAArch64FrameIndex()

bool llvm::rewriteAArch64FrameIndex ( MachineInstr MI,
unsigned  FrameRegIdx,
unsigned  FrameReg,
int &  Offset,
const AArch64InstrInfo TII 
)

◆ rewriteARMFrameIndex()

bool llvm::rewriteARMFrameIndex ( MachineInstr MI,
unsigned  FrameRegIdx,
unsigned  FrameReg,
int &  Offset,
const ARMBaseInstrInfo TII 
)

◆ rewriteT2FrameIndex()

bool llvm::rewriteT2FrameIndex ( MachineInstr MI,
unsigned  FrameRegIdx,
unsigned  FrameReg,
int &  Offset,
const ARMBaseInstrInfo TII 
)

◆ right_justify()

FormattedString llvm::right_justify ( StringRef  Str,
unsigned  Width 
)
inline

right_justify - add spaces before string so total output is Width characters.

If Str is larger that Width, full string is written with no padding.

Definition at line 152 of file Format.h.

References llvm::FormattedString::JustifyRight.

Referenced by printSymbolizedStackTrace().

◆ runFuzzerOnInputs()

int llvm::runFuzzerOnInputs ( int  ArgC,
char ArgV[],
FuzzerTestFun  TestOne,
FuzzerInitFun  Init = [](int *, char ***) { return 0; } 
)

Runs a fuzz target on the inputs specified on the command line.

Useful for testing fuzz targets without linking to libFuzzer. Finds inputs in the argument list in a libFuzzer compatible way.

Definition at line 139 of file FuzzerCLI.cpp.

References Arg, llvm::StringRef::equals(), errs(), llvm::MemoryBuffer::getFile(), I, and llvm::StringRef::startswith().

◆ runIPSCCP()

bool llvm::runIPSCCP ( Module M,
const DataLayout DL,
const TargetLibraryInfo TLI,
function_ref< AnalysisResultsForFn(Function &)>  getAnalysis 
)

◆ RunningWindows8OrGreater()

bool llvm::RunningWindows8OrGreater ( )

Determines if the program is running on Windows 8 or newer.

This reimplements one of the helpers in the Windows 8.1 SDK, which are intended to supercede raw calls to GetVersionEx. Old SDKs, Cygwin, and MinGW don't yet have VersionHelpers.h, so we have our own helper.

Referenced by llvm::raw_fd_ostream::~raw_fd_ostream().

◆ safe_calloc()

LLVM_ATTRIBUTE_RETURNS_NONNULL void* llvm::safe_calloc ( size_t  Count,
size_t  Sz 
)
inline

◆ safe_malloc()

LLVM_ATTRIBUTE_RETURNS_NONNULL void* llvm::safe_malloc ( size_t  Sz)
inline

◆ safe_realloc()

LLVM_ATTRIBUTE_RETURNS_NONNULL void* llvm::safe_realloc ( void *  Ptr,
size_t  Sz 
)
inline

◆ salvageDebugInfo()

bool llvm::salvageDebugInfo ( Instruction I)

◆ sampleprof_category()

const std::error_category & llvm::sampleprof_category ( )

Definition at line 81 of file SampleProf.cpp.

References ErrorCategory.

Referenced by make_error_code().

◆ SaturatingAdd()

template<typename T >
std::enable_if<std::is_unsigned<T>::value, T>::type llvm::SaturatingAdd ( T  X,
T  Y,
bool ResultOverflowed = nullptr 
)

Add two unsigned integers, X and Y, of type T.

Clamp the result to the maximum representable value of T on overflow. ResultOverflowed indicates if the result is larger than the maximum representable value of type T.

Definition at line 776 of file MathExtras.h.

References llvm::NVPTXISD::Dummy, max(), and Y.

Referenced by computeSyntheticCounts(), llvm::InstrProfRecord::getValueForSite(), llvm::CGProfilePass::run(), SaturatingMultiply(), and SaturatingMultiplyAdd().

◆ SaturatingMultiply()

template<typename T >
std::enable_if<std::is_unsigned<T>::value, T>::type llvm::SaturatingMultiply ( T  X,
T  Y,
bool ResultOverflowed = nullptr 
)

Multiply two unsigned integers, X and Y, of type T.

Clamp the result to the maximum representable value of T on overflow. ResultOverflowed indicates if the result is larger than the maximum representable value of type T.

Definition at line 793 of file MathExtras.h.

References llvm::NVPTXISD::Dummy, Log2_64(), max(), SaturatingAdd(), and Y.

Referenced by SaturatingMultiplyAdd(), llvm::InstrProfValueSiteRecord::scale(), and llvm::InstrProfRecord::scale().

◆ SaturatingMultiplyAdd()

template<typename T >
std::enable_if<std::is_unsigned<T>::value, T>::type llvm::SaturatingMultiplyAdd ( T  X,
T  Y,
T  A,
bool ResultOverflowed = nullptr 
)

Multiply two unsigned integers, X and Y, and add the unsigned integer, A to the product.

Clamp the result to the maximum representable value of T on overflow. ResultOverflowed indicates if the result is larger than the maximum representable value of type T.

Definition at line 839 of file MathExtras.h.

References llvm::NVPTXISD::Dummy, huge_valf, SaturatingAdd(), and SaturatingMultiply().

Referenced by llvm::sampleprof::SampleRecord::addCalledTarget(), llvm::sampleprof::FunctionSamples::addHeadSamples(), llvm::sampleprof::SampleRecord::addSamples(), llvm::sampleprof::FunctionSamples::addTotalSamples(), llvm::InstrProfValueSiteRecord::merge(), and llvm::InstrProfRecord::merge().

◆ SavePrettyStackState()

const void * llvm::SavePrettyStackState ( )

Returns the topmost element of the "pretty" stack state.

Definition at line 193 of file PrettyStackTrace.cpp.

References PrettyStackTraceHead.

Referenced by llvm::PrettyStackTraceProgram::PrettyStackTraceProgram().

◆ ScalarAddx2()

class llvm::RegisterBankInfo llvm::ScalarAddx2 ( 0x00FF  ,
GPR   
)

◆ scalbn()

APFloat llvm::scalbn ( APFloat  X,
int  Exp,
APFloat::roundingMode  RM 
)
inline

◆ scaleBranchCount()

static uint32_t llvm::scaleBranchCount ( uint64_t  Count,
uint64_t  Scale 
)
inlinestatic

Scale an individual branch count.

Scale a 64-bit weight down to 32-bits using Scale.

Definition at line 220 of file Instrumentation.h.

References assert(), and max().

Referenced by llvm::pgo::promoteIndirectCall(), and setProfMetadata().

◆ scaleShuffleMask()

template<typename T >
void llvm::scaleShuffleMask ( int  Scale,
ArrayRef< T Mask,
SmallVectorImpl< T > &  ScaledMask 
)

Helper function to scale a shuffle or target shuffle mask, replacing each mask index with the scaled sequential indices for an equivalent narrowed mask.

This is the reverse process to canWidenShuffleElements, but can always succeed.

Definition at line 1566 of file X86ISelLowering.h.

References assert(), llvm::SmallVectorImpl< T >::assign(), and llvm::ArrayRef< T >::size().

◆ scavengeFrameVirtualRegs()

void llvm::scavengeFrameVirtualRegs ( MachineFunction MF,
RegScavenger RS 
)

◆ scc_begin()

template<class T >
scc_iterator<T> llvm::scc_begin ( const T G)

◆ scc_end()

template<class T >
scc_iterator<T> llvm::scc_end ( const T G)

Construct the end iterator for a deduced graph type T.

Definition at line 231 of file SCCIterator.h.

References llvm::scc_iterator< GraphT, GT >::end().

◆ SCEVExprContains()

template<typename PredTy >
bool llvm::SCEVExprContains ( const SCEV Root,
PredTy  Pred 
)

◆ ScopedPrinter::printHex< support::ulittle16_t >()

template<>
void llvm::ScopedPrinter::printHex< support::ulittle16_t > ( StringRef  Label,
support::ulittle16_t  Value 
)
inline

Definition at line 356 of file ScopedPrinter.h.

◆ SearchForAddressOfSpecialSymbol()

void* llvm::SearchForAddressOfSpecialSymbol ( const char SymbolName)

◆ seq()

template<typename ValueT >
iterator_range<detail::value_sequence_iterator<ValueT> > llvm::seq ( ValueT  Begin,
ValueT  End 
)

Definition at line 76 of file Sequence.h.

Referenced by CompareValueComplexity().

◆ set_difference()

template<class S1Ty , class S2Ty >
S1Ty llvm::set_difference ( const S1Ty &  S1,
const S2Ty &  S2 
)

set_difference(A, B) - Return A - B

Definition at line 51 of file SetOperations.h.

References SI.

Referenced by llvm::DeltaAlgorithm::~DeltaAlgorithm().

◆ set_fixed_execution_hash_seed()

void llvm::set_fixed_execution_hash_seed ( uint64_t  fixed_value)

Override the execution seed with a fixed value.

This hashing library uses a per-execution seed designed to change on each run with high probability in order to ensure that the hash codes are not attackable and to ensure that output which is intended to be stable does not rely on the particulars of the hash codes produced.

That said, there are use cases where it is important to be able to reproduce exactly a specific behavior. To that end, we provide a function which will forcibly set the seed to a fixed value. This must be done at the start of the program, before any hashes are computed. Also, it cannot be undone. This makes it thread-hostile and very hard to use outside of immediately on start of a simple program designed for reproducible behavior.

Definition at line 27 of file Hashing.cpp.

References llvm::hashing::detail::fixed_seed_override.

◆ set_intersect()

template<class S1Ty , class S2Ty >
void llvm::set_intersect ( S1Ty &  S1,
const S2Ty &  S2 
)

set_intersect(A, B) - Compute A := A ^ B Identical to set_intersection, except that it works on set<>'s and is nicer to use.

Functionally, this iterates through S1, removing elements that are not contained in S2.

Definition at line 40 of file SetOperations.h.

References E, and I.

Referenced by mergeConditionalStores(), and sinkRegion().

◆ set_subtract()

template<class S1Ty , class S2Ty >
void llvm::set_subtract ( S1Ty &  S1,
const S2Ty &  S2 
)

set_subtract(A, B) - Compute A := A - B

Definition at line 63 of file SetOperations.h.

References SI.

Referenced by matchPair().

◆ set_thread_name()

void llvm::set_thread_name ( const Twine Name)

Set the name of the current thread.

Setting a thread's name can be helpful for enabling useful diagnostics under a debugger or when logging. The level of support for setting a thread's name varies wildly across operating systems, and we only make a best effort to perform the operation on supported platforms. No indication of success or failure is returned.

Referenced by call_once(), and llvm_is_multithreaded().

◆ set_union()

template<class S1Ty , class S2Ty >
bool llvm::set_union ( S1Ty &  S1,
const S2Ty &  S2 
)

set_union(A, B) - Compute A := A u B, return whether A changed.

Definition at line 23 of file SetOperations.h.

References SI.

Referenced by matchPair().

◆ setCurrentDebugType()

void llvm::setCurrentDebugType ( const char Type)

setCurrentDebugType - Set the current debug type, as if the -debug-only=X option were specified.

Note that DebugFlag also needs to be set to true for debug output to be produced.

Definition at line 69 of file Debug.cpp.

References setCurrentDebugTypes().

◆ setCurrentDebugTypes()

void llvm::setCurrentDebugTypes ( const char **  Types,
unsigned  Count 
)

setCurrentDebugTypes - Set the current debug type, as if the -debug-only=X,Y,Z option were specified.

Set the current debug type, as if the -debug-only=X option were specified.

Note that DebugFlag also needs to be set to true for debug output to be produced.

Definition at line 73 of file Debug.cpp.

References CurrentDebugType, Debug, DebugBufferSize, DebugFlag, llvm::cl::Hidden, llvm::cl::init(), llvm::cl::location(), llvm::StringRef::split(), and T.

Referenced by isCurrentDebugType(), and setCurrentDebugType().

◆ setDirectAddressInInstr()

static void llvm::setDirectAddressInInstr ( MachineInstr MI,
unsigned  Operand,
unsigned  Reg 
)
inlinestatic

Replace the address used in the instruction with the direct memory reference.

Definition at line 133 of file X86InstrBuilder.h.

References llvm::MachineInstr::getOperand(), llvm::MachineOperand::setImm(), and llvm::MachineOperand::setReg().

Referenced by llvm::X86TargetLowering::EmitInstrWithCustomInserter().

◆ setIrrLoopHeaderMetadata()

void llvm::setIrrLoopHeaderMetadata ( Module M,
Instruction TI,
uint64_t  Count 
)

◆ setMod()

LLVM_NODISCARD ModRefInfo llvm::setMod ( const ModRefInfo  MRI)
inline

Definition at line 160 of file AliasAnalysis.h.

References MustMod.

Referenced by llvm::BasicAAResult::getModRefInfo().

◆ setModAndRef()

LLVM_NODISCARD ModRefInfo llvm::setModAndRef ( const ModRefInfo  MRI)
inline

Definition at line 172 of file AliasAnalysis.h.

References MustModRef.

Referenced by llvm::AAResults::getModRefInfo().

◆ setMust()

LLVM_NODISCARD ModRefInfo llvm::setMust ( const ModRefInfo  MRI)
inline

◆ setProfMetadata()

void llvm::setProfMetadata ( Module M,
Instruction TI,
ArrayRef< uint64_t >  EdgeCounts,
uint64_t  MaxCount 
)

◆ setRef()

LLVM_NODISCARD ModRefInfo llvm::setRef ( const ModRefInfo  MRI)
inline

Definition at line 164 of file AliasAnalysis.h.

References MustRef.

Referenced by llvm::BasicAAResult::getModRefInfo().

◆ shiftRight()

static lostFraction llvm::shiftRight ( APFloatBase::integerPart dst,
unsigned int  parts,
unsigned int  bits 
)
static

◆ shouldPrintAfterPass() [1/2]

bool llvm::shouldPrintAfterPass ( )

◆ shouldPrintAfterPass() [2/2]

bool llvm::shouldPrintAfterPass ( StringRef  PassID)

Definition at line 126 of file LegacyPassManager.cpp.

References PrintAfter(), and ShouldPrintBeforeOrAfterPass().

◆ shouldPrintBeforePass() [1/2]

bool llvm::shouldPrintBeforePass ( )

This is a helper to determine whether to print IR before or after a pass.

Definition at line 103 of file LegacyPassManager.cpp.

References PrintBefore().

Referenced by llvm::PrintIRInstrumentation::registerCallbacks(), llvm::PMTopLevelManager::schedulePass(), and llvm::PrintIRInstrumentation::~PrintIRInstrumentation().

◆ shouldPrintBeforePass() [2/2]

bool llvm::shouldPrintBeforePass ( StringRef  PassID)

Definition at line 122 of file LegacyPassManager.cpp.

References PrintBefore(), and ShouldPrintBeforeOrAfterPass().

◆ shouldReverseIterate()

template<class T = void *>
bool llvm::shouldReverseIterate ( )

◆ shouldScheduleAdjacent()

static bool llvm::shouldScheduleAdjacent ( const TargetInstrInfo TII,
const TargetSubtargetInfo TSI,
const MachineInstr FirstMI,
const MachineInstr SecondMI 
)
static

Check if the instr pair, FirstMI and SecondMI, should be fused together.

Given SecondMI, when FirstMI is unspecified, then check if SecondMI may be part of a fused pair at all.

Definition at line 52 of file ARMMacroFusion.cpp.

References llvm::ARMSubtarget::hasFuseAES(), llvm::ARMSubtarget::hasFuseLiterals(), isAESPair(), isLiteralsPair(), and llvm::ARM_MB::ST.

Referenced by createAArch64MacroFusionDAGMutation(), createAMDGPUMacroFusionDAGMutation(), createARMMacroFusionDAGMutation(), createBranchMacroFusionDAGMutation(), createMacroFusionDAGMutation(), createX86MacroFusionDAGMutation(), and fuseInstructionPair().

◆ SignatureFromMVTs()

std::unique_ptr< wasm::WasmSignature > llvm::SignatureFromMVTs ( const SmallVectorImpl< MVT > &  Results,
const SmallVectorImpl< MVT > &  Params 
)

◆ SignBitMustBeZero()

bool llvm::SignBitMustBeZero ( const Value V,
const TargetLibraryInfo TLI 
)

Return true if we can prove that the specified FP value's sign bit is 0.

NaN –> true/false (depending on the NaN's sign bit) +0 –> true -0 –> false x > +0 –> true x < -0 –> false

Definition at line 3023 of file ValueTracking.cpp.

References cannotBeOrderedLessThanZeroImpl().

Referenced by simplifyUnaryIntrinsic().

◆ SignExtend32() [1/2]

template<unsigned B>
constexpr int32_t llvm::SignExtend32 ( uint32_t  X)
inline

Sign-extend the number in the bottom B bits of X to a 32-bit integer.

Requires 0 < B <= 32.

Definition at line 733 of file MathExtras.h.

References B.

Referenced by llvm::PPC::get_VSPLTI_elt(), and getCondCode().

◆ SignExtend32() [2/2]

int32_t llvm::SignExtend32 ( uint32_t  X,
unsigned  B 
)
inline

Sign-extend the number in the bottom B bits of X to a 32-bit integer.

Requires 0 < B < 32.

Definition at line 741 of file MathExtras.h.

References assert(), and B.

◆ SignExtend64() [1/2]

template<unsigned B>
constexpr int64_t llvm::SignExtend64 ( uint64_t  x)
inline

◆ SignExtend64() [2/2]

int64_t llvm::SignExtend64 ( uint64_t  X,
unsigned  B 
)
inline

Sign-extend the number in the bottom B bits of X to a 64-bit integer.

Requires 0 < B < 64.

Definition at line 757 of file MathExtras.h.

References assert(), and B.

◆ SimplifyAddInst()

Value * llvm::SimplifyAddInst ( Value LHS,
Value RHS,
bool  isNSW,
bool  isNUW,
const SimplifyQuery Q 
)

◆ SimplifyAndInst()

Value * llvm::SimplifyAndInst ( Value LHS,
Value RHS,
const SimplifyQuery Q 
)

Given operands for an And, fold the result or return null.

Definition at line 1913 of file InstructionSimplify.cpp.

References RecursionLimit, and SimplifyAndInst().

Referenced by llvm::SimplifyQuery::getWithInstruction(), SimplifyBinOp(), SimplifyInstruction(), SimplifyMulInst(), ThreadCmpOverSelect(), and llvm::InstCombiner::visitAnd().

◆ SimplifyAShrInst()

Value * llvm::SimplifyAShrInst ( Value Op0,
Value Op1,
bool  isExact,
const SimplifyQuery Q 
)

Given operands for a AShr, fold the result or return nulll.

Definition at line 1383 of file InstructionSimplify.cpp.

References RecursionLimit, and SimplifyAShrInst().

Referenced by llvm::SimplifyQuery::getWithInstruction(), SimplifyBinOp(), SimplifyInstruction(), and llvm::InstCombiner::visitAShr().

◆ SimplifyBinOp()

Value * llvm::SimplifyBinOp ( unsigned  Opcode,
Value LHS,
Value RHS,
const SimplifyQuery Q 
)

◆ SimplifyCall() [1/3]

Value * llvm::SimplifyCall ( ImmutableCallSite  CS,
const SimplifyQuery Q 
)

◆ SimplifyCall() [2/3]

Value * llvm::SimplifyCall ( ImmutableCallSite  CS,
Value V,
User::op_iterator  ArgBegin,
User::op_iterator  ArgEnd,
const SimplifyQuery Q 
)

Given a function and iterators over arguments, fold the result or return null.

Definition at line 5177 of file InstructionSimplify.cpp.

References RecursionLimit, and SimplifyCall().

◆ SimplifyCall() [3/3]

Value * llvm::SimplifyCall ( ImmutableCallSite  CS,
Value V,
ArrayRef< Value *>  Args,
const SimplifyQuery Q 
)

Given a function and set of arguments, fold the result or return null.

Definition at line 5183 of file InstructionSimplify.cpp.

References llvm::ArrayRef< T >::begin(), llvm::ArrayRef< T >::end(), RecursionLimit, and SimplifyCall().

◆ SimplifyCastInst()

Value * llvm::SimplifyCastInst ( unsigned  CastOpc,
Value Op,
Type Ty,
const SimplifyQuery Q 
)

Given operands for a CastInst, fold the result or return null.

Definition at line 4360 of file InstructionSimplify.cpp.

References RecursionLimit, and SimplifyCastInst().

Referenced by alwaysAvailable(), constantFoldUser(), llvm::SimplifyQuery::getWithInstruction(), SimplifyInstruction(), and SimplifySubInst().

◆ simplifyCFG()

bool llvm::simplifyCFG ( BasicBlock BB,
const TargetTransformInfo TTI,
const SimplifyCFGOptions Options = {},
SmallPtrSetImpl< BasicBlock *> *  LoopHeaders = nullptr 
)

This function is used to do simplification of a CFG.

For example, it adjusts branches to branches to eliminate the extra hop, it eliminates unreachable basic blocks, and does other peephole optimization of the CFG. It returns true if a modification was made, possibly deleting the basic block that was pointed to. LoopHeaders is an optional input parameter providing the set of loop headers that SimplifyCFG should not eliminate.

Definition at line 6085 of file SimplifyCFG.cpp.

References llvm::Module::getDataLayout(), and llvm::BasicBlock::getModule().

Referenced by createDwarfEHPass(), iterativelySimplifyCFG(), lowerSubFn(), llvm::SimplifyCFGOptions::setAssumptionCache(), and unifyReturnBlockSet().

◆ SimplifyCmpInst()

Value * llvm::SimplifyCmpInst ( unsigned  Predicate,
Value LHS,
Value RHS,
const SimplifyQuery Q 
)

◆ SimplifyExtractElementInst()

Value * llvm::SimplifyExtractElementInst ( Value Vec,
Value Idx,
const SimplifyQuery Q 
)

Given operands for an ExtractElementInst, fold the result or return null.

Definition at line 4288 of file InstructionSimplify.cpp.

References RecursionLimit, and SimplifyExtractElementInst().

Referenced by llvm::SimplifyQuery::getWithInstruction(), SimplifyInstruction(), and llvm::InstCombiner::visitExtractElementInst().

◆ SimplifyExtractValueInst()

Value * llvm::SimplifyExtractValueInst ( Value Agg,
ArrayRef< unsigned Idxs,
const SimplifyQuery Q 
)

Given operands for an ExtractValueInst, fold the result or return null.

Definition at line 4249 of file InstructionSimplify.cpp.

References RecursionLimit, and SimplifyExtractValueInst().

Referenced by llvm::SimplifyQuery::getWithInstruction(), SimplifyInstruction(), and llvm::InstCombiner::visitExtractValueInst().

◆ SimplifyFAddInst()

Value * llvm::SimplifyFAddInst ( Value LHS,
Value RHS,
FastMathFlags  FMF,
const SimplifyQuery Q 
)

Given operands for an FAdd, fold the result or return null.

Definition at line 4634 of file InstructionSimplify.cpp.

References RecursionLimit, and SimplifyFAddInst().

Referenced by llvm::SimplifyQuery::getWithInstruction(), SimplifyBinOp(), SimplifyFPBinOp(), SimplifyInstruction(), and llvm::InstCombiner::visitFAdd().

◆ SimplifyFCmpInst()

Value * llvm::SimplifyFCmpInst ( unsigned  Predicate,
Value LHS,
Value RHS,
FastMathFlags  FMF,
const SimplifyQuery Q 
)

Given operands for an FCmpInst, fold the result or return null.

Definition at line 3739 of file InstructionSimplify.cpp.

References RecursionLimit, and SimplifyFCmpInst().

Referenced by llvm::SimplifyQuery::getWithInstruction(), SimplifyCmpInst(), SimplifyInstruction(), and llvm::InstCombiner::visitFCmpInst().

◆ SimplifyFDivInst()

Value * llvm::SimplifyFDivInst ( Value LHS,
Value RHS,
FastMathFlags  FMF,
const SimplifyQuery Q 
)

Given operands for an FDiv, fold the result or return null.

Definition at line 4690 of file InstructionSimplify.cpp.

References RecursionLimit, and SimplifyFDivInst().

Referenced by llvm::SimplifyQuery::getWithInstruction(), SimplifyBinOp(), SimplifyFPBinOp(), SimplifyInstruction(), and llvm::InstCombiner::visitFDiv().

◆ SimplifyFMulInst()

Value * llvm::SimplifyFMulInst ( Value LHS,
Value RHS,
FastMathFlags  FMF,
const SimplifyQuery Q 
)

Given operands for an FMul, fold the result or return null.

Definition at line 4645 of file InstructionSimplify.cpp.

References RecursionLimit, and SimplifyFMulInst().

Referenced by llvm::SimplifyQuery::getWithInstruction(), SimplifyBinOp(), SimplifyFPBinOp(), SimplifyInstruction(), and llvm::InstCombiner::visitFMul().

◆ SimplifyFPBinOp()

Value * llvm::SimplifyFPBinOp ( unsigned  Opcode,
Value LHS,
Value RHS,
FastMathFlags  FMF,
const SimplifyQuery Q 
)

Given operands for an FP BinaryOperator, fold the result or return null.

In contrast to SimplifyBinOp, try to use FastMathFlag when folding the result. In case we don't need FastMathFlags, simply fall to SimplifyBinOp.

Definition at line 4797 of file InstructionSimplify.cpp.

References RecursionLimit, and SimplifyFPBinOp().

Referenced by llvm::SimplifyQuery::getWithInstruction().

◆ SimplifyFRemInst()

Value * llvm::SimplifyFRemInst ( Value LHS,
Value RHS,
FastMathFlags  FMF,
const SimplifyQuery Q 
)

Given operands for an FRem, fold the result or return null.

Definition at line 4718 of file InstructionSimplify.cpp.

References RecursionLimit, and SimplifyFRemInst().

Referenced by llvm::SimplifyQuery::getWithInstruction(), SimplifyBinOp(), SimplifyInstruction(), and llvm::InstCombiner::visitFRem().

◆ SimplifyFSubInst()

Value * llvm::SimplifyFSubInst ( Value LHS,
Value RHS,
FastMathFlags  FMF,
const SimplifyQuery Q 
)

Given operands for an FSub, fold the result or return null.

Definition at line 4640 of file InstructionSimplify.cpp.

References RecursionLimit, and SimplifyFSubInst().

Referenced by llvm::SimplifyQuery::getWithInstruction(), SimplifyBinOp(), SimplifyFPBinOp(), SimplifyInstruction(), and llvm::InstCombiner::visitFSub().

◆ SimplifyGEPInst()

Value * llvm::SimplifyGEPInst ( Type SrcTy,
ArrayRef< Value *>  Ops,
const SimplifyQuery Q 
)

◆ SimplifyICmpInst()

Value * llvm::SimplifyICmpInst ( unsigned  Predicate,
Value LHS,
Value RHS,
const SimplifyQuery Q 
)

◆ SimplifyInsertElementInst()

Value * llvm::SimplifyInsertElementInst ( Value Vec,
Value Elt,
Value Idx,
const SimplifyQuery Q 
)

◆ SimplifyInsertValueInst()

Value * llvm::SimplifyInsertValueInst ( Value Agg,
Value Val,
ArrayRef< unsigned Idxs,
const SimplifyQuery Q 
)

Given operands for an InsertValueInst, fold the result or return null.

Definition at line 4195 of file InstructionSimplify.cpp.

References RecursionLimit, and SimplifyInsertValueInst().

Referenced by llvm::SimplifyQuery::getWithInstruction(), and SimplifyInstruction().

◆ SimplifyInstruction()

Value * llvm::SimplifyInstruction ( Instruction I,
const SimplifyQuery SQ,
OptimizationRemarkEmitter ORE = nullptr 
)

See if we can compute a simplified version of this instruction.

If not, return null.

If not, this returns null.

If called on unreachable code, the above logic may report that the instruction simplified to itself. Make life easier for users by detecting that case here, returning a safe value instead.

Definition at line 5197 of file InstructionSimplify.cpp.

References llvm::SimplifyQuery::AC, llvm::MCID::Add, llvm::MCID::Call, computeKnownBits(), ConstantFoldInstruction(), llvm::SimplifyQuery::CxtI, llvm::SimplifyQuery::DL, llvm::SimplifyQuery::DT, llvm::ConstantInt::get(), llvm::UndefValue::get(), llvm::InsertValueInst::getAggregateOperand(), llvm::KnownBits::getConstant(), llvm::Instruction::getFastMathFlags(), llvm::InsertValueInst::getIndices(), llvm::InsertValueInst::getInsertedValueOperand(), llvm::Instruction::getOpcode(), llvm::User::getOperand(), llvm::PPC::getPredicate(), llvm::Value::getType(), llvm::SimplifyQuery::getWithInstruction(), llvm::InstrInfoQuery::hasNoSignedWrap(), llvm::InstrInfoQuery::hasNoUnsignedWrap(), I, llvm::ARM_PROC::IE, llvm::SimplifyQuery::IIQ, llvm::KnownBits::isConstant(), llvm::InstrInfoQuery::isExact(), llvm::Type::isIntOrIntVectorTy(), llvm::User::op_begin(), llvm::User::op_end(), llvm::MCID::Select, SimplifyAddInst(), SimplifyAndInst(), SimplifyAShrInst(), SimplifyCall(), SimplifyCastInst(), SimplifyExtractElementInst(), SimplifyExtractValueInst(), SimplifyFAddInst(), SimplifyFCmpInst(), SimplifyFDivInst(), SimplifyFMulInst(), SimplifyFRemInst(), SimplifyFSubInst(), SimplifyGEPInst(), SimplifyICmpInst(), SimplifyInsertElementInst(), SimplifyInsertValueInst(), SimplifyLShrInst(), SimplifyMulInst(), SimplifyOrInst(), SimplifyPHINode(), SimplifySDivInst(), SimplifySelectInst(), SimplifyShlInst(), SimplifyShuffleVectorInst(), SimplifySRemInst(), SimplifySubInst(), SimplifyUDivInst(), SimplifyURemInst(), SimplifyXorInst(), and llvm::SimplifyQuery::TLI.

Referenced by BrPHIToSelect(), CloneAndPruneIntoFromInst(), CloneFunction(), llvm::JumpThreadingPass::DuplicateCondBranchOnPHIIntoPred(), eliminateTailRecursion(), findPHIToPartitionLoops(), FoldCondBranchOnPHI(), FoldTwoEntryPHINode(), getMaxPointerSize(), GetUnderlyingObject(), llvm::SSAUpdater::GetValueInMiddleOfBlock(), llvm::SimplifyQuery::getWithInstruction(), InlineFunction(), isOnlyReachableViaThisEdge(), isZero(), mayLoopAccessLocation(), processPHI(), promoteSingleBlockAlloca(), replaceAndRecursivelySimplifyImpl(), llvm::SCEVExpander::replaceCongruentIVs(), ReplaceUsesOfWith(), runImpl(), shouldRotateLoopExitingLatch(), simplifyAndDCEInstruction(), SimplifyIndirectBrOnSelect(), simplifyLoopAfterUnroll(), simplifyLoopInst(), simplifyOneLoop(), tryUnmergingGEPsAcrossIndirectBr(), and llvm::InstCombiner::visitPHINode().

◆ SimplifyInstructionsInBlock()

bool llvm::SimplifyInstructionsInBlock ( BasicBlock BB,
const TargetLibraryInfo TLI = nullptr 
)

Scan the specified basic block and try to simplify any instructions in it and recursively delete dead instructions.

SimplifyInstructionsInBlock - Scan the specified basic block and try to simplify any instructions in it and recursively delete dead instructions.

This returns true if it changed the code, note that it can delete instructions in other blocks as well in this block.

Definition at line 592 of file Local.cpp.

References assert(), llvm::BasicBlock::back(), llvm::BasicBlock::begin(), E, llvm::BasicBlock::end(), llvm::Module::getDataLayout(), llvm::BasicBlock::getModule(), I, and simplifyAndDCEInstruction().

Referenced by foldUnusualPatterns(), isIgnorableInst(), llvm::SimplifyCFGOptions::setAssumptionCache(), and llvm::JumpThreadingPass::ThreadEdge().

◆ simplifyLoop()

bool llvm::simplifyLoop ( Loop L,
DominatorTree DT,
LoopInfo LI,
ScalarEvolution SE,
AssumptionCache AC,
bool  PreserveLCSSA 
)

◆ simplifyLoopAfterUnroll()

void llvm::simplifyLoopAfterUnroll ( Loop L,
bool  SimplifyIVs,
LoopInfo LI,
ScalarEvolution SE,
DominatorTree DT,
AssumptionCache AC 
)

◆ simplifyLoopIVs()

bool llvm::simplifyLoopIVs ( Loop L,
ScalarEvolution SE,
DominatorTree DT,
LoopInfo LI,
SmallVectorImpl< WeakTrackingVH > &  Dead 
)

SimplifyLoopIVs - Simplify users of induction variables within this loop.

Simplify users of induction variables within this loop.

This does not actually change or add IVs.

Definition at line 974 of file SimplifyIndVar.cpp.

References llvm::BasicBlock::begin(), DEBUG_TYPE, llvm::ScalarEvolution::getDataLayout(), llvm::LoopBase< BlockT, LoopT >::getHeader(), I, Rewriter, and simplifyUsersOfIV().

Referenced by llvm::IVVisitor::getDomTree(), and simplifyLoopAfterUnroll().

◆ SimplifyLShrInst()

Value * llvm::SimplifyLShrInst ( Value Op0,
Value Op1,
bool  isExact,
const SimplifyQuery Q 
)

Given operands for a LShr, fold the result or return null.

Definition at line 1352 of file InstructionSimplify.cpp.

References RecursionLimit, and SimplifyLShrInst().

Referenced by llvm::SimplifyQuery::getWithInstruction(), SimplifyBinOp(), SimplifyInstruction(), and llvm::InstCombiner::visitLShr().

◆ SimplifyMulInst()

Value * llvm::SimplifyMulInst ( Value LHS,
Value RHS,
const SimplifyQuery Q 
)

Given operands for a Mul, fold the result or return null.

Definition at line 902 of file InstructionSimplify.cpp.

References RecursionLimit, and SimplifyMulInst().

Referenced by llvm::SimplifyQuery::getWithInstruction(), SimplifyBinOp(), SimplifyInstruction(), and llvm::InstCombiner::visitMul().

◆ SimplifyOrInst()

Value * llvm::SimplifyOrInst ( Value LHS,
Value RHS,
const SimplifyQuery Q 
)

Given operands for an Or, fold the result or return null.

Definition at line 2049 of file InstructionSimplify.cpp.

References RecursionLimit, and SimplifyOrInst().

Referenced by llvm::SimplifyQuery::getWithInstruction(), SimplifyBinOp(), SimplifyInstruction(), ThreadCmpOverSelect(), and llvm::InstCombiner::visitOr().

◆ SimplifySDivInst()

Value * llvm::SimplifySDivInst ( Value LHS,
Value RHS,
const SimplifyQuery Q 
)

Given operands for an SDiv, fold the result or return null.

Definition at line 1136 of file InstructionSimplify.cpp.

References RecursionLimit, and SimplifySDivInst().

Referenced by llvm::SimplifyQuery::getWithInstruction(), SimplifyBinOp(), SimplifyInstruction(), and llvm::InstCombiner::visitSDiv().

◆ SimplifySelectInst()

Value * llvm::SimplifySelectInst ( Value Cond,
Value TrueVal,
Value FalseVal,
const SimplifyQuery Q 
)

Given operands for a SelectInst, fold the result or return null.

Definition at line 4042 of file InstructionSimplify.cpp.

References RecursionLimit, and SimplifySelectInst().

Referenced by alwaysAvailable(), canonicalizeSaturatedSubtract(), llvm::SimplifyQuery::getWithInstruction(), and SimplifyInstruction().

◆ SimplifyShlInst()

Value * llvm::SimplifyShlInst ( Value Op0,
Value Op1,
bool  isNSW,
bool  isNUW,
const SimplifyQuery Q 
)

Given operands for a Shl, fold the result or return null.

Definition at line 1314 of file InstructionSimplify.cpp.

References RecursionLimit, and SimplifyShlInst().

Referenced by llvm::SimplifyQuery::getWithInstruction(), SimplifyBinOp(), SimplifyInstruction(), and llvm::InstCombiner::visitShl().

◆ SimplifyShuffleVectorInst()

Value * llvm::SimplifyShuffleVectorInst ( Value Op0,
Value Op1,
Constant Mask,
Type RetTy,
const SimplifyQuery Q 
)

Given operands for a ShuffleVectorInst, fold the result or return null.

Definition at line 4493 of file InstructionSimplify.cpp.

References RecursionLimit, and SimplifyShuffleVectorInst().

Referenced by llvm::SimplifyQuery::getWithInstruction(), SimplifyInstruction(), and llvm::InstCombiner::visitShuffleVectorInst().

◆ SimplifySRemInst()

Value * llvm::SimplifySRemInst ( Value LHS,
Value RHS,
const SimplifyQuery Q 
)

Given operands for an SRem, fold the result or return null.

Definition at line 1168 of file InstructionSimplify.cpp.

References RecursionLimit, and SimplifySRemInst().

Referenced by llvm::SimplifyQuery::getWithInstruction(), SimplifyBinOp(), SimplifyInstruction(), and llvm::InstCombiner::visitSRem().

◆ SimplifySubInst()

Value * llvm::SimplifySubInst ( Value LHS,
Value RHS,
bool  isNSW,
bool  isNUW,
const SimplifyQuery Q 
)

Given operands for a Sub, fold the result or return null.

Definition at line 841 of file InstructionSimplify.cpp.

References RecursionLimit, and SimplifySubInst().

Referenced by llvm::SimplifyQuery::getWithInstruction(), SimplifyBinOp(), SimplifyInstruction(), and llvm::InstCombiner::visitSub().

◆ SimplifyUDivInst()

Value * llvm::SimplifyUDivInst ( Value LHS,
Value RHS,
const SimplifyQuery Q 
)

Given operands for a UDiv, fold the result or return null.

Definition at line 1147 of file InstructionSimplify.cpp.

References RecursionLimit, and SimplifyUDivInst().

Referenced by llvm::SimplifyQuery::getWithInstruction(), SimplifyBinOp(), SimplifyInstruction(), and llvm::InstCombiner::visitUDiv().

◆ SimplifyURemInst()

Value * llvm::SimplifyURemInst ( Value LHS,
Value RHS,
const SimplifyQuery Q 
)

Given operands for a URem, fold the result or return null.

Definition at line 1179 of file InstructionSimplify.cpp.

References RecursionLimit, and SimplifyURemInst().

Referenced by llvm::SimplifyQuery::getWithInstruction(), SimplifyBinOp(), SimplifyInstruction(), and llvm::InstCombiner::visitURem().

◆ simplifyUsersOfIV()

bool llvm::simplifyUsersOfIV ( PHINode CurrIV,
ScalarEvolution SE,
DominatorTree DT,
LoopInfo LI,
SmallVectorImpl< WeakTrackingVH > &  Dead,
SCEVExpander Rewriter,
IVVisitor V = nullptr 
)

simplifyUsersOfIV - Simplify instructions that use this induction variable by using ScalarEvolution to analyze the IV's recurrence.

Simplify instructions that use this induction variable by using ScalarEvolution to analyze the IV's recurrence.

Definition at line 963 of file SimplifyIndVar.cpp.

References llvm::LoopInfoBase< BlockT, LoopT >::getLoopFor(), and llvm::Instruction::getParent().

Referenced by llvm::IVVisitor::getDomTree(), simplifyLoopIVs(), and truncateIVUse().

◆ SimplifyXorInst()

Value * llvm::SimplifyXorInst ( Value LHS,
Value RHS,
const SimplifyQuery Q 
)

◆ sinkRegion()

bool llvm::sinkRegion ( DomTreeNode N,
AliasAnalysis AA,
LoopInfo LI,
DominatorTree DT,
TargetLibraryInfo TLI,
TargetTransformInfo TTI,
Loop CurLoop,
AliasSetTracker CurAST,
MemorySSAUpdater MSSAU,
ICFLoopSafetyInfo SafetyInfo,
OptimizationRemarkEmitter ORE 
)

Walk the specified region of the CFG (defined by all blocks dominated by the specified block, and that are in the current loop) in reverse depth first order w.r.t the DominatorTree.

This allows us to visit uses before definitions, allowing us to sink a loop body in one pass without iteration. Takes DomTreeNode, AliasAnalysis, LoopInfo, DominatorTree, DataLayout, TargetLibraryInfo, Loop, AliasSet information for all instructions of the loop and loop safety information as arguments. Diagnostics is emitted via ORE. It returns changed status.

This allows us to visit uses before definitions, allowing us to sink a loop body in one pass without iteration.

Definition at line 418 of file LICM.cpp.

References llvm::LoopBase< BlockT, LoopT >::addBasicBlockToLoop(), llvm::DominatorTreeBase< NodeT, IsPostDom >::addNewBlock(), assert(), llvm::DenseMapBase< DenseMap< KeyT, ValueT, KeyInfoT, BucketT >, KeyT, ValueT, KeyInfoT, BucketT >::begin(), llvm::BasicBlock::begin(), llvm::SmallPtrSetImpl< PtrType >::begin(), llvm::Function::begin(), C, canSinkOrHoistInst(), llvm::DominatorTreeBase< NodeT, IsPostDom >::changeImmediateDominator(), collectChildrenInLoop(), llvm::LoopBase< BlockT, LoopT >::contains(), ControlFlowHoisting, llvm::DenseMapBase< DenseMap< KeyT, ValueT, KeyInfoT, BucketT >, KeyT, ValueT, KeyInfoT, BucketT >::count(), llvm::SmallPtrSetImpl< PtrType >::count(), llvm::BasicBlock::Create(), llvm::BranchInst::Create(), dbgs(), llvm::DominatorTree::dominates(), llvm::SmallPtrSetImplBase::empty(), llvm::DenseMapBase< DenseMap< KeyT, ValueT, KeyInfoT, BucketT >, KeyT, ValueT, KeyInfoT, BucketT >::end(), llvm::BasicBlock::end(), llvm::Function::end(), llvm::SmallPtrSetImpl< PtrType >::erase(), eraseInstruction(), F(), find_if(), llvm::BranchInst::getCondition(), llvm::BasicBlock::getContext(), llvm::LoopBase< BlockT, LoopT >::getHeader(), llvm::LoopBase< BlockT, LoopT >::getLoopPreheader(), llvm::MemorySSAUpdater::getMemorySSA(), llvm::Value::getName(), llvm::DominatorTreeBase< NodeT, IsPostDom >::getNode(), llvm::Instruction::getParent(), llvm::BasicBlock::getParent(), llvm::LoopBase< BlockT, LoopT >::getParentLoop(), llvm::BasicBlock::getSingleSuccessor(), llvm::BranchInst::getSuccessor(), llvm::BasicBlock::getTerminator(), llvm::Loop::hasLoopInvariantOperands(), I, llvm::SmallPtrSetImpl< PtrType >::insert(), inSubLoop(), llvm::BranchInst::isConditional(), isInstructionTriviallyDead(), isNotUsedOrFreeInLoop(), LLVM_DEBUG, llvm::Instruction::mayHaveSideEffects(), llvm::BasicBlock::moveBefore(), pred_size(), predecessors(), ReplaceInstWithInst(), reverse(), salvageDebugInfo(), set_intersect(), sink(), llvm::SmallPtrSetImplBase::size(), succ_begin(), succ_end(), VerifyMemorySSA, llvm::MemorySSA::verifyMemorySSA(), and llvm::MemorySSAUpdater::wireOldPredecessorsToNewImmediatePredecessor().

Referenced by createLICMPass().

◆ size()

template<typename R >
auto llvm::size ( R &&  Range,
typename std::enable_if< std::is_same< typename std::iterator_traits< decltype(Range.begin())>::iterator_category, std::random_access_iterator_tag >::value, void >::type = nullptr 
) -> decltype(std::distance(Range.begin(), Range.end()))

Get the size of a range.

This is a wrapper function around std::distance which is only enabled when the operation is O(1).

Definition at line 1167 of file STLExtras.h.

Referenced by llvm::User::allocHungoffUses(), llvm::BitVector::any(), llvm::BitVector::anyCommon(), llvm::BitcodeReaderValueList::assignValue(), llvm::MutableArrayRef< BitWord >::back(), BBHasFallthrough(), llvm::rdf::DataFlowGraph::DefStack::bottom(), llvm::BTFDebug::BTFDebug(), llvm::pdb::HashTable< llvm::pdb::SrcHeaderBlockEntry, llvm::pdb::StringTableHashTraits >::calculateSerializedLength(), CC_Sparc64_Full(), llvm::codeview::DebugStringTableSubsection::classof(), llvm::iplist_impl< simple_ilist< MachineInstr, Options... >, ilist_traits< MachineInstr > >::clearAndLeakNodesUnsafely(), llvm::BitVector::clearBitsNotInMask(), llvm::pdb::HashTable< llvm::pdb::SrcHeaderBlockEntry, llvm::pdb::StringTableHashTraits >::commit(), llvm::HexagonEvaluator::composeWithSubRegIndex(), llvm::ValueEnumerator::computeBitsRequiredForTypeIndicies(), llvm::LegalizerInfo::computeTables(), llvm::ListInit::convertInitializerTo(), llvm::ListInit::convertInitListSlice(), convertUTF8Sequence(), llvm::BitVector::count(), createPGOInstrumentationUseLegacyPass(), createPrivateNonConstGlobalForString(), llvm::AArch64_AM::decodeLogicalImmediate(), DecodeVLD1DupInstruction(), DecodeVLD1LN(), DecodeVLD2DupInstruction(), DecodeVLD2LN(), DecodeVLD3LN(), DecodeVLD4DupInstruction(), DecodeVLD4LN(), DecodeVLDST2Instruction(), DecodeVLDST3Instruction(), DecodeVLDST4Instruction(), DecodeVSHLMaxInstruction(), DecodeVST1LN(), DecodeVST2LN(), DecodeVST3LN(), DecodeVST4LN(), llvm::LegalizerInfo::decreaseToSmallerTypesAndIncreaseToSmallest(), llvm::ArrayRef< llvm::irsymtab::storage::Comdat >::drop_back(), llvm::MutableArrayRef< BitWord >::drop_back(), llvm::ArrayRef< llvm::irsymtab::storage::Comdat >::drop_front(), llvm::BinarySubstreamRef::drop_front(), llvm::MutableArrayRef< BitWord >::drop_front(), llvm::itanium_demangle::PODSmallVector< llvm::itanium_demangle::ForwardTemplateReference *, 4 >::dropBack(), dumpStringOffsetsSection(), emitFDESymbol(), EmitPersonality(), llvm::pdb::HashTable< llvm::pdb::SrcHeaderBlockEntry, llvm::pdb::StringTableHashTraits >::empty(), llvm::BinarySubstreamRef::empty(), llvm::FixedStreamArray< PSHashRecord >::empty(), llvm::FixedStreamArray< PSHashRecord >::end(), llvm::MutableArrayRef< BitWord >::end(), enlarge(), llvm::SparseSet< unsigned, llvm::VirtReg2IndexFunctor >::erase(), llvm::LiveRange::find(), llvm::SparseSet< unsigned, llvm::VirtReg2IndexFunctor >::findIndex(), FindInsertedValue(), llvm::DWARFUnitVector::finishedInfoUnits(), llvm::BitVector::flip(), FunctionNumber(), llvm::BitcodeReaderValueList::getConstantFwdRef(), getConstantPart(), getDataAlignmentFactor(), llvm::MCLOHDirective::getEmitSize(), llvm::DWARFUnitVector::getNumInfoUnits(), llvm::DWARFUnitVector::getNumTypesUnits(), llvm::DWARFUnitVector::getNumUnits(), llvm::cl::generic_parser_base::getOptionWidth(), getOrInsertGlobal(), llvm::cl::list< DataType, StorageClass, ParserClass >::getPosition(), llvm::cl::bits< DataType, Storage, ParserClass >::getPosition(), llvm::NVPTXTargetLowering::getPrototype(), getScalarIntrinsicDeclaration(), llvm::BitcodeReaderValueList::getValueFwdRef(), llvm::SmallVectorBase::grow_pod(), llvm::TrigramIndex::insert(), llvm::SparseSet< unsigned, llvm::VirtReg2IndexFunctor >::insert(), is_splat(), isDebug(), llvm::DWARFFormValue::isFormClass(), isIgnorableInst(), isOpcodeHandled(), llvm::AArch64_AM::isValidDecodeLogicalImmediate(), LLVMCountBasicBlocks(), loadTestingFormat(), LowerCMP_SWAP(), llvm::HexagonTargetLowering::LowerCONCAT_VECTORS(), makeCombineInst(), llvm::GlobPattern::match(), okayForPHIOfOps(), llvm::BitVector::operator &=(), llvm::BitVector::operator==(), llvm::FixedStreamArray< PSHashRecord >::operator[](), llvm::MutableArrayRef< BitWord >::operator[](), llvm::itanium_demangle::PODSmallVector< llvm::itanium_demangle::ForwardTemplateReference *, 4 >::operator[](), llvm::BitVector::operator^=(), llvm::BitVector::operator|=(), llvm::OProfileWrapper::OProfileWrapper(), llvm::IntervalMap< SlotIndex, unsigned >::overlaps(), llvm::R600SchedStrategy::pickNode(), llvm::NodeSet::print(), llvm::AArch64InstPrinter::printGPRSeqPairsClassOperand(), printRefSCC(), printSCC(), PrintStatistics(), llvm::PackedVector< T, BitNum, BitVectorTy >::push_back(), llvm::itanium_demangle::PODSmallVector< llvm::itanium_demangle::ForwardTemplateReference *, 4 >::push_back(), llvm::GVNHoist::rank(), readImmediate(), llvm::LazyCallGraph::RefSCC::removeInternalRefEdge(), llvm::HexagonMCChecker::reportBranchErrors(), llvm::BitVector::reset(), llvm::ListInit::resolveReferences(), llvm::MachinePipeliner::runOnMachineFunction(), llvm::AMDGPUAsmPrinter::runOnMachineFunction(), llvm::SplitEditor::selectIntv(), llvm::BitVector::set(), llvm::LegalizerInfo::setAction(), llvm::DataExtractor::setAddressSize(), llvm::X86MachineFunctionInfo::setArgumentStackSize(), llvm::ARMFunctionInfo::setArgumentStackSize(), llvm::LegalizerInfo::setLegalizeScalarToDifferentSizeStrategy(), llvm::LegalizerInfo::setLegalizeVectorElementToDifferentSizeStrategy(), llvm::PPCFunctionInfo::setMinReservedArea(), llvm::PPCFunctionInfo::setTailCallSPDelta(), llvm::InlineAsmIdentifierInfo::setVar(), llvm::SmallDenseMap< const llvm::DISubprogram *, detail::DenseSetEmpty, InlineBuckets, DenseMapInfo< const llvm::DISubprogram *>, detail::DenseSetPair< const llvm::DISubprogram * > >::shrink_and_clear(), llvm::DWARFFormValue::skipValue(), llvm::ArrayRef< llvm::irsymtab::storage::Comdat >::slice(), llvm::MutableArrayRef< BitWord >::slice(), llvm::ArrayRef< llvm::irsymtab::storage::Comdat >::take_back(), llvm::MutableArrayRef< BitWord >::take_back(), llvm::ArrayRef< llvm::irsymtab::storage::Comdat >::take_front(), llvm::MutableArrayRef< BitWord >::take_front(), llvm::BitVector::test(), llvm::BitTracker::trace(), llvm::LoopVectorizeHints::vectorizeAnalysisPassName(), llvm::Interpreter::visitAShr(), VisitGlobalVariableForEmission(), llvm::msgpack::ArrayNode::write(), and llvm::msgpack::MapNode::write().

◆ SkipBitcodeWrapperHeader()

bool llvm::SkipBitcodeWrapperHeader ( const unsigned char *&  BufPtr,
const unsigned char *&  BufEnd,
bool  VerifyBufferSize 
)
inline

SkipBitcodeWrapperHeader - Some systems wrap bc files with a special header for padding or other reasons.

The format of this header is:

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. ... potentially other gunk ... };

This function is called when we find a file with a matching magic number. In this case, skip down to the subsection of the file that is actually a BC file. If 'VerifyBufferSize' is true, check that the buffer is large enough to contain the whole bitcode file.

Definition at line 240 of file BitcodeReader.h.

References BitcodeErrorCategory(), BWH_OffsetField, BWH_SizeField, error_category, llvm::support::endian::read32le(), and Size.

Referenced by initStream().

◆ skipDebugInstructionsBackward()

template<class IterT >
IterT llvm::skipDebugInstructionsBackward ( IterT  It,
IterT  Begin 
)
inline

Decrement It until it points to a non-debug instruction or to Begin and return the resulting iterator.

This function should only be used MachineBasicBlock::{iterator, const_iterator, instr_iterator, const_instr_iterator} and the respective reverse iterators.

Definition at line 934 of file MachineBasicBlock.h.

Referenced by findHoistingInsertPosAndDeps(), llvm::MachineBasicBlock::findPrevDebugLoc(), llvm::X86FrameLowering::mergeSPUpdates(), and llvm::RegPressureTracker::recedeSkipDebugValues().

◆ skipDebugInstructionsForward()

template<typename IterT >
IterT llvm::skipDebugInstructionsForward ( IterT  It,
IterT  End 
)
inline

◆ skipDebugIntrinsics()

BasicBlock::iterator llvm::skipDebugIntrinsics ( BasicBlock::iterator  It)

Advance It while it points to a debug instruction and return the result.

This assumes that It is not at the end of a block.

Definition at line 490 of file BasicBlock.cpp.

Referenced by llvm::BasicBlock::getLandingPadInst().

◆ skipLeadingZeroesAndAnyDot()

static StringRef::iterator llvm::skipLeadingZeroesAndAnyDot ( StringRef::iterator  begin,
StringRef::iterator  end,
StringRef::iterator dot 
)
static

◆ sort() [1/4]

template<typename IteratorTy >
void llvm::sort ( IteratorTy  Start,
IteratorTy  End 
)
inline

Definition at line 1116 of file STLExtras.h.

References sort().

Referenced by llvm::TargetLibraryInfoImpl::addVectorizableFunctions(), adjustCostForPairing(), AreStatisticsEnabled(), buildClonedLoops(), callsiteIsHot(), collectContributionData(), combineWeightsBySorting(), llvm::codeview::DebugFrameDataSubsection::commit(), llvm::codeview::DebugCrossModuleImportsSubsection::commit(), compareVectors(), llvm::ProfileSummaryBuilder::computeDetailedSummary(), llvm::rdf::Liveness::computeLiveIns(), computeLiveOuts(), llvm::MachObjectWriter::computeSymbolTable(), llvm::LegalizerInfo::computeTables(), computeWeight(), llvm::InstrProfSymtab::create(), createStoreClusterDAGMutation(), DeleteTriviallyDeadInstructions(), llvm::GVNExpression::Expression::dump(), dumpRelocs(), llvm::DwarfStringPool::emit(), llvm::EHStreamer::emitExceptionTable(), enableCallSafepoints(), encodeBase64StringEntry(), llvm::rdf::DeadCodeElimination::erase(), llvm::pdb::GSIHashStreamBuilder::finalizeBuckets(), llvm::ScalarEvolution::findArrayDimensions(), findIrreducibleHeaders(), findPartitions(), llvm::StackSafetyInfo::FunctionInfo::FunctionInfo(), llvm::DWARFDebugAranges::generate(), llvm::AttributeSetNode::get(), llvm::RecordRecTy::get(), GetAEABIUnwindPersonalityName(), getDwarfRegNum(), GetEHSpillList(), getFilename(), llvm::DbgVariable::getFrameIndexExprs(), llvm::DWARFUnitIndex::getFromOffset(), getMetadataTypeOrder(), getMopState(), llvm::rdf::DataFlowGraph::getNextShadow(), llvm::MemoryDependenceResults::getNonLocalCallDependency(), GetSpillList(), getStartOrEndSlot(), getSuccPad(), getTypePartition(), getUnderlyingArgReg(), llvm::coverage::CoverageMapping::getUniqueSourceFiles(), hasSameExtUse(), hasVulnerableLoad(), llvm::mca::initializeUsedResources(), llvm::sroa::AllocaSlices::insert(), InsertLDR_STR(), llvm::SlotIndexes::insertMBBInMaps(), isCopyOfAPHI(), isDebug(), llvm::ARMBaseInstrInfo::isLoadFromStackSlotPostFE(), IsSafeAndProfitableToMove(), llvm::SMSchedule::isValidSchedule(), isVectorPromotionViable(), llvm::cfg::LegalizeUpdates(), llvm::coverage::CoverageMapping::load(), lookupCandidateBaseReg(), mayUsePostIncMode(), llvm::iplist_impl< simple_ilist< MachineInstr, Options... >, ilist_traits< MachineInstr > >::merge(), false::IntervalSorter::operator()(), llvm::parallel::detail::parallel_quick_sort(), llvm::DWARFDebugLine::LineTable::parse(), patchAndReplaceAllUsesWith(), populateAliasMap(), populateExternalRelations(), predictValueUseListOrderImpl(), llvm::PhysicalRegisterUsageInfo::print(), llvm::CallGraph::print(), llvm::DebugCounter::print(), llvm::FileInfo::print(), llvm::ScopedPrinter::printFlags(), promoteSingleBlockAlloca(), llvm::ScheduleDAGInstrs::reduceHugeMemNodeMaps(), ReduceSwitchRange(), relocationViaAlloca(), llvm::MemoryDependenceResults::removeInstruction(), llvm::SelectionDAG::ReplaceAllUsesOfValuesWith(), llvm::ReplaceableMetadataImpl::replaceAllUsesWith(), llvm::SCEVExpander::replaceCongruentIVs(), replaceConstantExprOp(), rescheduleLexographically(), llvm::ReplaceableMetadataImpl::resolveAllUses(), llvm::BitcodeReaderValueList::resolveConstantForwardRefs(), llvm::ARMFrameLowering::ResolveFrameIndexReference(), resolveFwdRef(), llvm::ThinLTOCodeGenerator::run(), llvm::ReachingDefAnalysis::runOnMachineFunction(), llvm::SlotIndexes::runOnMachineFunction(), selectI64Imm(), shouldAlwaysEmitCompleteClassType(), shouldInstrumentBlock(), ShrinkLoadReplaceStoreWithStore(), sinkInstruction(), AllocaSlices::SliceBuilder::SliceBuilder(), llvm::SMDiagnostic::SMDiagnostic(), sort(), SortCallTargets(), llvm::json::sortedElements(), llvm::codeview::DebugStringTableSubsection::sortedIds(), sortGlobalExprs(), SortNonLocalDepInfoCache(), llvm::GCNIterativeScheduler::sortRegionsByPressure(), llvm::MachineBasicBlock::sortUniqueLiveIns(), llvm::DebugLocEntry::sortUniqueValues(), false::Chain::str(), llvm::mca::RegisterFile::tryEliminateMove(), tryToElideArgumentCopy(), llvm::HexagonBlockRanges::RangeList::unionize(), llvm::SelectionDAGBuilder::visitBitTestCase(), llvm::vfs::YAMLVFSWriter::write(), writeTypeIdSummaryRecord(), and llvm::TimerGroup::~TimerGroup().

◆ sort() [2/4]

template<typename Container >
void llvm::sort ( Container &&  C)
inline

Definition at line 1124 of file STLExtras.h.

References adl_begin(), adl_end(), C, and sort().

◆ sort() [3/4]

template<typename IteratorTy , typename Compare >
void llvm::sort ( IteratorTy  Start,
IteratorTy  End,
Compare  Comp 
)
inline

Definition at line 1129 of file STLExtras.h.

References sort().

◆ sort() [4/4]

template<typename Container , typename Compare >
void llvm::sort ( Container &&  C,
Compare  Comp 
)
inline

Definition at line 1138 of file STLExtras.h.

References adl_begin(), adl_end(), C, and sort().

Referenced by sort().

◆ sortPtrAccesses()

bool llvm::sortPtrAccesses ( ArrayRef< Value *>  VL,
const DataLayout DL,
ScalarEvolution SE,
SmallVectorImpl< unsigned > &  SortedIndices 
)

Attempt to sort the pointers in VL and return the sorted indices in SortedIndices, if reordering is required.

Returns 'true' if sorting is legal, otherwise returns 'false'.

For example, for a given VL of memory accesses in program order, a[i+4], a[i+0], a[i+1] and a[i+7], this function will sort the VL and save the sorted indices in SortedIndices as a[i+0], a[i+1], a[i+4], a[i+7] and saves the mask for actual memory accesses in program order in SortedIndices as <1,2,0,3>

Definition at line 1101 of file LoopAccessAnalysis.cpp.

References all_of(), assert(), llvm::SmallVectorTemplateCommon< T, typename >::begin(), llvm::SmallVectorImpl< T >::clear(), dyn_cast(), llvm::SmallVectorImpl< T >::emplace_back(), llvm::SmallVectorTemplateCommon< T, typename >::end(), llvm::ScalarEvolution::getMinusSCEV(), llvm::Type::getPointerAddressSpace(), llvm::ScalarEvolution::getSCEV(), llvm::Value::getType(), GetUnderlyingObject(), I, llvm::SmallSet< T, N, C >::insert(), llvm::Type::isPointerTy(), Left, llvm::SmallVectorImpl< T >::reserve(), llvm::SmallVectorImpl< T >::resize(), Right, and llvm::ArrayRef< T >::size().

Referenced by llvm::DOTGraphTraits< BoUpSLP * >::getNodeAttributes(), and llvm::LoopAccessInfo::getPSE().

◆ SPARCCondCodeToString()

static const char* llvm::SPARCCondCodeToString ( SPCC::CondCodes  CC)
inlinestatic

◆ SplitAllCriticalEdges()

unsigned llvm::SplitAllCriticalEdges ( Function F,
const CriticalEdgeSplittingOptions Options = CriticalEdgeSplittingOptions() 
)

Loop over all of the edges in the CFG, breaking critical edges as they are found.

Returns the number of broken edges.

Definition at line 308 of file BasicBlockUtils.cpp.

References llvm::Instruction::getNumSuccessors(), and SplitCriticalEdge().

Referenced by allPhiOperandsUndefined(), llvm::BreakCriticalEdgesPass::run(), shouldInstrumentBlock(), and SplitCriticalEdge().

◆ SplitBlock()

BasicBlock * llvm::SplitBlock ( BasicBlock Old,
Instruction SplitPt,
DominatorTree DT = nullptr,
LoopInfo LI = nullptr,
MemorySSAUpdater MSSAU = nullptr 
)

◆ SplitBlockAndInsertIfThen()

Instruction * llvm::SplitBlockAndInsertIfThen ( Value Cond,
Instruction SplitBefore,
bool  Unreachable,
MDNode BranchWeights = nullptr,
DominatorTree DT = nullptr,
LoopInfo LI = nullptr 
)

Split the containing block at the specified instruction - everything before SplitBefore stays in the old basic block, and the rest of the instructions in the BB are moved to a new block.

The two blocks are connected by a conditional branch (with value of Cmp being the condition). Before: Head SplitBefore Tail After: Head if (Cond) ThenBlock SplitBefore Tail

If Unreachable is true, then ThenBlock ends with UnreachableInst, otherwise it branches to Tail. Returns the NewBasicBlock's terminator.

Updates DT and LI if given.

Definition at line 719 of file BasicBlockUtils.cpp.

References llvm::DominatorTreeBase< NodeT, IsPostDom >::addNewBlock(), C, llvm::DominatorTreeBase< NodeT, IsPostDom >::changeImmediateDominator(), llvm::BasicBlock::Create(), llvm::BranchInst::Create(), llvm::BasicBlock::getContext(), llvm::Instruction::getDebugLoc(), llvm::ilist_node_impl< OptionsT >::getIterator(), llvm::LoopInfoBase< BlockT, LoopT >::getLoopFor(), llvm::DominatorTreeBase< NodeT, IsPostDom >::getNode(), llvm::Instruction::getParent(), llvm::BasicBlock::getParent(), llvm::BasicBlock::getTerminator(), llvm::LLVMContext::MD_prof, ReplaceInstWithInst(), llvm::Instruction::setMetadata(), and llvm::BasicBlock::splitBasicBlock().

Referenced by createEfficiencySanitizerPass(), INITIALIZE_PASS(), instrumentMaskedLoadOrStore(), isKnownTypeIdMember(), makeGuardControlFlowExplicit(), mergeConditionalStoreToAddress(), false::LibCallsShrinkWrap::perform(), RetagMask(), shouldInstrumentBlock(), SplitCriticalEdge(), StackMallocSizeClass(), llvm::JumpThreadingPass::TryToUnfoldSelectInCurrBB(), turnGuardIntoBranch(), and TypeSizeToSizeIndex().

◆ SplitBlockAndInsertIfThenElse()

void llvm::SplitBlockAndInsertIfThenElse ( Value Cond,
Instruction SplitBefore,
Instruction **  ThenTerm,
Instruction **  ElseTerm,
MDNode BranchWeights = nullptr 
)

◆ SplitBlockPredecessors()

BasicBlock * llvm::SplitBlockPredecessors ( BasicBlock BB,
ArrayRef< BasicBlock *>  Preds,
const char Suffix,
DominatorTree DT = nullptr,
LoopInfo LI = nullptr,
MemorySSAUpdater MSSAU = nullptr,
bool  PreserveLCSSA = false 
)

This method introduces at least one new basic block into the function and moves some of the predecessors of BB to be predecessors of the new block.

The new predecessors are indicated by the Preds array. The new block is given a suffix of 'Suffix'. Returns new basic block to which predecessors from Preds are now pointing.

If BB is a landingpad block then additional basicblock might be introduced. It will have Suffix+".split_lp". See SplitLandingPadPredecessors for more details on this case.

This currently updates the LLVM IR, DominatorTree, LoopInfo, and LCCSA but no other analyses. In particular, it does not preserve LoopSimplify (because it's complicated to handle the case where one of the edges being split is an exit of a loop with other exits).

Definition at line 511 of file BasicBlockUtils.cpp.

References assert(), llvm::BasicBlock::begin(), llvm::BasicBlock::canSplitPredecessors(), llvm::BasicBlock::Create(), llvm::BranchInst::Create(), llvm::ArrayRef< T >::empty(), llvm::UndefValue::get(), llvm::BasicBlock::getContext(), llvm::Instruction::getDebugLoc(), llvm::BasicBlock::getFirstNonPHIOrDbg(), llvm::Value::getName(), llvm::BasicBlock::getParent(), I, llvm::BasicBlock::isLandingPad(), llvm::ArrayRef< T >::size(), SplitLandingPadPredecessors(), UpdateAnalysisInformation(), and UpdatePHINodes().

Referenced by CloneLoop(), ConnectEpilog(), ConnectProlog(), llvm::GVNExpression::Expression::dump(), eliminateDeadSwitchCases(), FitWeights(), formDedicatedExitBlocks(), InsertPreheaderForLoop(), mergeConditionalStoreToAddress(), normalizeForInvokeSafepoint(), separateNestedLoop(), SinkCommonCodeFromPredecessors(), SplitCriticalEdge(), splitPredecessorsOfLoopExit(), llvm::JumpThreadingPass::ThreadEdge(), and UnrollRuntimeLoopRemainder().

◆ splitCodeGen()

std::unique_ptr< Module > llvm::splitCodeGen ( std::unique_ptr< Module M,
ArrayRef< raw_pwrite_stream *>  OSs,
ArrayRef< llvm::raw_pwrite_stream *>  BCOSs,
const std::function< std::unique_ptr< TargetMachine >()> &  TMFactory,
TargetMachine::CodeGenFileType  FileType = TargetMachine::CGFT_ObjectFile,
bool  PreserveLocals = false 
)

Split M into OSs.size() partitions, and generate code for each.

Takes a factory function for the TargetMachine TMFactory. Writes OSs.size() output files to the output streams in OSs. The resulting output files if linked together are intended to be equivalent to the single output file that would have been code generated from M.

Writes bitcode for individual partitions into output streams in BCOSs, if BCOSs is not empty.

Returns
M if OSs.size() == 1, otherwise returns std::unique_ptr<Module>().

Definition at line 38 of file ParallelCG.cpp.

References assert(), llvm::SmallVectorTemplateCommon< T >::begin(), codegen(), llvm::SmallVectorTemplateCommon< T >::data(), llvm::ArrayRef< T >::empty(), llvm::Expected< T >::get(), parseBitcodeFile(), report_fatal_error(), llvm::SmallVectorBase::size(), llvm::ArrayRef< T >::size(), SplitModule(), and WriteBitcodeToFile().

Referenced by llvm::lto::backend(), and llvm::LTOCodeGenerator::compileOptimized().

◆ SplitCriticalEdge() [1/4]

BasicBlock * llvm::SplitCriticalEdge ( Instruction TI,
unsigned  SuccNum,
const CriticalEdgeSplittingOptions Options = CriticalEdgeSplittingOptions() 
)

If this edge is a critical edge, insert a new node to split the critical edge.

This will update the analyses passed in through the option struct. This returns the new block if the edge was split, null otherwise.

If MergeIdenticalEdges in the options struct is true (not the default), all edges from TI to the specified successor will be merged into the same critical edge block. This is most commonly interesting with switch instructions, which may have many edges to any one destination. This ensures that all edges to that dest go to one block instead of each going to a different block, but isn't the standard definition of a "critical edge".

It is invalid to call this function on a critical edge that starts at an IndirectBrInst. Splitting these edges will almost always create an invalid program because the address of the new block won't be the one that is jumped to.

Definition at line 133 of file BreakCriticalEdges.cpp.

References assert(), llvm::BasicBlock::begin(), llvm::SmallVectorImpl< T >::clear(), llvm::BasicBlock::Create(), llvm::BranchInst::Create(), createPHIsForSplitLoopExit(), llvm::DominatorTreeBase< BasicBlock, false >::Delete, llvm::CriticalEdgeSplittingOptions::DontDeleteUselessPHIs, llvm::CriticalEdgeSplittingOptions::DT, E, llvm::SmallVectorBase::empty(), find(), llvm::PHINode::getBasicBlockIndex(), llvm::Function::getBasicBlockList(), llvm::Value::getContext(), llvm::Instruction::getDebugLoc(), llvm::PHINode::getIncomingBlock(), llvm::ilist_node_impl< OptionsT >::getIterator(), llvm::Value::getName(), llvm::Instruction::getNumSuccessors(), llvm::Instruction::getParent(), llvm::BasicBlock::getParent(), llvm::Instruction::getSuccessor(), I, llvm::iplist_impl< IntrusiveListT, TraitsT >::insert(), llvm::DominatorTreeBase< BasicBlock, false >::Insert, isCriticalEdge(), llvm::BasicBlock::isEHPad(), llvm::CriticalEdgeSplittingOptions::LI, llvm::CriticalEdgeSplittingOptions::MergeIdenticalEdges, llvm::CriticalEdgeSplittingOptions::MSSAU, P, pred_begin(), pred_end(), llvm::CriticalEdgeSplittingOptions::PreserveLCSSA, llvm::SmallVectorTemplateBase< T >::push_back(), llvm::BasicBlock::removePredecessor(), llvm::PHINode::setIncomingBlock(), llvm::Instruction::setSuccessor(), SplitBlockPredecessors(), succ_end(), successors(), and llvm::MemorySSAUpdater::wireOldPredecessorsToNewImmediatePredecessor().

Referenced by canRenameComdat(), CloneLoop(), DemoteRegToStack(), llvm::MachineBasicBlock::isEHScopeReturnBlock(), isOnlyReachableViaThisEdge(), mayUsePostIncMode(), llvm::CriticalEdgeSplittingOptions::setPreserveLCSSA(), shouldRotateLoopExitingLatch(), speculatePHIs(), SplitAllCriticalEdges(), SplitCriticalEdge(), SplitCriticalSideEffectEdges(), and SplitEdge().

◆ SplitCriticalEdge() [2/4]

BasicBlock* llvm::SplitCriticalEdge ( BasicBlock BB,
succ_iterator  SI,
const CriticalEdgeSplittingOptions Options = CriticalEdgeSplittingOptions() 
)
inline

◆ SplitCriticalEdge() [3/4]

bool llvm::SplitCriticalEdge ( BasicBlock Succ,
pred_iterator  PI,
const CriticalEdgeSplittingOptions Options = CriticalEdgeSplittingOptions() 
)
inline

If the edge from *PI to BB is not critical, return false.

Otherwise, split all edges between the two blocks and return true. This updates all of the same analyses as the other SplitCriticalEdge function. If P is specified, it updates the analyses described above.

Definition at line 154 of file BasicBlockUtils.h.

References llvm::Instruction::getNumSuccessors(), llvm::Instruction::getSuccessor(), and SplitCriticalEdge().

◆ SplitCriticalEdge() [4/4]

BasicBlock* llvm::SplitCriticalEdge ( BasicBlock Src,
BasicBlock Dst,
const CriticalEdgeSplittingOptions Options = CriticalEdgeSplittingOptions() 
)
inline

◆ SplitEdge()

BasicBlock * llvm::SplitEdge ( BasicBlock From,
BasicBlock To,
DominatorTree DT = nullptr,
LoopInfo LI = nullptr,
MemorySSAUpdater MSSAU = nullptr 
)

◆ SplitIndirectBrCriticalEdges()

bool llvm::SplitIndirectBrCriticalEdges ( Function F,
BranchProbabilityInfo BPI = nullptr,
BlockFrequencyInfo BFI = nullptr 
)

◆ SplitLandingPadPredecessors()

void llvm::SplitLandingPadPredecessors ( BasicBlock OrigBB,
ArrayRef< BasicBlock *>  Preds,
const char Suffix,
const char Suffix2,
SmallVectorImpl< BasicBlock *> &  NewBBs,
DominatorTree DT = nullptr,
LoopInfo LI = nullptr,
MemorySSAUpdater MSSAU = nullptr,
bool  PreserveLCSSA = false 
)

This method transforms the landing pad, OrigBB, by introducing two new basic blocks into the function.

One of those new basic blocks gets the predecessors listed in Preds. The other basic block gets the remaining predecessors of OrigBB. The landingpad instruction OrigBB is clone into both of the new basic blocks. The new blocks are given the suffixes 'Suffix1' and 'Suffix2', and are returned in the NewBBs vector.

This currently updates the LLVM IR, DominatorTree, LoopInfo, and LCCSA but no other analyses. In particular, it does not preserve LoopSimplify (because it's complicated to handle the case where one of the edges being split is an exit of a loop with other exits).

Definition at line 572 of file BasicBlockUtils.cpp.

References llvm::PHINode::addIncoming(), assert(), llvm::Instruction::clone(), llvm::BasicBlock::Create(), llvm::PHINode::Create(), llvm::BranchInst::Create(), llvm::SmallVectorBase::empty(), llvm::Instruction::eraseFromParent(), llvm::BasicBlock::getContext(), llvm::Instruction::getDebugLoc(), llvm::BasicBlock::getFirstInsertionPt(), llvm::BasicBlock::getFirstNonPHI(), llvm::BasicBlock::getInstList(), llvm::BasicBlock::getLandingPadInst(), llvm::Value::getName(), llvm::BasicBlock::getParent(), llvm::BasicBlock::getTerminator(), llvm::Value::getType(), llvm::iplist_impl< IntrusiveListT, TraitsT >::insert(), llvm::BasicBlock::isLandingPad(), llvm::Type::isTokenTy(), pred_begin(), pred_end(), llvm::SmallVectorTemplateBase< T >::push_back(), llvm::SmallVectorTemplateBase< T, bool >::push_back(), llvm::Value::replaceAllUsesWith(), llvm::Instruction::setDebugLoc(), llvm::Value::setName(), llvm::ArrayRef< T >::size(), UpdateAnalysisInformation(), UpdatePHINodes(), and llvm::Value::use_empty().

Referenced by createBlockExtractorPass(), mayUsePostIncMode(), SplitBlockPredecessors(), SplitCriticalEdge(), and llvm::JumpThreadingPass::ThreadEdge().

◆ SplitModule()

void llvm::SplitModule ( std::unique_ptr< Module M,
unsigned  N,
function_ref< void(std::unique_ptr< Module > MPart)>  ModuleCallback,
bool  PreserveLocals = false 
)

Splits the module M into N linkable partitions.

The function ModuleCallback is called N times passing each individual partition as the MPart argument.

FIXME: This function does not deal with the somewhat subtle symbol visibility issues around module splitting, including (but not limited to):

  • Internal symbols should not collide with symbols defined outside the module.
  • Internal symbols defined in module-level inline asm should be visible to each partition.

Definition at line 250 of file SplitModule.cpp.

References CloneModule(), externalize(), F(), findPartitions(), I, isInPartition(), and N.

Referenced by splitCodeGen().

◆ SplitString()

void llvm::SplitString ( StringRef  Source,
SmallVectorImpl< StringRef > &  OutFragments,
StringRef  Delimiters = " \t\n\v\f\r" 
)

SplitString - Split up the specified string according to the specified delimiters, appending the result fragments to the output list.

Definition at line 51 of file StringExtras.cpp.

References getToken(), and llvm::SmallVectorTemplateBase< T, bool >::push_back().

Referenced by llvm::ARMTargetLowering::ExpandInlineAsm(), llvm::X86TargetLowering::ExpandInlineAsm(), llvm::sys::Process::FindInEnvPath(), and itostr().

◆ STATISTIC() [1/8]

llvm::STATISTIC ( NumFunctions  ,
"Total number of functions  
)

◆ STATISTIC() [2/8]

llvm::STATISTIC ( NumUnsafeStackFunctions  ,
"Number of functions with unsafe stack"   
)

◆ STATISTIC() [3/8]

llvm::STATISTIC ( NumUnsafeStackRestorePointsFunctions  ,
"Number of functions that use setjmp or exceptions  
)

◆ STATISTIC() [4/8]

llvm::STATISTIC ( NumAllocas  ,
"Total number of allocas"   
)

◆ STATISTIC() [5/8]

llvm::STATISTIC ( NumUnsafeStaticAllocas  ,
"Number of unsafe static allocas"   
)

◆ STATISTIC() [6/8]

llvm::STATISTIC ( NumUnsafeDynamicAllocas  ,
"Number of unsafe dynamic allocas"   
)

◆ STATISTIC() [7/8]

llvm::STATISTIC ( NumUnsafeByValArguments  ,
"Number of unsafe byval arguments"   
)

◆ STATISTIC() [8/8]

llvm::STATISTIC ( NumUnsafeStackRestorePoints  ,
"Number of setjmps and landingpads"   
)

◆ StrInStrNoCase()

StringRef::size_type llvm::StrInStrNoCase ( StringRef  s1,
StringRef  s2 
)

StrInStrNoCase - Portable version of strcasestr.

Locates the first occurrence of string 's1' in string 's2', ignoring case. Returns the offset of s2 in s1 or npos if s2 cannot be found.

Definition at line 22 of file StringExtras.cpp.

References llvm::StringRef::equals_lower(), N, llvm::StringRef::npos, llvm::StringRef::size(), and llvm::StringRef::substr().

Referenced by itostr().

◆ StripDebugInfo()

bool llvm::StripDebugInfo ( Module M)

Strip debug info in the module if it exists.

To do this, we remove all calls to the debugger intrinsics and any named metadata for debugging. We also remove debug locations for instructions. Return true if module is modified.

Definition at line 351 of file DebugInfo.cpp.

References llvm::SmallVectorTemplateCommon< T >::back(), C, llvm::detail::DenseSetImpl< ValueT, DenseMap< ValueT, detail::DenseSetEmpty, ValueInfoT, detail::DenseSetPair< ValueT > >, ValueInfoT >::count(), llvm::DenseMapBase< DenseMap< KeyT, ValueT, KeyInfoT, BucketT >, KeyT, ValueT, KeyInfoT, BucketT >::count(), llvm::SmallVectorBase::empty(), llvm::StringRef::empty(), llvm::DenseMapBase< DenseMap< KeyT, ValueT, KeyInfoT, BucketT >, KeyT, ValueT, KeyInfoT, BucketT >::end(), llvm::NamedMDNode::eraseFromParent(), F(), llvm::ARMBuildAttrs::File, llvm::DenseMapBase< DenseMap< KeyT, ValueT, KeyInfoT, BucketT >, KeyT, ValueT, KeyInfoT, BucketT >::find(), llvm::MDNode::get(), llvm::MDNode::getContext(), llvm::DICompileUnit::getDebugInfoForProfiling(), llvm::MDNode::getDistinct(), llvm::DICompileUnit::getDWOId(), llvm::DIScope::getFile(), llvm::DICompileUnit::getFlags(), llvm::DICompileUnit::getMacros(), llvm::DIScope::getName(), llvm::NamedMDNode::getName(), llvm::DICompileUnit::getNameTableKind(), llvm::MDNode::getNumOperands(), llvm::DICompileUnit::getProducer(), llvm::DICompileUnit::getRangesBaseAddress(), llvm::DICompileUnit::getRuntimeVersion(), llvm::DICompileUnit::getSourceLanguage(), llvm::DICompileUnit::getSplitDebugFilename(), llvm::DICompileUnit::getSplitDebugInlining(), I, llvm::detail::DenseSetImpl< ValueT, DenseMap< ValueT, detail::DenseSetEmpty, ValueInfoT, detail::DenseSetPair< ValueT > >, ValueInfoT >::insert(), llvm::DenseMapBase< DenseMap< KeyT, ValueT, KeyInfoT, BucketT >, KeyT, ValueT, KeyInfoT, BucketT >::insert(), llvm::MDNode::isDistinct(), llvm::DICompileUnit::isOptimized(), llvm::DICompileUnit::LineTablesOnly, LinkageName, llvm::LLVMContext::MD_dbg, N, llvm::Module::named_metadata_begin(), llvm::Module::named_metadata_end(), llvm::MDNode::operands(), llvm::SmallVectorTemplateBase< T >::pop_back(), llvm::SmallVectorTemplateBase< T >::push_back(), llvm::SmallVectorImpl< T >::reserve(), llvm::MipsISD::Ret, llvm::StringRef::startswith(), stripDebugInfo(), and Unit.

Referenced by llvm::LTOCodeGenerator::compile(), LLVMStripModuleDebugInfo(), readTriple(), StripSymbolNames(), and UpgradeDebugInfo().

◆ stripDebugInfo()

bool llvm::stripDebugInfo ( Function F)

◆ stripDirPrefix()

static StringRef llvm::stripDirPrefix ( StringRef  PathNameStr,
uint32_t  NumPrefix 
)
static

Definition at line 225 of file InstrProf.cpp.

References llvm::sys::path::is_separator().

Referenced by getPGOFuncName().

◆ stripGetElementPtr()

Value * llvm::stripGetElementPtr ( Value Ptr,
ScalarEvolution SE,
Loop Lp 
)

If the argument is a GEP, then returns the operand identified by getGEPInductionOperand.

However, if there is some other non-loop-invariant operand, it returns that instead.

Definition at line 144 of file VectorUtils.cpp.

References dyn_cast(), GEP, getGEPInductionOperand(), llvm::User::getNumOperands(), llvm::User::getOperand(), llvm::ScalarEvolution::getSCEV(), and llvm::ScalarEvolution::isLoopInvariant().

Referenced by getStrideFromPointer().

◆ stripIntegerCast()

Value * llvm::stripIntegerCast ( Value V)

◆ stripNonLineTableDebugInfo()

bool llvm::stripNonLineTableDebugInfo ( Module M)

Downgrade the debug info in a module to contain only line table information.

In order to convert debug info to what -gline-tables-only would have created, this does the following: 1) Delete all debug intrinsics. 2) Delete all non-CU named metadata debug info nodes. 3) Create new DebugLocs for each instruction. 4) Create a new CU debug info, and similarly for every metadata node that's reachable from the CU debug info. All debug type metadata nodes are unreachable and garbage collected.

Definition at line 589 of file DebugInfo.cpp.

References llvm::Module::getContext(), llvm::Module::getFunction(), llvm::NamedMDNode::getName(), llvm::Module::globals(), llvm::LLVMContext::MD_dbg, Name, llvm::Module::named_metadata_begin(), and llvm::Module::named_metadata_end().

◆ SubOne()

static Constant* llvm::SubOne ( Constant C)
inlinestatic

◆ succ_begin() [1/6]

Interval::succ_iterator llvm::succ_begin ( Interval I)
inline

succ_begin/succ_end - define methods so that Intervals may be used just like BasicBlocks can with the succ_* functions, and *succ_iterator.

Definition at line 103 of file Interval.h.

References llvm::Interval::Successors.

Referenced by llvm::SSAUpdaterTraits< SSAUpdater >::BlkSucc_begin(), callsiteIsHot(), CanPropagatePredecessorsForPHIs(), llvm::GraphTraits< BlockFrequencyInfo * >::child_begin(), llvm::GraphTraits< Interval * >::child_begin(), llvm::CFGViewSuccessors< true >::child_begin(), llvm::GraphTraits< BasicBlock * >::child_begin(), llvm::GraphTraits< const BasicBlock * >::child_begin(), llvm::GraphTraits< PGOUseFunc * >::child_begin(), computeUnlikelySuccessors(), createCodeGenPreparePass(), DeleteBasicBlock(), llvm::Loop::dumpVerbose(), eliminateUnreachableBlock(), eraseDeadBBsAndChildren(), llvm::VPlan::execute(), llvm::CodeExtractor::extractCodeRegion(), FindFunctionBackedges(), llvm::BranchProbabilityInfo::getEdgeProbability(), llvm::BranchProbabilityInfo::getHotSucc(), llvm::BasicBlock::getSingleSuccessor(), llvm::BasicBlock::getUniqueSuccessor(), intersect(), isFullDominator(), isPotentiallyReachable(), isPotentiallyReachableFromMany(), isProfitableToFoldUnconditional(), isTrivialLoopExitBlockHelper(), isUnconditionalBranch(), IsValueFullyAvailableInBlock(), markTails(), MergeBlockIntoPredecessor(), llvm::bfi_detail::IrreducibleGraph::IrrNode::pred_end(), llvm::BranchProbabilityInfo::print(), ReplaceUsesOfWith(), llvm::InstCombiner::run(), SafeToMergeTerminators(), llvm::CaptureTracker::shouldExplore(), SinkInstruction(), sinkRegion(), llvm::BasicBlock::splitBasicBlock(), succ_empty(), succ_size(), successors(), llvm::MachineBasicBlock::successors(), TryToMergeLandingPad(), and updateForIncomingValueLocation().

◆ succ_begin() [2/6]

template<class NodeRef , class BlockT , class RegionT >
RNSuccIterator<NodeRef, BlockT, RegionT> llvm::succ_begin ( NodeRef  Node)
inline

Definition at line 243 of file RegionIterator.h.

◆ succ_begin() [3/6]

succ_iterator llvm::succ_begin ( Instruction I)
inline

Definition at line 250 of file CFG.h.

◆ succ_begin() [4/6]

succ_const_iterator llvm::succ_begin ( const Instruction I)
inline

Definition at line 251 of file CFG.h.

◆ succ_begin() [5/6]

succ_iterator llvm::succ_begin ( BasicBlock BB)
inline

Definition at line 271 of file CFG.h.

References llvm::BasicBlock::getTerminator().

◆ succ_begin() [6/6]

succ_const_iterator llvm::succ_begin ( const BasicBlock BB)
inline

Definition at line 274 of file CFG.h.

References llvm::BasicBlock::getTerminator().

◆ succ_empty() [1/2]

bool llvm::succ_empty ( const Instruction I)
inline

◆ succ_empty() [2/2]

bool llvm::succ_empty ( const BasicBlock BB)
inline

Definition at line 283 of file CFG.h.

References succ_begin(), and succ_end().

◆ succ_end() [1/6]

Interval::succ_iterator llvm::succ_end ( Interval I)
inline

Definition at line 106 of file Interval.h.

References llvm::Interval::Successors.

Referenced by llvm::SSAUpdaterTraits< SSAUpdater >::BlkSucc_end(), callsiteIsHot(), llvm::CFGViewSuccessors< true >::child_begin(), llvm::GraphTraits< BlockFrequencyInfo * >::child_end(), llvm::GraphTraits< Interval * >::child_end(), llvm::CFGViewSuccessors< true >::child_end(), llvm::GraphTraits< BasicBlock * >::child_end(), llvm::GraphTraits< const BasicBlock * >::child_end(), llvm::GraphTraits< PGOUseFunc * >::child_end(), computeUnlikelySuccessors(), createCodeGenPreparePass(), DeleteBasicBlock(), llvm::Loop::dumpVerbose(), eliminateUnreachableBlock(), eraseDeadBBsAndChildren(), llvm::VPlan::execute(), llvm::CodeExtractor::extractCodeRegion(), FindFunctionBackedges(), llvm::BranchProbabilityInfo::getEdgeProbability(), llvm::BranchProbabilityInfo::getHotSucc(), llvm::BasicBlock::getSingleSuccessor(), llvm::BasicBlock::getUniqueSuccessor(), intersect(), isFullDominator(), isPotentiallyReachable(), isPotentiallyReachableFromMany(), isProfitableToFoldUnconditional(), isTrivialLoopExitBlockHelper(), isUnconditionalBranch(), IsValueFullyAvailableInBlock(), markTails(), MergeBasicBlockIntoOnlyPred(), MergeBlockIntoPredecessor(), llvm::IntervalIterator< NodeTy, OrigContainer_t, GT, IGT >::operator++(), llvm::RNSuccIterator< FlatIt< NodeRef >, BlockT, RegionT >::operator++(), llvm::BranchProbabilityInfo::print(), llvm::InstCombiner::run(), SafeToMergeTerminators(), llvm::CaptureTracker::shouldExplore(), SinkInstruction(), sinkRegion(), llvm::BasicBlock::splitBasicBlock(), SplitCriticalEdge(), succ_empty(), succ_size(), successors(), llvm::MachineBasicBlock::successors(), TryToMergeLandingPad(), TryToSimplifyUncondBranchFromEmptyBlock(), and updateForIncomingValueLocation().

◆ succ_end() [2/6]

template<class NodeRef , class BlockT , class RegionT >
RNSuccIterator<NodeRef, BlockT, RegionT> llvm::succ_end ( NodeRef  Node)
inline

Definition at line 248 of file RegionIterator.h.

◆ succ_end() [3/6]

succ_iterator llvm::succ_end ( Instruction I)
inline

Definition at line 254 of file CFG.h.

◆ succ_end() [4/6]

succ_const_iterator llvm::succ_end ( const Instruction I)
inline

Definition at line 255 of file CFG.h.

◆ succ_end() [5/6]

succ_iterator llvm::succ_end ( BasicBlock BB)
inline

Definition at line 277 of file CFG.h.

References llvm::BasicBlock::getTerminator().

◆ succ_end() [6/6]

succ_const_iterator llvm::succ_end ( const BasicBlock BB)
inline

Definition at line 280 of file CFG.h.

References llvm::BasicBlock::getTerminator().

◆ succ_size() [1/2]

unsigned llvm::succ_size ( const Instruction I)
inline

◆ succ_size() [2/2]

unsigned llvm::succ_size ( const BasicBlock BB)
inline

Definition at line 286 of file CFG.h.

References succ_begin(), and succ_end().

◆ successors() [1/4]

succ_range llvm::successors ( Instruction I)
inline

Definition at line 264 of file CFG.h.

References succ_begin(), and succ_end().

Referenced by AddReachableCodeToWorklist(), llvm::LoopSafetyInfo::allLoopPathsLeadToBlock(), analyzeLoopUnrollCost(), buildClonedLoopBlocks(), llvm::CFGMST< Edge, BBInfo >::buildEdges(), calculateUnswitchCostMultiplier(), changeToUnreachable(), CheckForCanReleaseCFGHazard(), CloneFunction(), colorEHFunclets(), llvm::DivergencePropagator::computeJoinPoints(), computeLiveInValues(), computeLiveOutSeed(), computeValueLLTs(), ConnectEpilog(), ConnectProlog(), ConstantFoldTerminator(), DeleteDeadBlocks(), deleteDeadBlocksFromLoop(), deleteDeadClonedBlocks(), DuplicateInstructionsInSplitBetween(), llvm::LazyValueInfo::enableDT(), llvm::objcarc::FindDependencies(), llvm::ScalarEvolution::forgetValue(), formDedicatedExitBlocks(), getCommonExitBlock(), getInductionVariable(), getOnlyLiveSuccessor(), getSuccState(), HoistThenElseCodeToIf(), llvm::DivergenceAnalysis::inRegion(), llvm::MemorySSAUpdater::insertDef(), isProfitableToFoldUnconditional(), isSafeToHoistInvoke(), isUnconditionalBranch(), llvm::SyncDependenceAnalysis::join_blocks(), markAliveBlocks(), MergeBasicBlockIntoOnlyPred(), llvm::MemorySSAUpdater::moveAllAfterMergeBlocks(), llvm::MemorySSAUpdater::moveAllAfterSpliceBlocks(), processSwitch(), llvm::JumpThreadingPass::ProcessThreadableEdges(), llvm::GVNHoist::rank(), llvm::MemorySSAUpdater::removeBlocks(), removeUnreachableBlocks(), llvm::BasicBlock::replaceSuccessorsPhiUsesWith(), reportLoadElim(), SafeToMergeTerminators(), setBranchWeights(), llvm::Loop::setLoopID(), shouldKeepInEntry(), shouldRotateLoopExitingLatch(), simplifyOneLoop(), SimplifyTerminatorOnSelect(), SplitCriticalEdge(), llvm::JumpThreadingPass::ThreadEdge(), TryToSimplifyUncondBranchFromEmptyBlock(), llvm::JumpThreadingPass::TryToUnfoldSelectInCurrBB(), turnGuardIntoBranch(), UnrollLoop(), UnrollRuntimeLoopRemainder(), unswitchBestCondition(), updateSuccessor(), and llvm::MemorySSA::SkipSelfWalker::verify().

◆ successors() [2/4]

succ_const_range llvm::successors ( const Instruction I)
inline

Definition at line 267 of file CFG.h.

References succ_begin(), and succ_end().

◆ successors() [3/4]

succ_range llvm::successors ( BasicBlock BB)
inline

Definition at line 289 of file CFG.h.

References succ_begin(), and succ_end().

◆ successors() [4/4]

succ_const_range llvm::successors ( const BasicBlock BB)
inline

Definition at line 292 of file CFG.h.

References succ_begin(), and succ_end().

◆ swapToHostOrder()

template<class T >
static T llvm::swapToHostOrder ( const unsigned char *&  D,
support::endianness  Orig 
)
static

Definition at line 723 of file InstrProf.cpp.

References D, and llvm::support::little.

◆ SwpEnableCopyToPhi()

cl::opt<bool> llvm::SwpEnableCopyToPhi ( "pipeliner-enable-copytophi"  ,
cl::ReallyHidden  ,
cl::init(true ,
cl::ZeroOrMore  ,
cl::desc("Enable CopyToPhi DAG Mutation")   
)

◆ t1CondCodeOp()

static MachineOperand llvm::t1CondCodeOp ( bool  isDead = false)
inlinestatic

Get the operand corresponding to the conditional code result for Thumb1.

This operand will always refer to CPSR and it will have the Define flag set. You can optionally set the Dead flag by means of isDead.

Definition at line 470 of file ARMBaseInstrInfo.h.

References llvm::MachineOperand::CreateReg().

Referenced by ContainsReg(), emitPostLd(), emitPostSt(), emitThumbRegPlusImmediate(), emitThumbRegPlusImmInReg(), getLSMultipleTransferSize(), and VerifyLowRegs().

◆ TableGenMain()

int llvm::TableGenMain ( char argv0,
TableGenMainFn MainFn 
)

◆ thinLTOInternalizeAndPromoteInIndex()

void llvm::thinLTOInternalizeAndPromoteInIndex ( ModuleSummaryIndex Index,
function_ref< bool(StringRef, GlobalValue::GUID)>  isExported 
)

Update the linkages in the given Index to mark exported values as external and non-exported values as internal.

The ThinLTO backends must apply the changes to the Module via thinLTOInternalizeModule.

Definition at line 380 of file LTO.cpp.

References I, thinLTOInternalizeAndPromoteGUID(), and llvm::lto::InputFile::~InputFile().

Referenced by llvm::lto::createWriteIndexesThinBackend(), and internalizeAndPromoteInIndex().

◆ thinLTOInternalizeModule()

void llvm::thinLTOInternalizeModule ( Module TheModule,
const GVSummaryMapTy DefinedGlobals 
)

◆ thinLTOResolvePrevailingInIndex()

void llvm::thinLTOResolvePrevailingInIndex ( ModuleSummaryIndex Index,
function_ref< bool(GlobalValue::GUID, const GlobalValueSummary *)>  isPrevailing,
function_ref< void(StringRef, GlobalValue::GUID, GlobalValue::LinkageTypes)>  recordNewLinkage 
)

Resolve linkage for prevailing symbols in the Index.

Linkage changes recorded in the index and the ThinLTO backends must apply the changes to the module via thinLTOResolvePrevailingInModule.

This is done for correctness (if value exported, ensure we always emit a copy), and compile-time optimization (allow drop of duplicates).

Definition at line 338 of file LTO.cpp.

References I, llvm::detail::DenseSetImpl< ValueT, DenseMap< ValueT, detail::DenseSetEmpty, ValueInfoT, detail::DenseSetPair< ValueT > >, ValueInfoT >::insert(), and thinLTOResolvePrevailingGUID().

Referenced by llvm::lto::createWriteIndexesThinBackend().

◆ thinLTOResolvePrevailingInModule()

void llvm::thinLTOResolvePrevailingInModule ( Module TheModule,
const GVSummaryMapTy DefinedGlobals 
)

◆ to_float() [1/3]

bool llvm::to_float ( const Twine T,
float &  Num 
)
inline

Definition at line 212 of file StringExtras.h.

References llvm::detail::to_float().

Referenced by parseDouble().

◆ to_float() [2/3]

bool llvm::to_float ( const Twine T,
double &  Num 
)
inline

Definition at line 216 of file StringExtras.h.

References llvm::detail::to_float().

◆ to_float() [3/3]

bool llvm::to_float ( const Twine T,
long double &  Num 
)
inline

Definition at line 220 of file StringExtras.h.

References llvm::detail::to_float().

◆ to_hexString()

const std::string llvm::to_hexString ( uint64_t  Value,
bool  UpperCase = true 
)

◆ to_integer()

template<typename N >
bool llvm::to_integer ( StringRef  S,
N Num,
unsigned  Base = 0 
)

Convert the string S to an integer of the specified type using the radix Base.

If Base is 0, auto-detects the radix. Returns true if the number was successfully converted, false otherwise.

Definition at line 194 of file StringExtras.h.

References llvm::StringRef::getAsInteger().

◆ to_string()

template<class T >
const std::string llvm::to_string ( const T Value)

◆ to_vector()

template<unsigned Size, typename R >
SmallVector<typename std::remove_const<detail::ValueOfRange<R> >::type, Size> llvm::to_vector ( R &&  Range)

Given a range of type R, iterate the entire range and return a SmallVector with elements of the vector.

This is useful, for example, when you want to iterate a range and then sort the results.

Definition at line 1318 of file STLExtras.h.

References adl_begin(), and adl_end().

◆ toCABI()

AtomicOrderingCABI llvm::toCABI ( AtomicOrdering  ao)
inline

Definition at line 136 of file AtomicOrdering.h.

References acq_rel, acquire, consume, lookup(), relaxed, release, and seq_cst.

Referenced by GetRMWLibcall().

◆ toHex() [1/2]

std::string llvm::toHex ( StringRef  Input,
bool  LowerCase = false 
)
inline

Convert buffer Input to its hexadecimal representation.

The returned string is double the size of Input.

Definition at line 142 of file StringExtras.h.

References llvm::StringRef::size().

Referenced by computeLTOCacheKey(), printDwarfFileDirective(), and toHex().

◆ toHex() [2/2]

std::string llvm::toHex ( ArrayRef< uint8_t >  Input,
bool  LowerCase = false 
)
inline

Definition at line 157 of file StringExtras.h.

References toHex(), and toStringRef().

◆ toIRString()

const char* llvm::toIRString ( AtomicOrdering  ao)
inline

String used by LLVM IR to represent atomic ordering.

Definition at line 81 of file AtomicOrdering.h.

Referenced by llvm::MachineMemOperand::print().

◆ toLower()

char llvm::toLower ( char  x)
inline

Returns the corresponding lowercase character if x is uppercase.

Definition at line 112 of file StringExtras.h.

Referenced by ascii_strncasecmp(), llvm::StringRef::find_lower(), llvm::StringRef::lower(), printLowerCase(), and llvm::StringRef::rfind_lower().

◆ toString()

std::string llvm::toString ( Error  E)
inline

◆ toStringRef() [1/2]

StringRef llvm::toStringRef ( bool  B)
inline

◆ toStringRef() [2/2]

StringRef llvm::toStringRef ( ArrayRef< uint8_t >  Input)
inline

Construct a string ref from an array ref of unsigned chars.

Definition at line 56 of file StringExtras.h.

References llvm::ArrayRef< T >::begin(), and llvm::ArrayRef< T >::size().

◆ toStringRefArray()

std::vector<StringRef> llvm::toStringRefArray ( const char *const Strings)
inline

Given an array of c-style strings terminated by a null pointer, construct a vector of StringRefs representing the same strings without the terminating null string.

Definition at line 45 of file StringExtras.h.

◆ totalExponent()

static int llvm::totalExponent ( StringRef::iterator  p,
StringRef::iterator  end,
int  exponentAdjustment 
)
static

◆ toUpper()

char llvm::toUpper ( char  x)
inline

Returns the corresponding uppercase character if x is lowercase.

Definition at line 119 of file StringExtras.h.

Referenced by llvm::StringRef::upper().

◆ trailingHexadecimalFraction()

static lostFraction llvm::trailingHexadecimalFraction ( StringRef::iterator  p,
StringRef::iterator  end,
unsigned int  digitValue 
)
static

◆ transform()

template<typename R , typename OutputIt , typename UnaryPredicate >
OutputIt llvm::transform ( R &&  Range,
OutputIt  d_first,
UnaryPredicate  P 
)

◆ trimBlockToPageSize()

static sys::MemoryBlock llvm::trimBlockToPageSize ( sys::MemoryBlock  M)
static

◆ tryFoldSPUpdateIntoPushPop()

bool llvm::tryFoldSPUpdateIntoPushPop ( const ARMSubtarget Subtarget,
MachineFunction MF,
MachineInstr MI,
unsigned  NumBytes 
)

◆ tryGreater()

bool llvm::tryGreater ( int  TryVal,
int  CandVal,
GenericSchedulerBase::SchedCandidate TryCand,
GenericSchedulerBase::SchedCandidate Cand,
GenericSchedulerBase::CandReason  Reason 
)

◆ tryLatency()

bool llvm::tryLatency ( GenericSchedulerBase::SchedCandidate TryCand,
GenericSchedulerBase::SchedCandidate Cand,
SchedBoundary Zone 
)

◆ tryLess()

bool llvm::tryLess ( int  TryVal,
int  CandVal,
GenericSchedulerBase::SchedCandidate TryCand,
GenericSchedulerBase::SchedCandidate Cand,
GenericSchedulerBase::CandReason  Reason 
)

◆ tryPressure()

◆ TryToSimplifyUncondBranchFromEmptyBlock()

bool llvm::TryToSimplifyUncondBranchFromEmptyBlock ( BasicBlock BB,
DomTreeUpdater DTU = nullptr 
)

BB is known to contain an unconditional branch, and contains no instructions other than PHI nodes, potential debug intrinsics and the branch.

TryToSimplifyUncondBranchFromEmptyBlock - BB is known to contain an unconditional branch, and contains no instructions other than PHI nodes, potential side-effect free intrinsics and the branch.

If possible, eliminate BB by rewriting all the predecessors to branch to the successor block and return true. If we can't transform, return false.

Definition at line 960 of file Local.cpp.

References llvm::DomTreeUpdater::applyUpdates(), assert(), llvm::BasicBlock::begin(), CanPropagatePredecessorsForPHIs(), dbgs(), llvm::DominatorTreeBase< BasicBlock, false >::Delete, llvm::DomTreeUpdater::deleteBB(), E, llvm::Instruction::eraseFromParent(), llvm::BasicBlock::eraseFromParent(), find(), llvm::BasicBlock::front(), llvm::BasicBlock::getContext(), llvm::Function::getEntryBlock(), llvm::BasicBlock::getInstList(), llvm::LLVMContext::getMDKindID(), llvm::Instruction::getMetadata(), llvm::BasicBlock::getParent(), llvm::BasicBlock::getTerminator(), I, llvm::DominatorTreeBase< BasicBlock, false >::Insert, LLVM_DEBUG, llvm::iplist_impl< IntrusiveListT, TraitsT >::pop_back(), pred_begin(), pred_end(), llvm::SmallVectorTemplateBase< T >::push_back(), redirectValuesFromPredecessorsToPhi(), llvm::Value::replaceAllUsesWith(), llvm::Instruction::setMetadata(), llvm::iplist_impl< IntrusiveListT, TraitsT >::splice(), succ_empty(), succ_end(), and successors().

Referenced by llvm::JumpThreadingPass::runImpl(), llvm::SimplifyCFGOptions::setAssumptionCache(), and TryToMergeLandingPad().

◆ ulpsFromBoundary()

static APFloatBase::integerPart llvm::ulpsFromBoundary ( const APFloatBase::integerPart parts,
unsigned int  bits,
bool  isNearest 
)
static

◆ uniform() [1/2]

template<typename T , typename GenT >
T llvm::uniform ( GenT &  Gen,
T  Min,
T  Max 
)

Return a uniformly distributed random value between Min and Max.

Definition at line 22 of file Random.h.

Referenced by llvm::RandomIRBuilder::newSink().

◆ uniform() [2/2]

template<typename T , typename GenT >
T llvm::uniform ( GenT &  Gen)

Return a uniformly distributed random value of type T.

Definition at line 27 of file Random.h.

References max().

◆ unionModRef()

LLVM_NODISCARD ModRefInfo llvm::unionModRef ( const ModRefInfo  MRI1,
const ModRefInfo  MRI2 
)
inline

◆ unique_dyn_cast() [1/2]

template<class X , class Y >
LLVM_NODISCARD auto llvm::unique_dyn_cast ( std::unique_ptr< Y > &  Val) -> decltype(cast<X>(Val))
inline

◆ unique_dyn_cast() [2/2]

template<class X , class Y >
LLVM_NODISCARD auto llvm::unique_dyn_cast ( std::unique_ptr< Y > &&  Val) -> decltype(cast<X>(Val))
inline

Definition at line 376 of file Casting.h.

References unique_dyn_cast(), X, and Y.

◆ unique_dyn_cast_or_null() [1/2]

template<class X , class Y >
LLVM_NODISCARD auto llvm::unique_dyn_cast_or_null ( std::unique_ptr< Y > &  Val) -> decltype(cast<X>(Val))
inline

Definition at line 384 of file Casting.h.

References unique_dyn_cast(), X, and Y.

◆ unique_dyn_cast_or_null() [2/2]

template<class X , class Y >
LLVM_NODISCARD auto llvm::unique_dyn_cast_or_null ( std::unique_ptr< Y > &&  Val) -> decltype(cast<X>(Val))
inline

Definition at line 392 of file Casting.h.

◆ uniteAccessGroups()

MDNode * llvm::uniteAccessGroups ( MDNode AccGroups1,
MDNode AccGroups2 
)

◆ UnknownPadding()

unsigned llvm::UnknownPadding ( unsigned  LogAlign,
unsigned  KnownBits 
)
inline

UnknownPadding - Return the worst case padding that could result from unknown offset bits.

This does not include alignment padding caused by known offset bits.

Parameters
LogAlignlog2(alignment)
KnownBitsNumber of known low offset bits.

Definition at line 29 of file ARMBasicBlockInfo.h.

Referenced by CompareMBBNumbers(), getUnconditionalBrDisp(), and llvm::BasicBlockInfo::postOffset().

◆ UnrollAndJamLoop()

LoopUnrollResult llvm::UnrollAndJamLoop ( Loop L,
unsigned  Count,
unsigned  TripCount,
unsigned  TripMultiple,
bool  UnrollRemainder,
LoopInfo LI,
ScalarEvolution SE,
DominatorTree DT,
AssumptionCache AC,
OptimizationRemarkEmitter ORE,
Loop **  EpilogueLoop = nullptr 
)

Definition at line 174 of file LoopUnrollAndJam.cpp.

References llvm::LoopBase< BlockT, LoopT >::addBasicBlockToLoop(), llvm::DominatorTreeBase< NodeT, IsPostDom >::addNewBlock(), llvm::DominatorTreeBase< NodeT, IsPostDom >::applyUpdates(), assert(), llvm::Intrinsic::assume, llvm::BasicBlock::back(), llvm::sys::path::begin(), llvm::ValueMap< KeyT, ValueT, Config >::begin(), llvm::LoopBase< BlockT, LoopT >::begin(), llvm::BasicBlock::begin(), llvm::SmallPtrSetImpl< PtrType >::begin(), CloneBasicBlock(), llvm::LoopBase< BlockT, LoopT >::contains(), llvm::SmallPtrSetImpl< PtrType >::count(), llvm::BranchInst::Create(), dbgs(), DEBUG_TYPE, llvm::cfg::Delete, DFS(), dyn_cast(), llvm::OptimizationRemarkEmitter::emit(), llvm::SmallVectorImpl< T >::emplace_back(), llvm::SmallPtrSetImplBase::empty(), llvm::ValueMap< KeyT, ValueT, Config >::end(), llvm::SmallPtrSetImpl< PtrType >::erase(), llvm::LoopInfo::erase(), llvm::Instruction::eraseFromParent(), foldBlockIntoPredecessor(), llvm::ScalarEvolution::forgetLoop(), FullyUnrolled, llvm::Function::getBasicBlockList(), llvm::LoopBase< BlockT, LoopT >::getBlocks(), llvm::LoopBase< BlockT, LoopT >::getExitingBlock(), llvm::LoopBase< BlockT, LoopT >::getHeader(), llvm::DomTreeNodeBase< NodeT >::getIDom(), llvm::LoopBase< BlockT, LoopT >::getLoopLatch(), llvm::LoopBase< BlockT, LoopT >::getLoopPreheader(), llvm::Value::getName(), llvm::DominatorTreeBase< NodeT, IsPostDom >::getNode(), llvm::BasicBlock::getParent(), llvm::LoopBase< BlockT, LoopT >::getParentLoop(), llvm::Loop::getStartLoc(), llvm::LoopBase< BlockT, LoopT >::getSubLoops(), llvm::BranchInst::getSuccessor(), llvm::BasicBlock::getTerminator(), I, llvm::cfg::Insert, llvm::SmallPtrSetImpl< PtrType >::insert(), llvm::Function::isDebugInfoForProfiling(), llvm::Loop::isLoopSimplifyForm(), llvm::Loop::isRecursivelyLCSSAForm(), llvm::BranchInst::isUnconditional(), LLVM_DEBUG, llvm_unreachable, llvm::Instruction::moveBefore(), moveHeaderPhiOperandsToForeBlocks(), PartiallyUnrolled, partitionOuterLoopBlocks(), llvm::BasicBlock::phis(), llvm::iplist_impl< IntrusiveListT, TraitsT >::push_back(), llvm::AssumptionCache::registerAssumption(), remapInstruction(), llvm::Value::replaceAllUsesWith(), llvm::BranchInst::setSuccessor(), simplifyLoopAfterUnroll(), Unmodified, UnrollRuntimeLoopRemainder(), llvm::DominatorTreeBase< NodeT, IsPostDom >::verify(), and VI.

Referenced by tryToUnrollAndJamLoop().

◆ UnrollLoop()

LoopUnrollResult llvm::UnrollLoop ( Loop L,
unsigned  Count,
unsigned  TripCount,
bool  Force,
bool  AllowRuntime,
bool  AllowExpensiveTripCount,
bool  PreserveCondBr,
bool  PreserveOnlyFirst,
unsigned  TripMultiple,
unsigned  PeelCount,
bool  UnrollRemainder,
LoopInfo LI,
ScalarEvolution SE,
DominatorTree DT,
AssumptionCache AC,
OptimizationRemarkEmitter ORE,
bool  PreserveLCSSA,
Loop **  RemainderLoop = nullptr 
)

Unroll the given loop by Count.

The loop must be in LCSSA form. Unrolling can only fail when the loop's latch block is not terminated by a conditional branch instruction. However, if the trip count (and multiple) are not known, loop unrolling will mostly produce more code that is no faster.

TripCount is the upper bound of the iteration on which control exits LatchBlock. Control may exit the loop prior to TripCount iterations either via an early branch in other loop block or via LatchBlock terminator. This is relaxed from the general definition of trip count which is the number of times the loop header executes. Note that UnrollLoop assumes that the loop counter test is in LatchBlock in order to remove unnecesssary instances of the test. If control can exit the loop from the LatchBlock's terminator prior to TripCount iterations, flag PreserveCondBr needs to be set.

PreserveCondBr indicates whether the conditional branch of the LatchBlock needs to be preserved. It is needed when we use trip count upper bound to fully unroll the loop. If PreserveOnlyFirst is also set then only the first conditional branch needs to be preserved.

Similarly, TripMultiple divides the number of times that the LatchBlock may execute without exiting the loop.

If AllowRuntime is true then UnrollLoop will consider unrolling loops that have a runtime (i.e. not compile time constant) trip count. Unrolling these loops require a unroll "prologue" that runs "RuntimeTripCount % Count" iterations before branching into the unrolled loop. UnrollLoop will not runtime-unroll the loop if computing RuntimeTripCount will be expensive and AllowExpensiveTripCount is false.

If we want to perform PGO-based loop peeling, PeelCount is set to the number of iterations we want to peel off.

The LoopInfo Analysis that is passed will be kept consistent.

This utility preserves LoopInfo. It will also preserve ScalarEvolution and DominatorTree if they are non-null.

If RemainderLoop is non-null, it will receive the remainder loop (if required and not fully unrolled).

Definition at line 335 of file LoopUnroll.cpp.

References addClonedBlockToLoopInfo(), llvm::DominatorTreeBase< NodeT, IsPostDom >::addNewBlock(), any_of(), assert(), llvm::Intrinsic::assume, llvm::BasicBlock::back(), llvm::ValueMap< KeyT, ValueT, Config >::begin(), llvm::BasicBlock::begin(), llvm::LoopBlocksDFS::beginRPO(), llvm::LoopBase< BlockT, LoopT >::blocks(), llvm::DominatorTreeBase< NodeT, IsPostDom >::changeImmediateDominator(), CloneBasicBlock(), llvm::LoopBase< BlockT, LoopT >::contains(), llvm::BranchInst::Create(), dbgs(), DEBUG_TYPE, DFS(), dyn_cast(), llvm::OptimizationRemarkEmitter::emit(), llvm::ValueMap< KeyT, ValueT, Config >::end(), llvm::LoopBlocksDFS::endRPO(), llvm::iplist_impl< IntrusiveListT, TraitsT >::erase(), llvm::LoopInfo::erase(), llvm::Instruction::eraseFromParent(), llvm::CallingConv::Fast, llvm::ValueMap< KeyT, ValueT, Config >::find(), llvm::DominatorTreeBase< NodeT, IsPostDom >::findNearestCommonDominator(), foldBlockIntoPredecessor(), for(), llvm::ScalarEvolution::forgetTopmostLoop(), formLCSSARecursively(), FullyUnrolled, llvm::Function::getBasicBlockList(), llvm::LoopBase< BlockT, LoopT >::getBlocks(), llvm::LoopBase< BlockT, LoopT >::getExitBlocks(), llvm::LoopBase< BlockT, LoopT >::getExitingBlock(), llvm::LoopBase< BlockT, LoopT >::getHeader(), llvm::DomTreeNodeBase< NodeT >::getIDom(), llvm::PHINode::getIncomingValueForBlock(), llvm::BasicBlock::getInstList(), llvm::LoopInfoBase< BlockT, LoopT >::getLoopFor(), llvm::LoopBase< BlockT, LoopT >::getLoopLatch(), llvm::LoopBase< BlockT, LoopT >::getLoopPreheader(), llvm::Value::getName(), llvm::DominatorTreeBase< NodeT, IsPostDom >::getNode(), llvm::BasicBlock::getParent(), llvm::LoopBase< BlockT, LoopT >::getParentLoop(), llvm::ScalarEvolution::getSmallConstantTripCount(), llvm::ScalarEvolution::getSmallConstantTripMultiple(), llvm::Loop::getStartLoc(), llvm::BranchInst::getSuccessor(), llvm::BasicBlock::getTerminator(), GreatestCommonDivisor64(), llvm::BasicBlock::hasAddressTaken(), I, llvm::SetVector< T, SmallVector< T, N >, SmallDenseSet< T, N > >::insert(), llvm::Function::isDebugInfoForProfiling(), isEpilogProfitable(), llvm::Loop::isLCSSAForm(), llvm::Loop::isSafeToClone(), llvm::BranchInst::isUnconditional(), LLVM_DEBUG, needToInsertPhisForLCSSA(), PartiallyUnrolled, peelLoop(), llvm::LoopBlocksDFS::perform(), llvm::SmallVectorTemplateBase< T >::push_back(), llvm::iplist_impl< IntrusiveListT, TraitsT >::push_back(), llvm::AssumptionCache::registerAssumption(), remapInstruction(), llvm::sys::fs::remove(), replace(), llvm::ValueMapIterator< DenseMapT, KeyT >::ValueTypeProxy::second, llvm::BranchInst::setSuccessor(), simplifyLoop(), simplifyLoopAfterUnroll(), successors(), Unmodified, UnrollRuntimeEpilog, UnrollRuntimeLoopRemainder(), UnrollVerifyDomtree, llvm::DominatorTreeBase< NodeT, IsPostDom >::verify(), and VI.

Referenced by tryToUnrollLoop(), and UnrollRuntimeLoopRemainder().

◆ UnrollRuntimeLoopRemainder()

bool llvm::UnrollRuntimeLoopRemainder ( Loop L,
unsigned  Count,
bool  AllowExpensiveTripCount,
bool  UseEpilogRemainder,
bool  UnrollRemainder,
LoopInfo LI,
ScalarEvolution SE,
DominatorTree DT,
AssumptionCache AC,
bool  PreserveLCSSA,
Loop **  ResultLoop = nullptr 
)

Insert code in the prolog/epilog code when unrolling a loop with a run-time trip-count.

This method assumes that the loop unroll factor is total number of loop bodies in the loop after unrolling. (Some folks refer to the unroll factor as the number of extra copies added). We assume also that the loop unroll factor is a power-of-two. So, after unrolling the loop, the number of loop bodies executed is 2, 4, 8, etc. Note - LLVM converts the if-then-sequence to a switch instruction in SimplifyCFG.cpp. Then, the backend decides how code for the switch instruction is generated.

Prolog case extraiters = tripcount % loopfactor if (extraiters == 0) jump Loop: else jump Prol: Prol: LoopBody; extraiters -= 1 // Omitted if unroll factor is 2. if (extraiters != 0) jump Prol: // Omitted if unroll factor is 2. if (tripcount < loopfactor) jump End: Loop: ... End:

Epilog case extraiters = tripcount % loopfactor if (tripcount < loopfactor) jump LoopExit: unroll_iters = tripcount - extraiters Loop: LoopBody; (executes unroll_iter times); unroll_iter -= 1 if (unroll_iter != 0) jump Loop: LoopExit: if (extraiters == 0) jump EpilExit: Epil: LoopBody; (executes extraiters times) extraiters -= 1 // Omitted if unroll factor is 2. if (extraiters != 0) jump Epil: // Omitted if unroll factor is 2. EpilExit:

Definition at line 554 of file LoopUnrollRuntime.cpp.

References llvm::PHINode::addIncoming(), any_of(), assert(), B, llvm::LoopBase< BlockT, LoopT >::blocks(), canProfitablyUnrollMultiExitLoop(), canSafelyUnrollMultiExitLoop(), llvm::DominatorTreeBase< NodeT, IsPostDom >::changeImmediateDominator(), CloneLoopBlocks(), ConnectEpilog(), ConnectProlog(), llvm::LoopBase< BlockT, LoopT >::contains(), llvm::PHINode::Create(), llvm::IRBuilder< T, Inserter >::CreateAdd(), llvm::IRBuilder< T, Inserter >::CreateAnd(), llvm::IRBuilder< T, Inserter >::CreateCondBr(), llvm::IRBuilder< T, Inserter >::CreateICmpULT(), llvm::IRBuilder< T, Inserter >::CreateIsNotNull(), llvm::IRBuilder< T, Inserter >::CreateURem(), dbgs(), llvm::Loop::dump(), llvm::Function::end(), llvm::Instruction::eraseFromParent(), llvm::SCEVExpander::expandCodeFor(), F(), llvm::ScalarEvolution::forgetTopmostLoop(), formDedicatedExitBlocks(), llvm::JumpTable::Full, FullyUnrolled, llvm::ConstantInt::get(), llvm::ScalarEvolution::getAddExpr(), llvm::Function::getBasicBlockList(), getBitWidth(), llvm::DomTreeNodeBase< NodeT >::getBlock(), llvm::ScalarEvolution::getConstant(), llvm::Module::getDataLayout(), llvm::Instruction::getDebugLoc(), llvm::ScalarEvolution::getExitCount(), llvm::LoopBase< BlockT, LoopT >::getExitingBlock(), llvm::BasicBlock::getFirstNonPHI(), llvm::LoopBase< BlockT, LoopT >::getHeader(), llvm::PHINode::getIncomingBlock(), llvm::PHINode::getIncomingValue(), llvm::ilist_node_impl< OptionsT >::getIterator(), llvm::LoopInfoBase< BlockT, LoopT >::getLoopFor(), llvm::LoopBase< BlockT, LoopT >::getLoopLatch(), llvm::LoopBase< BlockT, LoopT >::getLoopPreheader(), llvm::BasicBlock::getModule(), llvm::Value::getName(), llvm::DominatorTreeBase< NodeT, IsPostDom >::getNode(), llvm::PHINode::getNumIncomingValues(), llvm::BasicBlock::getParent(), llvm::BranchInst::getSuccessor(), llvm::BasicBlock::getTerminator(), llvm::SCEV::getType(), llvm::Value::getType(), I, llvm::SCEVExpander::isHighCostExpansion(), llvm::Type::isIntegerTy(), llvm::Loop::isLoopSimplifyForm(), isPowerOf2_32(), llvm::BranchInst::isUnconditional(), LLVM_DEBUG, Log2_32(), llvm::ValueMap< KeyT, ValueT, Config >::lookup(), llvm::LoopBlocksDFS::perform(), predecessors(), llvm::SmallVectorTemplateBase< T >::push_back(), RemapInstruction(), RF_IgnoreMissingLocals, RF_NoModuleLevelChanges, llvm::BranchInst::setCondition(), llvm::Instruction::setDebugLoc(), llvm::Value::setName(), llvm::SmallVectorBase::size(), llvm::iplist_impl< IntrusiveListT, TraitsT >::splice(), SplitBlock(), SplitBlockPredecessors(), SplitEdge(), successors(), Unmodified, UnrollLoop(), and llvm::DominatorTreeBase< NodeT, IsPostDom >::verify().

Referenced by UnrollAndJamLoop(), and UnrollLoop().

◆ unwrap() [1/10]

Optional<CodeModel::Model> llvm::unwrap ( LLVMCodeModel  Model,
bool JIT 
)
inline

◆ unwrap() [2/10]

Metadata** llvm::unwrap ( LLVMMetadataRef MDs)
inline

Definition at line 145 of file Metadata.h.

◆ unwrap() [3/10]

Attribute llvm::unwrap ( LLVMAttributeRef  Attr)
inline

Definition at line 195 of file Attributes.h.

References llvm::Attribute::fromRawPointer().

Referenced by LLVMABIAlignmentOfType(), LLVMABISizeOfType(), LLVMAddAggressiveDCEPass(), LLVMAddAggressiveInstCombinerPass(), LLVMAddAlias(), LLVMAddAlignmentFromAssumptionsPass(), LLVMAddAlwaysInlinerPass(), LLVMAddAnalysisPasses(), LLVMAddArgumentPromotionPass(), LLVMAddAttributeAtIndex(), LLVMAddBasicAliasAnalysisPass(), LLVMAddBitTrackingDCEPass(), LLVMAddCalledValuePropagationPass(), LLVMAddCallSiteAttribute(), LLVMAddCase(), LLVMAddCFGSimplificationPass(), LLVMAddClause(), LLVMAddConstantMergePass(), LLVMAddConstantPropagationPass(), LLVMAddCoroCleanupPass(), LLVMAddCoroEarlyPass(), LLVMAddCoroElidePass(), LLVMAddCoroSplitPass(), LLVMAddCorrelatedValuePropagationPass(), LLVMAddDeadArgEliminationPass(), LLVMAddDeadStoreEliminationPass(), LLVMAddDemoteMemoryToRegisterPass(), LLVMAddDestination(), LLVMAddEarlyCSEMemSSAPass(), LLVMAddEarlyCSEPass(), LLVMAddFunction(), LLVMAddFunctionAttrsPass(), LLVMAddFunctionInliningPass(), LLVMAddGlobal(), LLVMAddGlobalDCEPass(), LLVMAddGlobalInAddressSpace(), LLVMAddGlobalMapping(), LLVMAddGlobalOptimizerPass(), LLVMAddGVNHoistLegacyPass(), LLVMAddGVNPass(), LLVMAddHandler(), LLVMAddIncoming(), LLVMAddIndVarSimplifyPass(), LLVMAddInstructionCombiningPass(), LLVMAddInternalizePass(), LLVMAddIPConstantPropagationPass(), LLVMAddIPSCCPPass(), LLVMAddJumpThreadingPass(), LLVMAddLICMPass(), LLVMAddLoopDeletionPass(), LLVMAddLoopIdiomPass(), LLVMAddLoopRerollPass(), LLVMAddLoopRotatePass(), LLVMAddLoopSimplifyCFGPass(), LLVMAddLoopSinkPass(), LLVMAddLoopUnrollAndJamPass(), LLVMAddLoopUnrollPass(), LLVMAddLoopUnswitchPass(), LLVMAddLoopVectorizePass(), LLVMAddLowerAtomicPass(), LLVMAddLowerExpectIntrinsicPass(), LLVMAddLowerSwitchPass(), LLVMAddMemCpyOptPass(), LLVMAddMergedLoadStoreMotionPass(), LLVMAddModule(), LLVMAddModuleFlag(), LLVMAddNamedMetadataOperand(), LLVMAddNewGVNPass(), LLVMAddPartiallyInlineLibCallsPass(), LLVMAddPromoteMemoryToRegisterPass(), LLVMAddPruneEHPass(), LLVMAddReassociatePass(), LLVMAddScalarizerPass(), LLVMAddScalarReplAggregatesPass(), LLVMAddScalarReplAggregatesPassSSA(), LLVMAddScalarReplAggregatesPassWithThreshold(), LLVMAddSCCPPass(), LLVMAddScopedNoAliasAAPass(), LLVMAddSLPVectorizePass(), LLVMAddStripDeadPrototypesPass(), LLVMAddStripSymbolsPass(), LLVMAddTailCallEliminationPass(), LLVMAddTargetLibraryInfo(), LLVMAddTypeBasedAliasAnalysisPass(), LLVMAddUnifyFunctionExitNodesPass(), LLVMAddVerifierPass(), LLVMAlignOf(), LLVMAppendBasicBlockInContext(), LLVMAppendModuleInlineAsm(), LLVMArrayType(), LLVMBasicBlockAsValue(), LLVMBlockAddress(), LLVMBuildAdd(), LLVMBuildAddrSpaceCast(), LLVMBuildAggregateRet(), LLVMBuildAlloca(), LLVMBuildAnd(), LLVMBuildArrayAlloca(), LLVMBuildArrayMalloc(), LLVMBuildAShr(), LLVMBuildAtomicCmpXchg(), LLVMBuildAtomicRMW(), LLVMBuildBinOp(), LLVMBuildBitCast(), LLVMBuildBr(), LLVMBuildCall(), LLVMBuildCall2(), LLVMBuildCast(), LLVMBuildCatchPad(), LLVMBuildCatchRet(), LLVMBuildCatchSwitch(), LLVMBuildCleanupPad(), LLVMBuildCleanupRet(), LLVMBuildCondBr(), LLVMBuildExactSDiv(), LLVMBuildExactUDiv(), LLVMBuildExtractElement(), LLVMBuildExtractValue(), LLVMBuildFAdd(), LLVMBuildFCmp(), LLVMBuildFDiv(), LLVMBuildFence(), LLVMBuildFMul(), LLVMBuildFNeg(), LLVMBuildFPCast(), LLVMBuildFPExt(), LLVMBuildFPToSI(), LLVMBuildFPToUI(), LLVMBuildFPTrunc(), LLVMBuildFree(), LLVMBuildFRem(), LLVMBuildFSub(), LLVMBuildGEP(), LLVMBuildGEP2(), LLVMBuildGlobalString(), LLVMBuildGlobalStringPtr(), LLVMBuildICmp(), LLVMBuildInBoundsGEP(), LLVMBuildInBoundsGEP2(), LLVMBuildIndirectBr(), LLVMBuildInsertElement(), LLVMBuildInsertValue(), LLVMBuildIntCast(), LLVMBuildIntCast2(), LLVMBuildIntToPtr(), LLVMBuildInvoke(), LLVMBuildInvoke2(), LLVMBuildIsNotNull(), LLVMBuildIsNull(), LLVMBuildLandingPad(), LLVMBuildLoad(), LLVMBuildLoad2(), LLVMBuildLShr(), LLVMBuildMalloc(), LLVMBuildMemCpy(), LLVMBuildMemMove(), LLVMBuildMemSet(), LLVMBuildMul(), LLVMBuildNeg(), LLVMBuildNot(), LLVMBuildNSWAdd(), LLVMBuildNSWMul(), LLVMBuildNSWNeg(), LLVMBuildNSWSub(), LLVMBuildNUWAdd(), LLVMBuildNUWMul(), LLVMBuildNUWNeg(), LLVMBuildNUWSub(), LLVMBuildOr(), LLVMBuildPhi(), LLVMBuildPointerCast(), LLVMBuildPtrDiff(), LLVMBuildPtrToInt(), LLVMBuildResume(), LLVMBuildRet(), LLVMBuildRetVoid(), LLVMBuildSDiv(), LLVMBuildSelect(), LLVMBuildSExt(), LLVMBuildSExtOrBitCast(), LLVMBuildShl(), LLVMBuildShuffleVector(), LLVMBuildSIToFP(), LLVMBuildSRem(), LLVMBuildStore(), LLVMBuildStructGEP(), LLVMBuildStructGEP2(), LLVMBuildSub(), LLVMBuildSwitch(), LLVMBuildTrunc(), LLVMBuildTruncOrBitCast(), LLVMBuildUDiv(), LLVMBuildUIToFP(), LLVMBuildUnreachable(), LLVMBuildURem(), LLVMBuildVAArg(), LLVMBuildXor(), LLVMBuildZExt(), LLVMBuildZExtOrBitCast(), LLVMByteOrder(), LLVMCallFrameAlignmentOfType(), LLVMClearInsertionPosition(), LLVMCloneModule(), LLVMConstAddrSpaceCast(), LLVMConstAllOnes(), LLVMConstArray(), LLVMConstBitCast(), LLVMConstFPCast(), LLVMConstFPExt(), LLVMConstFPToSI(), LLVMConstFPToUI(), LLVMConstFPTrunc(), LLVMConstInlineAsm(), LLVMConstIntCast(), LLVMConstIntToPtr(), LLVMConstNamedStruct(), LLVMConstNull(), LLVMConstPointerCast(), LLVMConstPtrToInt(), LLVMConstReal(), LLVMConstRealOfString(), LLVMConstRealOfStringAndSize(), LLVMConstSExt(), LLVMConstSExtOrBitCast(), LLVMConstSIToFP(), LLVMConstStringInContext(), LLVMConstStructInContext(), LLVMConstTrunc(), LLVMConstTruncOrBitCast(), LLVMConstUIToFP(), LLVMConstZExt(), LLVMConstZExtOrBitCast(), LLVMContextDispose(), LLVMContextGetDiagnosticContext(), LLVMContextGetDiagnosticHandler(), LLVMContextSetDiagnosticHandler(), LLVMContextSetDiscardValueNames(), LLVMContextSetYieldCallback(), LLVMContextShouldDiscardValueNames(), LLVMCopyModuleFlagsMetadata(), LLVMCopyStringRepOfTargetData(), LLVMCreateBasicBlockInContext(), LLVMCreateBuilderInContext(), LLVMCreateDIBuilder(), LLVMCreateDIBuilderDisallowUnresolved(), LLVMCreateEnumAttribute(), LLVMCreateExecutionEngineForModule(), LLVMCreateFunctionPassManagerForModule(), LLVMCreateGenericValueOfFloat(), LLVMCreateInterpreterForModule(), LLVMCreateJITCompilerForModule(), LLVMCreateMCJITCompilerForModule(), LLVMCreateObjectFile(), LLVMCreateStringAttribute(), LLVMCreateTargetDataLayout(), LLVMCreateTargetMachine(), LLVMDeleteBasicBlock(), LLVMDIBuilderCreateArrayType(), LLVMDIBuilderCreateArtificialType(), LLVMDIBuilderCreateAutoVariable(), LLVMDIBuilderCreateBasicType(), LLVMDIBuilderCreateBitFieldMemberType(), LLVMDIBuilderCreateClassType(), LLVMDIBuilderCreateCompileUnit(), LLVMDIBuilderCreateConstantValueExpression(), LLVMDIBuilderCreateDebugLocation(), LLVMDIBuilderCreateEnumerationType(), LLVMDIBuilderCreateExpression(), LLVMDIBuilderCreateFile(), LLVMDIBuilderCreateForwardDecl(), LLVMDIBuilderCreateFunction(), LLVMDIBuilderCreateGlobalVariableExpression(), LLVMDIBuilderCreateImportedDeclaration(), LLVMDIBuilderCreateImportedModuleFromAlias(), LLVMDIBuilderCreateImportedModuleFromModule(), LLVMDIBuilderCreateImportedModuleFromNamespace(), LLVMDIBuilderCreateInheritance(), LLVMDIBuilderCreateLexicalBlock(), LLVMDIBuilderCreateLexicalBlockFile(), LLVMDIBuilderCreateMemberPointerType(), LLVMDIBuilderCreateMemberType(), LLVMDIBuilderCreateModule(), LLVMDIBuilderCreateNameSpace(), LLVMDIBuilderCreateNullPtrType(), LLVMDIBuilderCreateObjCIVar(), LLVMDIBuilderCreateObjCProperty(), LLVMDIBuilderCreateObjectPointerType(), LLVMDIBuilderCreateParameterVariable(), LLVMDIBuilderCreatePointerType(), LLVMDIBuilderCreateQualifiedType(), LLVMDIBuilderCreateReferenceType(), LLVMDIBuilderCreateReplaceableCompositeType(), LLVMDIBuilderCreateStaticMemberType(), LLVMDIBuilderCreateStructType(), LLVMDIBuilderCreateSubroutineType(), LLVMDIBuilderCreateTempGlobalVariableFwdDecl(), LLVMDIBuilderCreateTypedef(), LLVMDIBuilderCreateUnionType(), LLVMDIBuilderCreateUnspecifiedType(), LLVMDIBuilderCreateVectorType(), LLVMDIBuilderFinalize(), LLVMDIBuilderGetOrCreateArray(), LLVMDIBuilderGetOrCreateSubrange(), LLVMDIBuilderGetOrCreateTypeArray(), LLVMDIBuilderInsertDbgValueAtEnd(), LLVMDIBuilderInsertDbgValueBefore(), LLVMDIBuilderInsertDeclareAtEnd(), LLVMDIBuilderInsertDeclareBefore(), LLVMDisposeBuilder(), LLVMDisposeDIBuilder(), LLVMDisposeExecutionEngine(), LLVMDisposeGenericValue(), LLVMDisposeMCJITMemoryManager(), LLVMDisposeMemoryBuffer(), LLVMDisposeModule(), LLVMDisposeModuleProvider(), LLVMDisposeObjectFile(), LLVMDisposePassManager(), LLVMDisposeRelocationIterator(), LLVMDisposeSectionIterator(), LLVMDisposeSymbolIterator(), LLVMDisposeTargetData(), LLVMDisposeTargetMachine(), LLVMDoubleTypeInContext(), LLVMDumpModule(), LLVMDumpType(), LLVMDumpValue(), LLVMElementAtOffset(), LLVMFindFunction(), LLVMFloatTypeInContext(), LLVMFP128TypeInContext(), LLVMFunctionType(), LLVMGenericValueIntWidth(), LLVMGenericValueToFloat(), LLVMGenericValueToInt(), LLVMGenericValueToPointer(), LLVMGetBasicBlockName(), LLVMGetBasicBlockParent(), LLVMGetBasicBlockTerminator(), LLVMGetBitcodeModuleInContext(), LLVMGetBitcodeModuleInContext2(), LLVMGetBufferSize(), LLVMGetBufferStart(), LLVMGetComdatSelectionKind(), LLVMGetCurrentDebugLocation(), LLVMGetDataLayoutStr(), LLVMGetDiagInfoDescription(), LLVMGetDiagInfoSeverity(), LLVMGetEnumAttributeKind(), LLVMGetEnumAttributeValue(), LLVMGetExecutionEngineTargetData(), LLVMGetExecutionEngineTargetMachine(), LLVMGetFCmpPredicate(), LLVMGetFirstFunction(), LLVMGetFirstGlobal(), LLVMGetFirstGlobalAlias(), LLVMGetFirstInstruction(), LLVMGetFirstNamedMetadata(), LLVMGetFirstUse(), LLVMGetFunctionAddress(), LLVMGetGlobalValueAddress(), LLVMGetICmpPredicate(), LLVMGetIndices(), LLVMGetInsertBlock(), LLVMGetInstructionOpcode(), LLVMGetIntrinsicDeclaration(), LLVMGetIntrinsicID(), LLVMGetLastFunction(), LLVMGetLastGlobal(), LLVMGetLastGlobalAlias(), LLVMGetLastInstruction(), LLVMGetLastNamedMetadata(), LLVMGetMDKindIDInContext(), LLVMGetMDNodeNumOperands(), LLVMGetMDNodeOperands(), LLVMGetMDString(), LLVMGetMetadataKind(), LLVMGetModuleContext(), LLVMGetModuleDataLayout(), LLVMGetModuleDebugMetadataVersion(), LLVMGetModuleFlag(), LLVMGetModuleIdentifier(), LLVMGetModuleInlineAsm(), LLVMGetNamedFunction(), LLVMGetNamedGlobal(), LLVMGetNamedGlobalAlias(), LLVMGetNamedMetadata(), LLVMGetNamedMetadataNumOperands(), LLVMGetNamedMetadataOperands(), LLVMGetNextBasicBlock(), LLVMGetNextTarget(), LLVMGetNextUse(), LLVMGetNumArgOperands(), LLVMGetNumContainedTypes(), LLVMGetNumIndices(), LLVMGetNumOperands(), LLVMGetOperand(), LLVMGetOperandUse(), LLVMGetOrInsertComdat(), LLVMGetOrInsertNamedMetadata(), LLVMGetPointerToGlobal(), LLVMGetPreviousBasicBlock(), LLVMGetRelocationOffset(), LLVMGetRelocations(), LLVMGetRelocationSymbol(), LLVMGetRelocationType(), LLVMGetRelocationTypeName(), LLVMGetSectionAddress(), LLVMGetSectionContainsSymbol(), LLVMGetSectionContents(), LLVMGetSectionName(), LLVMGetSections(), LLVMGetSectionSize(), LLVMGetSourceFileName(), LLVMGetStringAttributeKind(), LLVMGetStringAttributeValue(), LLVMGetSubtypes(), LLVMGetSymbolAddress(), LLVMGetSymbolName(), LLVMGetSymbols(), LLVMGetSymbolSize(), LLVMGetTarget(), LLVMGetTargetDescription(), LLVMGetTargetMachineCPU(), LLVMGetTargetMachineFeatureString(), LLVMGetTargetMachineTarget(), LLVMGetTargetMachineTriple(), LLVMGetTargetName(), LLVMGetTypeByName(), LLVMGetTypeContext(), LLVMGetTypeKind(), LLVMGetUndef(), LLVMGetUnwindDest(), LLVMGetUsedValue(), LLVMGetUser(), LLVMGetValueKind(), LLVMGetValueName(), LLVMGetValueName2(), LLVMGlobalCopyAllMetadata(), LLVMHalfTypeInContext(), LLVMInitializeAggressiveInstCombiner(), LLVMInitializeAnalysis(), LLVMInitializeCodeGen(), LLVMInitializeCore(), LLVMInitializeInstCombine(), LLVMInitializeInstrumentation(), LLVMInitializeIPA(), LLVMInitializeIPO(), LLVMInitializeObjCARCOpts(), LLVMInitializeScalarOpts(), LLVMInitializeTarget(), LLVMInitializeTransformUtils(), LLVMInitializeVectorization(), LLVMInsertBasicBlockInContext(), LLVMInsertIntoBuilder(), LLVMInsertIntoBuilderWithName(), LLVMInstructionClone(), LLVMInt128TypeInContext(), LLVMInt16TypeInContext(), LLVMInt1TypeInContext(), LLVMInt32TypeInContext(), LLVMInt64TypeInContext(), LLVMInt8TypeInContext(), LLVMIntPtrType(), LLVMIntPtrTypeForAS(), LLVMIntPtrTypeForASInContext(), LLVMIntPtrTypeInContext(), LLVMIntrinsicCopyOverloadedName(), LLVMIntrinsicGetType(), LLVMIntTypeInContext(), LLVMIsAMDNode(), LLVMIsAMDString(), LLVMIsATerminatorInst(), LLVMIsConstant(), LLVMIsEnumAttribute(), LLVMIsNull(), LLVMIsRelocationIteratorAtEnd(), LLVMIsSectionIteratorAtEnd(), LLVMIsStringAttribute(), LLVMIsSymbolIteratorAtEnd(), LLVMIsUndef(), LLVMLabelTypeInContext(), LLVMLinkModules2(), LLVMMDNodeInContext(), LLVMMDStringInContext(), LLVMMetadataAsValue(), LLVMMetadataTypeInContext(), LLVMModuleCreateWithNameInContext(), LLVMMoveBasicBlockAfter(), LLVMMoveBasicBlockBefore(), LLVMMoveToContainingSection(), LLVMMoveToNextRelocation(), LLVMMoveToNextSection(), LLVMMoveToNextSymbol(), LLVMOffsetOfElement(), LLVMOptRemarkParserDispose(), LLVMOptRemarkParserGetErrorMessage(), LLVMOptRemarkParserGetNext(), LLVMOptRemarkParserHasError(), LLVMOrcAddEagerlyCompiledIR(), LLVMOrcAddLazilyCompiledIR(), LLVMOrcAddObjectFile(), LLVMOrcCreateIndirectStub(), LLVMOrcCreateInstance(), LLVMOrcCreateLazyCompileCallback(), LLVMOrcDisposeInstance(), LLVMOrcGetErrorMsg(), LLVMOrcGetMangledSymbol(), LLVMOrcGetSymbolAddress(), LLVMOrcGetSymbolAddressIn(), LLVMOrcRegisterJITEventListener(), LLVMOrcRemoveModule(), LLVMOrcSetIndirectStubPointer(), LLVMOrcUnregisterJITEventListener(), LLVMParseBitcodeInContext(), LLVMParseBitcodeInContext2(), LLVMParseIRInContext(), LLVMPassManagerBuilderDispose(), LLVMPassManagerBuilderPopulateFunctionPassManager(), LLVMPassManagerBuilderPopulateLTOPassManager(), LLVMPassManagerBuilderPopulateModulePassManager(), LLVMPassManagerBuilderSetDisableUnrollLoops(), LLVMPassManagerBuilderSetOptLevel(), LLVMPassManagerBuilderSetSizeLevel(), LLVMPassManagerBuilderUseInlinerWithThreshold(), LLVMPointerSize(), LLVMPointerSizeForAS(), LLVMPointerType(), LLVMPositionBuilder(), LLVMPositionBuilderAtEnd(), LLVMPositionBuilderBefore(), LLVMPPCFP128TypeInContext(), LLVMPreferredAlignmentOfGlobal(), LLVMPreferredAlignmentOfType(), LLVMPrintModuleToFile(), LLVMPrintModuleToString(), LLVMPrintTypeToString(), LLVMPrintValueToString(), LLVMRemoveBasicBlockFromParent(), LLVMRemoveModule(), LLVMReplaceAllUsesWith(), LLVMRunFunction(), LLVMRunFunctionAsMain(), LLVMRunPassManager(), LLVMRunStaticConstructors(), LLVMRunStaticDestructors(), LLVMSetArgOperand(), LLVMSetComdat(), LLVMSetComdatSelectionKind(), LLVMSetCondition(), LLVMSetCurrentDebugLocation(), LLVMSetDataLayout(), LLVMSetInstDebugLocation(), LLVMSetModuleDataLayout(), LLVMSetModuleIdentifier(), LLVMSetModuleInlineAsm(), LLVMSetModuleInlineAsm2(), LLVMSetNormalDest(), LLVMSetOperand(), LLVMSetSourceFileName(), LLVMSetSuccessor(), LLVMSetTarget(), LLVMSetTargetMachineAsmVerbosity(), LLVMSetUnwindDest(), LLVMSetValueName(), LLVMSetValueName2(), LLVMSizeOf(), LLVMSizeOfTypeInBits(), LLVMStoreSizeOfType(), LLVMStripModuleDebugInfo(), LLVMStructCreateNamed(), LLVMStructSetBody(), LLVMStructTypeInContext(), LLVMTargetHasAsmBackend(), LLVMTargetHasJIT(), LLVMTargetHasTargetMachine(), LLVMTargetMachineEmit(), LLVMTemporaryMDNode(), LLVMTokenTypeInContext(), LLVMTypeIsSized(), LLVMTypeOf(), LLVMValueAsMetadata(), LLVMValueIsBasicBlock(), LLVMVectorType(), LLVMVerifyModule(), LLVMVoidTypeInContext(), LLVMWriteBitcodeToFD(), LLVMWriteBitcodeToFile(), LLVMWriteBitcodeToMemoryBuffer(), LLVMX86FP80TypeInContext(), and LLVMX86MMXTypeInContext().

◆ unwrap() [4/10]

LLVMContext** llvm::unwrap ( LLVMContextRef Tys)
inline

Definition at line 347 of file LLVMContext.h.

◆ unwrap() [5/10]

Type** llvm::unwrap ( LLVMTypeRef Tys)
inline

Definition at line 497 of file Type.h.

◆ unwrap() [6/10]

DataLayout* llvm::unwrap ( LLVMTargetDataRef  P)
inline

Definition at line 519 of file DataLayout.h.

References P.

◆ unwrap() [7/10]

Value** llvm::unwrap ( LLVMValueRef Vals)
inline

Definition at line 848 of file Value.h.

◆ unwrap() [8/10]

template<typename T >
T** llvm::unwrap ( LLVMValueRef Vals,
unsigned  Length 
)
inline

Definition at line 853 of file Value.h.

References E, and I.

◆ unwrap() [9/10]

Module* llvm::unwrap ( LLVMModuleProviderRef  MP)
inline

Definition at line 915 of file Module.h.

◆ unwrap() [10/10]

Error llvm::unwrap ( LLVMErrorRef  ErrRef)
inline

Conversion from LLVMErrorRef to Error for C error bindings.

Definition at line 1276 of file Error.h.

References Error.

◆ updateCGAndAnalysisManagerForFunctionPass()

LazyCallGraph::SCC & llvm::updateCGAndAnalysisManagerForFunctionPass ( LazyCallGraph G,
LazyCallGraph::SCC C,
LazyCallGraph::Node N,
CGSCCAnalysisManager AM,
CGSCCUpdateResult UR 
)

Helper to update the call graph after running a function pass.

Function passes can only mutate the call graph in specific ways. This routine provides a helper that updates the call graph in those ways including returning whether any changes were made and populating a CG update result struct for the overall CGSCC walk.

Definition at line 421 of file CGSCCPassManager.cpp.

Referenced by llvm::InlinerPass::run(), and llvm::CGSCCToFunctionPassAdaptor< FunctionPassT >::run().

◆ updateCompilerUsed()

void llvm::updateCompilerUsed ( Module TheModule,
const TargetMachine TM,
const StringSet<> &  AsmUndefinedRefs 
)

Find all globals in TheModule that are referenced in AsmUndefinedRefs, as well as the user-supplied functions definitions that are also libcalls, and create or update the magic "llvm.compiler_used" global in TheModule.

Definition at line 123 of file UpdateCompilerUsed.cpp.

References appendToCompilerUsed().

Referenced by llvm::LTOCodeGenerator::compile().

◆ updateDbgValueForSpill()

void llvm::updateDbgValueForSpill ( MachineInstr Orig,
int  FrameIndex 
)

Update a DBG_VALUE whose value has been spilled to FrameIndex.

Useful when modifying an instruction in place while iterating over a basic block.

Definition at line 2071 of file MachineInstr.cpp.

References llvm::MachineOperand::ChangeToFrameIndex(), llvm::MachineOperand::ChangeToImmediate(), computeExprForSpill(), llvm::MachineInstr::getOperand(), and llvm::MachineOperand::setMetadata().

Referenced by BuildMI(), and INITIALIZE_PASS().

◆ UpgradeBitCastExpr()

Value * llvm::UpgradeBitCastExpr ( unsigned  Opc,
Constant C,
Type DestTy 
)

This is an auto-upgrade for bitcast constant expression between pointers with different address spaces: the instruction is replaced by a pair ptrtoint+inttoptr.

Definition at line 3605 of file AutoUpgrade.cpp.

References Context, llvm::Value::getContext(), llvm::Type::getInt64Ty(), llvm::ConstantExpr::getIntToPtr(), llvm::Type::getPointerAddressSpace(), llvm::ConstantExpr::getPtrToInt(), llvm::Value::getType(), and llvm::Type::isPtrOrPtrVectorTy().

Referenced by readWideAPInt().

◆ UpgradeBitCastInst()

Instruction * llvm::UpgradeBitCastInst ( unsigned  Opc,
Value V,
Type DestTy,
Instruction *&  Temp 
)

This is an auto-upgrade for bitcast between pointers with different address spaces: the instruction is replaced by a pair ptrtoint+inttoptr.

Definition at line 3583 of file AutoUpgrade.cpp.

References Context, llvm::CastInst::Create(), llvm::Value::getContext(), llvm::Type::getInt64Ty(), llvm::Type::getPointerAddressSpace(), llvm::Value::getType(), and llvm::Type::isPtrOrPtrVectorTy().

◆ UpgradeCallsToIntrinsic()

void llvm::UpgradeCallsToIntrinsic ( Function F)

This is an auto-upgrade hook for any old intrinsic function syntaxes which need to have both the function updated as well as all calls updated to the new function.

This should only be run in a post-processing fashion so that it can update all calls to the old function.

Definition at line 3543 of file AutoUpgrade.cpp.

References assert(), llvm::Function::eraseFromParent(), UpgradeIntrinsicCall(), UpgradeIntrinsicFunction(), llvm::Value::user_begin(), and llvm::Value::user_end().

◆ UpgradeDebugInfo()

bool llvm::UpgradeDebugInfo ( Module M)

Check the debug info version number, if it is out-dated, drop the debug info.

Return true if module is modified.

Definition at line 3627 of file AutoUpgrade.cpp.

References DEBUG_METADATA_VERSION, llvm::LLVMContext::diagnose(), errs(), llvm::Module::getContext(), getDebugMetadataVersionFromModule(), Modified, report_fatal_error(), StripDebugInfo(), verifyModule(), and llvm::IndexedInstrProf::Version.

◆ UpgradeGlobalVariable()

bool llvm::UpgradeGlobalVariable ( GlobalVariable GV)

This checks for global variables which should be upgraded.

It returns true if it requires upgrading.

Definition at line 781 of file AutoUpgrade.cpp.

◆ UpgradeInlineAsmString()

void llvm::UpgradeInlineAsmString ( std::string *  AsmStr)

Upgrade comment in call to inline asm that represents an objc retain release marker.

Definition at line 1483 of file AutoUpgrade.cpp.

Referenced by readWideAPInt().

◆ upgradeInstructionLoopAttachment()

MDNode * llvm::upgradeInstructionLoopAttachment ( MDNode N)

◆ UpgradeIntrinsicCall()

void llvm::UpgradeIntrinsicCall ( CallInst CI,
Function NewFn 
)

This is the complement to the above, replacing a specific call to an intrinsic function with a call to the specified new function.

Upgrade a call to an old intrinsic.

All argument and return casting must be provided to seamlessly integrate with existing context.

Definition at line 1495 of file AutoUpgrade.cpp.

References assert(), C, F(), llvm::ConstantInt::get(), llvm::ConstantAsMetadata::get(), llvm::CallBase::getCalledFunction(), llvm::Value::getContext(), llvm::Type::getInt32Ty(), llvm::ilist_node_impl< OptionsT >::getIterator(), llvm::Value::getName(), llvm::Instruction::getParent(), llvm::GlobalValue::getParent(), Name, llvm::SmallVectorTemplateBase< T >::push_back(), llvm::IRBuilderBase::SetInsertPoint(), llvm::StringRef::startswith(), and llvm::StringRef::substr().

Referenced by UpgradeCallsToIntrinsic().

◆ UpgradeIntrinsicFunction()

bool llvm::UpgradeIntrinsicFunction ( Function F,
Function *&  NewFn 
)

This is a more granular function that simply checks an intrinsic function for upgrading, and returns true if it requires upgrading.

It may return null in NewFn if the all calls to the original intrinsic function should be transformed to non-function-call instructions.

Definition at line 768 of file AutoUpgrade.cpp.

References assert(), llvm::Intrinsic::getAttributes(), llvm::Function::getContext(), llvm::Function::getIntrinsicID(), llvm::Function::setAttributes(), and UpgradeIntrinsicFunction1().

Referenced by UpgradeCallsToIntrinsic().

◆ UpgradeModuleFlags()

bool llvm::UpgradeModuleFlags ( Module M)

◆ UpgradeRetainReleaseMarker()

bool llvm::UpgradeRetainReleaseMarker ( Module M)

◆ UpgradeSectionAttributes()

void llvm::UpgradeSectionAttributes ( Module M)

◆ UpgradeTBAANode()

MDNode * llvm::UpgradeTBAANode ( MDNode TBAANode)

If the given TBAA tag uses the scalar TBAA format, create a new node corresponding to the upgrade to the struct-path aware TBAA format.

Otherwise return the TBAANode itself.

Definition at line 3561 of file AutoUpgrade.cpp.

References Context, llvm::ConstantAsMetadata::get(), llvm::MDNode::get(), llvm::MDNode::getContext(), llvm::Type::getInt64Ty(), llvm::Constant::getNullValue(), llvm::MDNode::getNumOperands(), and llvm::MDNode::getOperand().

◆ upper_bound() [1/2]

template<typename R , typename ForwardIt >
auto llvm::upper_bound ( R &&  Range,
ForwardIt  I 
) -> decltype(adl_begin(Range))

◆ upper_bound() [2/2]

template<typename R , typename ForwardIt , typename Compare >
auto llvm::upper_bound ( R &&  Range,
ForwardIt  I,
Compare  C 
) -> decltype(adl_begin(Range))

Definition at line 1300 of file STLExtras.h.

References adl_begin(), adl_end(), and C.

Referenced by upper_bound().

◆ upward_defs()

iterator_range<upward_defs_iterator> llvm::upward_defs ( const MemoryAccessPair Pair)
inline

Definition at line 1244 of file MemorySSA.h.

References make_range(), upward_defs_begin(), and upward_defs_end().

◆ upward_defs_begin()

upward_defs_iterator llvm::upward_defs_begin ( const MemoryAccessPair Pair)
inline

Definition at line 1237 of file MemorySSA.h.

Referenced by upward_defs().

◆ upward_defs_end()

upward_defs_iterator llvm::upward_defs_end ( )
inline

Definition at line 1241 of file MemorySSA.h.

Referenced by upward_defs().

◆ UseSegmentSetForPhysRegs()

cl::opt<bool> llvm::UseSegmentSetForPhysRegs ( "use-segment-set-for-physregs"  ,
cl::Hidden  ,
cl::init(true ,
cl::desc("Use segment set for the computation of the live ranges of physregs.")   
)

◆ utohexstr()

std::string llvm::utohexstr ( uint64_t  X,
bool  LowerCase = false 
)
inline

◆ utostr()

std::string llvm::utostr ( uint64_t  X,
bool  isNeg = false 
)
inline

Definition at line 224 of file StringExtras.h.

References llvm::sys::path::end().

Referenced by AddAliasScopeMetadata(), llvm::lto::Config::addSaveTemps(), createEfficiencySanitizerPass(), createShadowStackGCLoweringPass(), createThreadSanitizerLegacyPassPass(), llvm::NVPTXAsmPrinter::doFinalization(), doPromotion(), llvm::ModuleSummaryIndex::dumpSCCs(), llvm::AArch64SysReg::genericRegisterString(), llvm::BitsRecTy::getAsString(), llvm::Attribute::getAsString(), llvm::VarBitInit::getAsString(), llvm::VarListElementInit::getAsString(), getCopyDeclaration(), llvm::EVT::getEVTString(), llvm::ModuleSummaryIndex::getGlobalNameForLocal(), getMangledTypeStr(), llvm::RecordKeeper::getNewAnonymousName(), llvm::SDNode::getOperationName(), llvm::SparcTargetLowering::getRegForInlineAsmConstraint(), llvm::TargetLoweringObjectFileWasm::getStaticCtorSection(), getStaticStructorSection(), llvm::object::MachOObjectFile::getVersionString(), INITIALIZE_PASS(), llvm::MCObjectFileInfo::InitMCObjectFileInfo(), itostr(), makeCombineInst(), matchSVEPredicateVectorRegName(), llvm::yaml::CustomMappingTraits< std::map< std::vector< uint64_t >, WholeProgramDevirtResolution::ByArg > >::output(), llvm::yaml::CustomMappingTraits< std::map< uint64_t, WholeProgramDevirtResolution > >::output(), llvm::yaml::CustomMappingTraits< GlobalValueSummaryMapTy >::output(), llvm::WebAssemblyInstPrinter::printInst(), PrintStatistics(), llvm::WebAssemblyAsmPrinter::regToString(), selectELFSectionForGlobal(), llvm::lto::setupOptimizationRemarks(), and splitGlobal().

◆ ValTypesFromMVTs()

void llvm::ValTypesFromMVTs ( const ArrayRef< MVT > &  In,
SmallVectorImpl< wasm::ValType > &  Out 
)

◆ VarAndRedzoneSize()

static size_t llvm::VarAndRedzoneSize ( size_t  Size,
size_t  Granularity,
size_t  Alignment 
)
static

Definition at line 42 of file ASanStackFrameLayout.cpp.

References alignTo(), and max().

Referenced by ComputeASanStackFrameLayout().

◆ vectorizeBasicBlock()

bool llvm::vectorizeBasicBlock ( Pass P,
BasicBlock BB,
const VectorizeConfig C = VectorizeConfig() 
)

Vectorize the BasicBlock.

Parameters
BBThe BasicBlock to be vectorized
PThe current running pass, should require AliasAnalysis and ScalarEvolution. After the vectorization, AliasAnalysis, ScalarEvolution and CFG are preserved.
Returns
True if the BB is changed, false otherwise.

◆ verify()

bool llvm::verify ( const TargetRegisterInfo TRI) const

◆ verifyFunction()

bool llvm::verifyFunction ( const Function F,
raw_ostream OS = nullptr 
)

Check a function for errors, useful for use when debugging a pass.

If there are no errors, the function returns false. If an error is found, a message describing the error is written to OS (if non-null) and true is returned.

Definition at line 4809 of file Verifier.cpp.

References llvm::GlobalValue::getParent(), and Verifier.

Referenced by llvm::CodeExtractor::extractCodeRegion(), getNarrowIntrinsic(), llvm::ScalarEvolution::isLoopBackedgeGuardedByCond(), llvm::ScalarEvolution::isLoopEntryGuardedByCond(), isNotExclusivelyConstantDerived(), LLVMVerifyFunction(), llvm::LoopVectorizePass::processLoop(), processLoopInVPlanNativePath(), llvm::VerifierAnalysis::run(), llvm::SLPVectorizerPass::runImpl(), llvm::TBAAVerifier::TBAAVerifier(), and Verify().

◆ verifyIntrinsicTables()

static void llvm::verifyIntrinsicTables ( )
static

◆ verifyModule() [1/2]

bool llvm::verifyModule ( const Module M,
raw_ostream OS = nullptr,
bool BrokenDebugInfo = nullptr 
)

Check a module for errors.

If there are no errors, the function returns false. If an error is found, a message describing the error is written to OS (if non-null) and true is returned.

Returns
true if the module is broken. If BrokenDebugInfo is supplied, DebugInfo verification failures won't be considered as error and instead *BrokenDebugInfo will be set to true. Debug info errors can be "recovered" from by stripping the debug info.

Definition at line 4820 of file Verifier.cpp.

References llvm::AMDGPU::HSAMD::Kernel::Key::Args, llvm::VerifierSupport::Broken, dbgs(), errs(), llvm::Value::getName(), llvm::PassRegistry::getPassRegistry(), initializeVerifierLegacyPassPass(), llvm::GlobalValue::isDeclaration(), llvm::VerifierSupport::M, report_fatal_error(), runOnFunction(), llvm::AnalysisUsage::setPreservesAll(), and Verifier.

Referenced by llvm::LTOCodeGenerator::compile(), LLVMVerifyModule(), parseAndVerify(), llvm::VerifierAnalysis::run(), llvm::TBAAVerifier::TBAAVerifier(), and UpgradeDebugInfo().

◆ verifyModule() [2/2]

bool llvm::verifyModule ( bool BrokenDebugInfo,
const Module M,
raw_ostream OS 
)

Check a module for errors, but report debug info errors separately.

Otherwise behaves as the normal verifyModule. Debug info errors can be "recovered" from by stripping the debug info.

◆ verifySafepointIR()

void llvm::verifySafepointIR ( Function F)

Run the safepoint verifier over a single function. Crashes on failure.

Definition at line 226 of file SafepointIRVerifier.cpp.

References pass.

◆ viewRegion() [1/2]

void llvm::viewRegion ( llvm::RegionInfo RI)

Open a viewer to display the GraphViz vizualization of the analysis result.

Practical to call in the debugger. Includes the instructions in each BasicBlock.

Parameters
RIThe analysis to display.

Definition at line 256 of file RegionPrinter.cpp.

References viewRegionInfo().

Referenced by llvm::RegionInfo::view().

◆ viewRegion() [2/2]

void llvm::viewRegion ( const llvm::Function F)

Analyze the regions of a function and open its GraphViz visualization in a viewer.

Useful to call in the debugger. Includes the instructions in each BasicBlock. The result of a new analysis may differ from the RegionInfo the pass manager currently holds.

Parameters
FFunction to analyze.

Definition at line 258 of file RegionPrinter.cpp.

References createRegionViewerPass(), and invokeFunctionPass().

◆ viewRegionOnly() [1/2]

void llvm::viewRegionOnly ( llvm::RegionInfo RI)

Open a viewer to display the GraphViz vizualization of the analysis result.

Useful to call in the debugger. Shows only the BasicBlock names without their instructions.

Parameters
RIThe analysis to display.

Definition at line 262 of file RegionPrinter.cpp.

References viewRegionInfo().

Referenced by llvm::RegionInfo::viewOnly().

◆ viewRegionOnly() [2/2]

void llvm::viewRegionOnly ( const llvm::Function F)

Analyze the regions of a function and open its GraphViz visualization in a viewer.

Useful to call in the debugger. Shows only the BasicBlock names without their instructions. The result of a new analysis may differ from the RegionInfo the pass manager currently holds.

Parameters
FFunction to analyze.

Definition at line 264 of file RegionPrinter.cpp.

References createRegionOnlyViewerPass(), and invokeFunctionPass().

◆ visitAll()

template<typename SV >
void llvm::visitAll ( const SCEV Root,
SV &  Visitor 
)

◆ wouldInstructionBeTriviallyDead()

bool llvm::wouldInstructionBeTriviallyDead ( Instruction I,
const TargetLibraryInfo TLI = nullptr 
)

Return true if the result produced by the instruction would have no side effects if it was not used.

This is equivalent to checking whether isInstructionTriviallyDead would be true if the use count was 0.

Definition at line 356 of file Local.cpp.

References llvm::Intrinsic::assume, C, llvm::Intrinsic::experimental_guard, isAllocLikeFn(), llvm::Instruction::isEHPad(), isFreeCall(), isMathLibCallNoop(), llvm::Instruction::isTerminator(), llvm::Intrinsic::launder_invariant_group, llvm::Instruction::mayHaveSideEffects(), and llvm::Intrinsic::stacksave.

Referenced by bitTrackingDCE(), isInstructionTriviallyDead(), patchAndReplaceAllUsesWith(), and llvm::SimplifyCFGOptions::setAssumptionCache().

◆ wrap() [1/7]

LLVMCodeModel llvm::wrap ( CodeModel::Model  Model)
inline

◆ wrap() [2/7]

LLVMAttributeRef llvm::wrap ( Attribute  Attr)
inline

Definition at line 190 of file Attributes.h.

References llvm::Attribute::getRawPointer().

Referenced by llvm::OrcCBindingsStack::createLazyCompileCallback(), getMDNodeOperandImpl(), llvm_getMetadata(), LLVMAddAlias(), LLVMAddFunction(), LLVMAddGlobal(), LLVMAddGlobalInAddressSpace(), LLVMAliasGetAliasee(), LLVMAlignOf(), LLVMAppendBasicBlockInContext(), LLVMArrayType(), LLVMBasicBlockAsValue(), LLVMBlockAddress(), LLVMBuildAdd(), LLVMBuildAddrSpaceCast(), LLVMBuildAggregateRet(), LLVMBuildAlloca(), LLVMBuildAnd(), LLVMBuildArrayAlloca(), LLVMBuildArrayMalloc(), LLVMBuildAShr(), LLVMBuildAtomicCmpXchg(), LLVMBuildAtomicRMW(), LLVMBuildBinOp(), LLVMBuildBitCast(), LLVMBuildBr(), LLVMBuildCall(), LLVMBuildCall2(), LLVMBuildCast(), LLVMBuildCatchPad(), LLVMBuildCatchRet(), LLVMBuildCatchSwitch(), LLVMBuildCleanupPad(), LLVMBuildCleanupRet(), LLVMBuildCondBr(), LLVMBuildExactSDiv(), LLVMBuildExactUDiv(), LLVMBuildExtractElement(), LLVMBuildExtractValue(), LLVMBuildFAdd(), LLVMBuildFCmp(), LLVMBuildFDiv(), LLVMBuildFence(), LLVMBuildFMul(), LLVMBuildFNeg(), LLVMBuildFPCast(), LLVMBuildFPExt(), LLVMBuildFPToSI(), LLVMBuildFPToUI(), LLVMBuildFPTrunc(), LLVMBuildFree(), LLVMBuildFRem(), LLVMBuildFSub(), LLVMBuildGEP(), LLVMBuildGEP2(), LLVMBuildGlobalString(), LLVMBuildGlobalStringPtr(), LLVMBuildICmp(), LLVMBuildInBoundsGEP(), LLVMBuildInBoundsGEP2(), LLVMBuildIndirectBr(), LLVMBuildInsertElement(), LLVMBuildInsertValue(), LLVMBuildIntCast(), LLVMBuildIntCast2(), LLVMBuildIntToPtr(), LLVMBuildInvoke(), LLVMBuildInvoke2(), LLVMBuildIsNotNull(), LLVMBuildIsNull(), LLVMBuildLandingPad(), LLVMBuildLoad(), LLVMBuildLoad2(), LLVMBuildLShr(), LLVMBuildMalloc(), LLVMBuildMemCpy(), LLVMBuildMemMove(), LLVMBuildMemSet(), LLVMBuildMul(), LLVMBuildNeg(), LLVMBuildNot(), LLVMBuildNSWAdd(), LLVMBuildNSWMul(), LLVMBuildNSWNeg(), LLVMBuildNSWSub(), LLVMBuildNUWAdd(), LLVMBuildNUWMul(), LLVMBuildNUWNeg(), LLVMBuildNUWSub(), LLVMBuildOr(), LLVMBuildPhi(), LLVMBuildPointerCast(), LLVMBuildPtrDiff(), LLVMBuildPtrToInt(), LLVMBuildResume(), LLVMBuildRet(), LLVMBuildRetVoid(), LLVMBuildSDiv(), LLVMBuildSelect(), LLVMBuildSExt(), LLVMBuildSExtOrBitCast(), LLVMBuildShl(), LLVMBuildShuffleVector(), LLVMBuildSIToFP(), LLVMBuildSRem(), LLVMBuildStore(), LLVMBuildStructGEP(), LLVMBuildStructGEP2(), LLVMBuildSub(), LLVMBuildSwitch(), LLVMBuildTrunc(), LLVMBuildTruncOrBitCast(), LLVMBuildUDiv(), LLVMBuildUIToFP(), LLVMBuildUnreachable(), LLVMBuildURem(), LLVMBuildVAArg(), LLVMBuildXor(), LLVMBuildZExt(), LLVMBuildZExtOrBitCast(), LLVMCloneModule(), LLVMConstAdd(), LLVMConstAddrSpaceCast(), LLVMConstAllOnes(), LLVMConstAnd(), LLVMConstArray(), LLVMConstAShr(), LLVMConstBitCast(), LLVMConstExactSDiv(), LLVMConstExactUDiv(), LLVMConstExtractElement(), LLVMConstExtractValue(), LLVMConstFAdd(), LLVMConstFCmp(), LLVMConstFDiv(), LLVMConstFMul(), LLVMConstFNeg(), LLVMConstFPCast(), LLVMConstFPExt(), LLVMConstFPToSI(), LLVMConstFPToUI(), LLVMConstFPTrunc(), LLVMConstFRem(), LLVMConstFSub(), LLVMConstGEP(), LLVMConstICmp(), LLVMConstInBoundsGEP(), LLVMConstInlineAsm(), LLVMConstInsertElement(), LLVMConstInsertValue(), LLVMConstInt(), LLVMConstIntCast(), LLVMConstIntOfArbitraryPrecision(), LLVMConstIntOfString(), LLVMConstIntOfStringAndSize(), LLVMConstIntToPtr(), LLVMConstLShr(), LLVMConstMul(), LLVMConstNamedStruct(), LLVMConstNeg(), LLVMConstNot(), LLVMConstNSWAdd(), LLVMConstNSWMul(), LLVMConstNSWNeg(), LLVMConstNSWSub(), LLVMConstNull(), LLVMConstNUWAdd(), LLVMConstNUWMul(), LLVMConstNUWNeg(), LLVMConstNUWSub(), LLVMConstOr(), LLVMConstPointerCast(), LLVMConstPointerNull(), LLVMConstPtrToInt(), LLVMConstReal(), LLVMConstRealOfString(), LLVMConstRealOfStringAndSize(), LLVMConstSDiv(), LLVMConstSelect(), LLVMConstSExt(), LLVMConstSExtOrBitCast(), LLVMConstShl(), LLVMConstShuffleVector(), LLVMConstSIToFP(), LLVMConstSRem(), LLVMConstStringInContext(), LLVMConstStructInContext(), LLVMConstSub(), LLVMConstTrunc(), LLVMConstTruncOrBitCast(), LLVMConstUDiv(), LLVMConstUIToFP(), LLVMConstURem(), LLVMConstVector(), LLVMConstXor(), LLVMConstZExt(), LLVMConstZExtOrBitCast(), LLVMContextCreate(), LLVMCopyModuleFlagsMetadata(), LLVMCreateBasicBlockInContext(), LLVMCreateBuilderInContext(), LLVMCreateDIBuilder(), LLVMCreateDIBuilderDisallowUnresolved(), LLVMCreateEnumAttribute(), LLVMCreateExecutionEngineForModule(), LLVMCreateFunctionPassManagerForModule(), LLVMCreateGDBRegistrationListener(), LLVMCreateGenericValueOfFloat(), LLVMCreateGenericValueOfInt(), LLVMCreateGenericValueOfPointer(), LLVMCreateIntelJITEventListener(), LLVMCreateInterpreterForModule(), LLVMCreateJITCompilerForModule(), LLVMCreateMCJITCompilerForModule(), LLVMCreateMemoryBufferWithContentsOfFile(), LLVMCreateMemoryBufferWithMemoryRange(), LLVMCreateMemoryBufferWithMemoryRangeCopy(), LLVMCreateMemoryBufferWithSTDIN(), LLVMCreateObjectFile(), LLVMCreateOProfileJITEventListener(), LLVMCreatePassManager(), LLVMCreatePerfJITEventListener(), LLVMCreateSimpleMCJITMemoryManager(), LLVMCreateStringAttribute(), LLVMCreateTargetData(), LLVMCreateTargetDataLayout(), LLVMCreateTargetMachine(), LLVMDIBuilderCreateArrayType(), LLVMDIBuilderCreateArtificialType(), LLVMDIBuilderCreateAutoVariable(), LLVMDIBuilderCreateBasicType(), LLVMDIBuilderCreateBitFieldMemberType(), LLVMDIBuilderCreateClassType(), LLVMDIBuilderCreateCompileUnit(), LLVMDIBuilderCreateConstantValueExpression(), LLVMDIBuilderCreateDebugLocation(), LLVMDIBuilderCreateEnumerationType(), LLVMDIBuilderCreateExpression(), LLVMDIBuilderCreateFile(), LLVMDIBuilderCreateForwardDecl(), LLVMDIBuilderCreateFunction(), LLVMDIBuilderCreateGlobalVariableExpression(), LLVMDIBuilderCreateImportedDeclaration(), LLVMDIBuilderCreateImportedModuleFromAlias(), LLVMDIBuilderCreateImportedModuleFromModule(), LLVMDIBuilderCreateImportedModuleFromNamespace(), LLVMDIBuilderCreateInheritance(), LLVMDIBuilderCreateLexicalBlock(), LLVMDIBuilderCreateLexicalBlockFile(), LLVMDIBuilderCreateMemberPointerType(), LLVMDIBuilderCreateMemberType(), LLVMDIBuilderCreateModule(), LLVMDIBuilderCreateNameSpace(), LLVMDIBuilderCreateNullPtrType(), LLVMDIBuilderCreateObjCIVar(), LLVMDIBuilderCreateObjCProperty(), LLVMDIBuilderCreateObjectPointerType(), LLVMDIBuilderCreateParameterVariable(), LLVMDIBuilderCreatePointerType(), LLVMDIBuilderCreateQualifiedType(), LLVMDIBuilderCreateReferenceType(), LLVMDIBuilderCreateReplaceableCompositeType(), LLVMDIBuilderCreateStaticMemberType(), LLVMDIBuilderCreateStructType(), LLVMDIBuilderCreateSubroutineType(), LLVMDIBuilderCreateTempGlobalVariableFwdDecl(), LLVMDIBuilderCreateTypedef(), LLVMDIBuilderCreateUnionType(), LLVMDIBuilderCreateUnspecifiedType(), LLVMDIBuilderCreateVectorType(), LLVMDIBuilderGetOrCreateArray(), LLVMDIBuilderGetOrCreateSubrange(), LLVMDIBuilderGetOrCreateTypeArray(), LLVMDIBuilderInsertDbgValueAtEnd(), LLVMDIBuilderInsertDbgValueBefore(), LLVMDIBuilderInsertDeclareAtEnd(), LLVMDIBuilderInsertDeclareBefore(), LLVMDILocationGetScope(), LLVMFindFunction(), LLVMFunctionType(), LLVMGetAllocatedType(), LLVMGetArgOperand(), LLVMGetAttributesAtIndex(), LLVMGetBasicBlockParent(), LLVMGetBasicBlocks(), LLVMGetBasicBlockTerminator(), LLVMGetBitcodeModuleInContext2(), LLVMGetCalledFunctionType(), LLVMGetCalledValue(), LLVMGetCallSiteAttributes(), LLVMGetCallSiteEnumAttribute(), LLVMGetCallSiteStringAttribute(), LLVMGetClause(), LLVMGetComdat(), LLVMGetCondition(), LLVMGetCurrentDebugLocation(), LLVMGetElementAsConstant(), LLVMGetElementType(), LLVMGetEntryBasicBlock(), LLVMGetEnumAttributeAtIndex(), LLVMGetExecutionEngineTargetData(), LLVMGetExecutionEngineTargetMachine(), LLVMGetFirstBasicBlock(), LLVMGetFirstFunction(), LLVMGetFirstGlobal(), LLVMGetFirstGlobalAlias(), LLVMGetFirstInstruction(), LLVMGetFirstNamedMetadata(), LLVMGetFirstParam(), LLVMGetFirstTarget(), LLVMGetFirstUse(), LLVMGetGlobalContext(), LLVMGetGlobalParent(), LLVMGetGlobalPassRegistry(), LLVMGetHandlers(), LLVMGetIncomingBlock(), LLVMGetIncomingValue(), LLVMGetInitializer(), LLVMGetInlineAsm(), LLVMGetInsertBlock(), LLVMGetInstructionParent(), LLVMGetIntrinsicDeclaration(), LLVMGetLastBasicBlock(), LLVMGetLastFunction(), LLVMGetLastGlobal(), LLVMGetLastGlobalAlias(), LLVMGetLastInstruction(), LLVMGetLastNamedMetadata(), LLVMGetLastParam(), LLVMGetMDNodeOperands(), LLVMGetMetadata(), LLVMGetModuleContext(), LLVMGetModuleDataLayout(), LLVMGetModuleFlag(), LLVMGetNamedFunction(), LLVMGetNamedGlobal(), LLVMGetNamedGlobalAlias(), LLVMGetNamedMetadata(), LLVMGetNamedMetadataOperands(), LLVMGetNextBasicBlock(), LLVMGetNextFunction(), LLVMGetNextGlobal(), LLVMGetNextGlobalAlias(), LLVMGetNextInstruction(), LLVMGetNextNamedMetadata(), LLVMGetNextParam(), LLVMGetNextTarget(), LLVMGetNextUse(), LLVMGetNormalDest(), LLVMGetOperand(), LLVMGetOperandUse(), LLVMGetOrInsertComdat(), LLVMGetOrInsertNamedMetadata(), LLVMGetParam(), LLVMGetParamParent(), LLVMGetParams(), LLVMGetParamTypes(), LLVMGetParentCatchSwitch(), LLVMGetPersonalityFn(), LLVMGetPreviousBasicBlock(), LLVMGetPreviousFunction(), LLVMGetPreviousGlobal(), LLVMGetPreviousGlobalAlias(), LLVMGetPreviousInstruction(), LLVMGetPreviousNamedMetadata(), LLVMGetPreviousParam(), LLVMGetRelocations(), LLVMGetRelocationSymbol(), LLVMGetReturnType(), LLVMGetSections(), LLVMGetStringAttributeAtIndex(), LLVMGetStructElementTypes(), LLVMGetSubprogram(), LLVMGetSubtypes(), LLVMGetSuccessor(), LLVMGetSwitchDefaultDest(), LLVMGetSymbols(), LLVMGetTargetFromName(), LLVMGetTargetFromTriple(), LLVMGetTargetMachineTarget(), LLVMGetTypeByName(), LLVMGetTypeContext(), LLVMGetUndef(), LLVMGetUnwindDest(), LLVMGetUsedValue(), LLVMGetUser(), LLVMGlobalGetValueType(), LLVMInsertBasicBlockInContext(), LLVMInstructionClone(), LLVMIntPtrType(), LLVMIntPtrTypeForAS(), LLVMIntPtrTypeForASInContext(), LLVMIntPtrTypeInContext(), LLVMIntrinsicGetType(), LLVMIntTypeInContext(), LLVMIsATerminatorInst(), LLVMLabelTypeInContext(), LLVMMDNodeInContext(), LLVMMDStringInContext(), LLVMMetadataAsValue(), LLVMMetadataTypeInContext(), LLVMModuleCreateWithName(), LLVMModuleCreateWithNameInContext(), LLVMOptRemarkParserCreate(), LLVMOrcAddEagerlyCompiledIR(), LLVMOrcAddLazilyCompiledIR(), LLVMOrcAddObjectFile(), LLVMOrcCreateIndirectStub(), LLVMOrcCreateInstance(), LLVMOrcCreateLazyCompileCallback(), LLVMOrcGetSymbolAddress(), LLVMOrcGetSymbolAddressIn(), LLVMOrcRemoveModule(), LLVMOrcSetIndirectStubPointer(), LLVMParseBitcodeInContext2(), LLVMParseIRInContext(), LLVMPassManagerBuilderCreate(), LLVMPointerType(), LLVMRemoveModule(), LLVMRunFunction(), LLVMSizeOf(), LLVMStructCreateNamed(), LLVMStructGetTypeAtIndex(), LLVMStructTypeInContext(), LLVMTemporaryMDNode(), LLVMTokenTypeInContext(), LLVMTypeOf(), LLVMValueAsBasicBlock(), LLVMValueAsMetadata(), LLVMVectorType(), LLVMVoidTypeInContext(), LLVMWriteBitcodeToMemoryBuffer(), and remapInstruction().

◆ wrap() [3/7]

LLVMContextRef* llvm::wrap ( const LLVMContext **  Tys)
inline

Definition at line 351 of file LLVMContext.h.

◆ wrap() [4/7]

LLVMTypeRef* llvm::wrap ( Type **  Tys)
inline

Definition at line 501 of file Type.h.

◆ wrap() [5/7]

LLVMTargetDataRef llvm::wrap ( const DataLayout P)
inline

Definition at line 523 of file DataLayout.h.

References P.

◆ wrap() [6/7]

LLVMValueRef* llvm::wrap ( const Value **  Vals)
inline

Definition at line 862 of file Value.h.

◆ wrap() [7/7]

LLVMErrorRef llvm::wrap ( Error  Err)
inline

Conversion from Error to LLVMErrorRef for C error bindings.

Definition at line 1271 of file Error.h.

◆ write_double()

void llvm::write_double ( raw_ostream S,
double  D,
FloatStyle  Style,
Optional< size_t >  Precision = None 
)

◆ write_hex()

void llvm::write_hex ( raw_ostream S,
uint64_t  N,
HexPrintStyle  Style,
Optional< size_t >  Width = None 
)

◆ write_integer() [1/6]

void llvm::write_integer ( raw_ostream S,
unsigned int  N,
size_t  MinDigits,
IntegerStyle  Style 
)

◆ write_integer() [2/6]

void llvm::write_integer ( raw_ostream S,
int  N,
size_t  MinDigits,
IntegerStyle  Style 
)

Definition at line 109 of file NativeFormatting.cpp.

References write_signed().

◆ write_integer() [3/6]

void llvm::write_integer ( raw_ostream S,
unsigned long  N,
size_t  MinDigits,
IntegerStyle  Style 
)

Definition at line 114 of file NativeFormatting.cpp.

References write_unsigned().

◆ write_integer() [4/6]

void llvm::write_integer ( raw_ostream S,
long  N,
size_t  MinDigits,
IntegerStyle  Style 
)

Definition at line 119 of file NativeFormatting.cpp.

References write_signed().

◆ write_integer() [5/6]

void llvm::write_integer ( raw_ostream S,
unsigned long long  N,
size_t  MinDigits,
IntegerStyle  Style 
)

Definition at line 124 of file NativeFormatting.cpp.

References write_unsigned().

◆ write_integer() [6/6]

void llvm::write_integer ( raw_ostream S,
long long  N,
size_t  MinDigits,
IntegerStyle  Style 
)

Definition at line 129 of file NativeFormatting.cpp.

References write_signed().

◆ writeArchive()

Error llvm::writeArchive ( StringRef  ArcName,
ArrayRef< NewArchiveMember NewMembers,
bool  WriteSymtab,
object::Archive::Kind  Kind,
bool  Deterministic,
bool  Thin,
std::unique_ptr< MemoryBuffer OldArchiveBuf = nullptr 
)

◆ WriteBitcodeToFile()

void llvm::WriteBitcodeToFile ( const Module M,
raw_ostream Out,
bool  ShouldPreserveUseListOrder = false,
const ModuleSummaryIndex Index = nullptr,
bool  GenerateHash = false,
ModuleHash ModHash = nullptr 
)

Write the specified module to the specified raw output stream.

Write the specified module to the specified output stream.

For streams where it matters, the given stream should be in "binary" mode.

If ShouldPreserveUseListOrder, encode the use-list order for each Value in M. These will be reconstructed exactly when M is deserialized.

If Index is supplied, the bitcode will contain the summary index (currently for use in ThinLTO optimization).

GenerateHash enables hashing the Module and including the hash in the bitcode (currently for use in ThinLTO incremental build).

If ModHash is non-null, when GenerateHash is true, the resulting hash is written into ModHash. When GenerateHash is false, that value is used as the hash instead of computing from the generated bitcode. Can be used to produce the same module hash for a minimized bitcode used just for the thin link as in the regular full bitcode that will be used in the backend.

Definition at line 4282 of file BitcodeWriter.cpp.

References llvm::SmallVectorTemplateCommon< T, typename >::begin(), BWH_HeaderSize, emitDarwinBCHeaderAndTrailer(), llvm::BitstreamWriter::EnterSubblock(), llvm::BitstreamWriter::ExitBlock(), llvm::SmallVectorTemplateCommon< T, typename >::front(), llvm::Module::getTargetTriple(), llvm::SmallVectorImpl< T >::insert(), llvm::bitc::MODULE_BLOCK_ID, llvm::SmallVectorImpl< T >::reserve(), llvm::SmallVectorBase::size(), write(), llvm::raw_ostream::write(), llvm::BitcodeWriter::writeModule(), llvm::BitcodeWriter::writeStrtab(), and llvm::BitcodeWriter::writeSymtab().

Referenced by llvm::lto::Config::addSaveTemps(), LLVMWriteBitcodeToFD(), LLVMWriteBitcodeToFile(), LLVMWriteBitcodeToMemoryBuffer(), llvm::BitcodeWriterPass::run(), splitCodeGen(), llvm::LTOCodeGenerator::writeMergedModules(), and writeModule().

◆ WriteGraph() [1/2]

template<>
raw_ostream& llvm::WriteGraph ( raw_ostream O,
const EdgeBundles G,
bool  ShortNames,
const Twine Title 
)

Definition at line 75 of file EdgeBundles.cpp.

References llvm::RISCVFenceField::O, printMBBReference(), and SI.

◆ WriteGraph() [2/2]

template<typename GraphType >
raw_ostream& llvm::WriteGraph ( raw_ostream O,
const GraphType &  G,
bool  ShortNames = false,
const Twine Title = "" 
)

◆ WriteIndexToFile()

void llvm::WriteIndexToFile ( const ModuleSummaryIndex Index,
raw_ostream Out,
const std::map< std::string, GVSummaryMapTy > *  ModuleToSummariesForIndex = nullptr 
)

◆ writeModule()

size_t llvm::writeModule ( const Module M,
uint8_t *  Dest,
size_t  MaxSize 
)

Fuzzer friendly interface for the llvm bitcode printer.

Parameters
MModule to print
DestLocation to store serialized module
MaxSizeSize of the destination buffer
Returns
Number of bytes that were written. When module size exceeds MaxSize returns 0 and leaves Dest unchanged.

Definition at line 190 of file FuzzerCLI.cpp.

References llvm::Intrinsic::memcpy, and WriteBitcodeToFile().

◆ writeSignedDecimal()

static char* llvm::writeSignedDecimal ( char dst,
int  value 
)
static

◆ WriteThinLinkBitcodeToFile()

void llvm::WriteThinLinkBitcodeToFile ( const Module M,
raw_ostream Out,
const ModuleSummaryIndex Index,
const ModuleHash ModHash 
)

Write the specified thin link bitcode file (i.e., the minimized bitcode file) to the given raw output stream, where it will be written in a new bitcode block.

The thin link bitcode file is used for thin link, and it only contains the necessary information for thin link.

ModHash is for use in ThinLTO incremental build, generated while the IR bitcode file writing.

Definition at line 4486 of file BitcodeWriter.cpp.

References llvm::SmallVectorTemplateCommon< T, typename >::front(), llvm::SmallVectorImpl< T >::reserve(), llvm::SmallVectorBase::size(), llvm::raw_ostream::write(), llvm::BitcodeWriter::writeStrtab(), llvm::BitcodeWriter::writeSymtab(), and llvm::BitcodeWriter::writeThinLinkBitcode().

◆ writeUnsignedDecimal()

static char* llvm::writeUnsignedDecimal ( char dst,
unsigned int  n 
)
static

Definition at line 623 of file APFloat.cpp.

Referenced by writeSignedDecimal().

◆ xxHash64() [1/2]

uint64_t llvm::xxHash64 ( llvm::StringRef  Data)

◆ xxHash64() [2/2]

uint64_t llvm::xxHash64 ( llvm::ArrayRef< uint8_t >  Data)

Definition at line 136 of file xxhash.cpp.

References llvm::ArrayRef< T >::data(), llvm::ArrayRef< T >::size(), and xxHash64().

◆ zip()

template<typename T , typename U , typename... Args>
detail::zippy<detail::zip_shortest, T, U, Args...> llvm::zip ( T &&  t,
U &&  u,
Args &&...  args 
)

zip iterator for two or more iteratable types.

Definition at line 661 of file STLExtras.h.

References llvm::AMDGPU::HSAMD::Kernel::Key::Args, and T.

◆ zip_first()

template<typename T , typename U , typename... Args>
detail::zippy<detail::zip_first, T, U, Args...> llvm::zip_first ( T &&  t,
U &&  u,
Args &&...  args 
)

zip iterator that, for the sake of efficiency, assumes the first iteratee to be the shortest.

Definition at line 670 of file STLExtras.h.

References llvm::AMDGPU::HSAMD::Kernel::Key::Args, and T.

Referenced by buildClonedLoopBlocks(), llvm::DWARFDebugNames::Entry::dump(), llvm::RegsForValue::getRegsAndSizes(), llvm::AppleAcceleratorTable::Entry::lookup(), and llvm::DWARFDebugNames::Entry::lookup().

◆ zip_longest()

template<typename T , typename U , typename... Args>
detail::zip_longest_range<T, U, Args...> llvm::zip_longest ( T &&  t,
U &&  u,
Args &&...  args 
)

Iterate over two or more iterators at the same time.

Iteration continues until all iterators reach the end. The llvm::Optional only contains a value if the iterator has not reached the end.

Definition at line 796 of file STLExtras.h.

References llvm::AMDGPU::HSAMD::Kernel::Key::Args, and T.

Variable Documentation

◆ AMDGPUAnnotateKernelFeaturesID

char & llvm::AMDGPUAnnotateKernelFeaturesID = AMDGPUAnnotateKernelFeatures::ID

Definition at line 79 of file AMDGPUAnnotateKernelFeatures.cpp.

◆ AMDGPUAnnotateUniformValuesPassID

char& llvm::AMDGPUAnnotateUniformValuesPassID

◆ AMDGPUAtomicOptimizerID

char & llvm::AMDGPUAtomicOptimizerID = AMDGPUAtomicOptimizer::ID

Definition at line 84 of file AMDGPUAtomicOptimizer.cpp.

◆ AMDGPUCodeGenPrepareID

char& llvm::AMDGPUCodeGenPrepareID

◆ AMDGPUFixFunctionBitcastsID

char & llvm::AMDGPUFixFunctionBitcastsID = AMDGPUFixFunctionBitcasts::ID

Definition at line 51 of file AMDGPUFixFunctionBitcasts.cpp.

◆ AMDGPULowerIntrinsicsID

char & llvm::AMDGPULowerIntrinsicsID = AMDGPULowerIntrinsics::ID

Definition at line 52 of file AMDGPULowerIntrinsics.cpp.

◆ AMDGPULowerKernelArgumentsID

char& llvm::AMDGPULowerKernelArgumentsID

◆ AMDGPULowerKernelAttributesID

char& llvm::AMDGPULowerKernelAttributesID

◆ AMDGPUMachineCFGStructurizerID

char& llvm::AMDGPUMachineCFGStructurizerID

Definition at line 2898 of file AMDGPUMachineCFGStructurizer.cpp.

◆ AMDGPUOpenCLEnqueuedBlockLoweringID

char & llvm::AMDGPUOpenCLEnqueuedBlockLoweringID

◆ AMDGPUPerfHintAnalysisID

char & llvm::AMDGPUPerfHintAnalysisID = AMDGPUPerfHintAnalysis::ID

◆ AMDGPUPromoteAllocaID

char& llvm::AMDGPUPromoteAllocaID

◆ AMDGPURewriteOutArgumentsID

char& llvm::AMDGPURewriteOutArgumentsID

◆ AMDGPUSimplifyLibCallsID

char& llvm::AMDGPUSimplifyLibCallsID

◆ AMDGPUUnifyDivergentExitNodesID

char & llvm::AMDGPUUnifyDivergentExitNodesID = AMDGPUUnifyDivergentExitNodes::ID

◆ AMDGPUUnifyMetadataID

char & llvm::AMDGPUUnifyMetadataID = AMDGPUUnifyMetadata::ID

Definition at line 116 of file AMDGPUUnifyMetadata.cpp.

◆ AMDGPUUseNativeCallsID

char& llvm::AMDGPUUseNativeCallsID

◆ annotationCache

ManagedStatic<per_module_annot_t> llvm::annotationCache
static

Definition at line 37 of file NVPTXUtilities.cpp.

◆ ARMInsts

const MCInstrDesc llvm::ARMInsts[]

◆ AsmRewritePrecedence

const char llvm::AsmRewritePrecedence[]
Initial value:
= {
2,
2,
2,
3,
3,
5,
1,
5,
2,
2
}

Definition at line 47 of file MCTargetAsmParser.h.

Referenced by rewritesSort().

◆ AtomicExpandID

char & llvm::AtomicExpandID = AtomicExpand::ID

AtomicExpandID – Lowers atomic operations in terms of either cmpxchg load-linked/store-conditional loops.

Definition at line 127 of file AtomicExpandPass.cpp.

◆ AVRDataLayout

const char* llvm::AVRDataLayout = "e-P1-p:16:8-i8:8-i16:8-i32:8-i64:8-f32:8-f64:8-n8-a:8"
static

Definition at line 28 of file AVRTargetMachine.cpp.

◆ BitReverseTable256

const unsigned char llvm::BitReverseTable256[256]
static
Initial value:
= {
#define R2(n)
#define R4(n)
#define R6(n)
R6(0), R6(2), R6(1), R6(3)
}
#define R6(n)

Macro compressed bit reversal table for 256 bits.

http://graphics.stanford.edu/~seander/bithacks.html#BitReverseTable

Definition at line 257 of file MathExtras.h.

◆ BranchFolderPassID

char & llvm::BranchFolderPassID = BranchFolderPass::ID

BranchFolding - This pass performs machine code CFG based optimizations to delete branches to branches, eliminate branches to successor blocks (creating fall throughs), and eliminating branches over branches.

Definition at line 115 of file BranchFolding.cpp.

Referenced by llvm::TargetPassConfig::addMachineLateOptimization(), and overridePass().

◆ BranchRelaxationPassID

char & llvm::BranchRelaxationPassID = BranchRelaxation::ID

BranchRelaxation - This pass replaces branches that need to jump further than is supported by a branch instruction.

Definition at line 123 of file BranchRelaxation.cpp.

Referenced by llvm::RISCVTargetMachine::createPassConfig(), llvm::AArch64TargetMachine::createPassConfig(), llvm::R600TargetMachine::createPassConfig(), and llvm::AVRTargetMachine::getSubtargetImpl().

◆ BreakCriticalEdgesID

char& llvm::BreakCriticalEdgesID

◆ BWH_CPUTypeField

const unsigned llvm::BWH_CPUTypeField = 4 * 4
static

Definition at line 32 of file BitCodes.h.

◆ BWH_HeaderSize

const unsigned llvm::BWH_HeaderSize = 5 * 4
static

Definition at line 33 of file BitCodes.h.

Referenced by emitDarwinBCHeaderAndTrailer(), and WriteBitcodeToFile().

◆ BWH_MagicField

const unsigned llvm::BWH_MagicField = 0 * 4
static

Offsets of the 32-bit fields of bitcode wrapper header.

Definition at line 28 of file BitCodes.h.

◆ BWH_OffsetField

const unsigned llvm::BWH_OffsetField = 2 * 4
static

Definition at line 30 of file BitCodes.h.

Referenced by SkipBitcodeWrapperHeader().

◆ BWH_SizeField

const unsigned llvm::BWH_SizeField = 3 * 4
static

Definition at line 31 of file BitCodes.h.

Referenced by SkipBitcodeWrapperHeader().

◆ BWH_VersionField

const unsigned llvm::BWH_VersionField = 1 * 4
static

Definition at line 29 of file BitCodes.h.

◆ CodeModelLargeSize

const unsigned llvm::CodeModelLargeSize = 256
static

◆ ColorCategory

cl::OptionCategory llvm::ColorCategory

◆ CurrentDebugType

ManagedStatic<std::vector<std::string> > llvm::CurrentDebugType
static

Definition at line 46 of file Debug.cpp.

Referenced by setCurrentDebugTypes().

◆ DeadMachineInstructionElimID

char & llvm::DeadMachineInstructionElimID = DeadMachineInstructionElim::ID

◆ DebugFlag

bool llvm::DebugFlag = false

This boolean is set to true if the '-debug' command line option is specified.

Exported boolean set by the -debug option.

This should probably not be referenced directly, instead, use the DEBUG macro below.

Definition at line 44 of file Debug.cpp.

Referenced by dbgs(), INITIALIZE_PASS(), isDebug(), and setCurrentDebugTypes().

◆ DefaultMaxUsesToExplore

unsigned constexpr llvm::DefaultMaxUsesToExplore = 20

The default value for MaxUsesToExplore argument.

It's relatively small to keep the cost of analysis reasonable for clients like BasicAliasAnalysis, where the results can't be cached. TODO: we should probably introduce a caching CaptureTracking analysis and use it where possible. The caching version can use much higher limit or don't have this cap at all.

Definition at line 31 of file CaptureTracking.h.

◆ DefMaxInstsToScan

cl::opt< unsigned > llvm::DefMaxInstsToScan

The default number of maximum instructions to scan in the block, used by FindAvailableLoadedValue().

DefMaxInstsToScan - the default number of maximum instructions to scan in the block, used by FindAvailableLoadedValue().

FindAvailableLoadedValue() was introduced in r60148, to improve jump threading in part by eliminating partially redundant loads. At that point, the value of MaxInstsToScan was already set to '6' without documented explanation.

Referenced by isSafeToLoadUnconditionally(), isZero(), llvm::JumpThreadingPass::SimplifyPartiallyRedundantLoad(), and llvm::InstCombiner::visitLoadInst().

◆ DemoteRegisterToMemoryID

char & llvm::DemoteRegisterToMemoryID = RegToMem::ID

Definition at line 126 of file Reg2Mem.cpp.

◆ DetectDeadLanesID

char & llvm::DetectDeadLanesID = DetectDeadLanes::ID

This pass adds dead/undef flags after analyzing subregister lanes.

Definition at line 132 of file DetectDeadLanes.cpp.

Referenced by llvm::TargetPassConfig::addOptimizedRegAlloc().

◆ DisableABIBreakingChecks

int llvm::DisableABIBreakingChecks

Definition at line 181 of file Error.cpp.

◆ DisableGISelLegalityCheck

cl::opt< bool > llvm::DisableGISelLegalityCheck

◆ DRegList

const MCPhysReg llvm::DRegList[]
static
Initial value:
= { ARM::D0, ARM::D1, ARM::D2, ARM::D3,
ARM::D4, ARM::D5, ARM::D6, ARM::D7 }

Definition at line 169 of file ARMCallingConv.h.

Referenced by CC_ARM_AAPCS_Custom_Aggregate().

◆ DumpCriticalPathLength

cl::opt<bool> llvm::DumpCriticalPathLength("misched-dcpl", cl::Hidden, cl::desc("Print critical path length to stdout"))

◆ DumpHSAMetadata

cl::opt<bool> llvm::DumpHSAMetadata("amdgpu-dump-hsa-metadata", cl::desc("Dump AMDGPU HSA Metadata"))
static

◆ EarlyIfConverterID

char & llvm::EarlyIfConverterID = EarlyIfConverter::ID

◆ EarlyMachineLICMID

char & llvm::EarlyMachineLICMID = EarlyMachineLICM::ID

This pass performs loop invariant code motion on machine instructions.

This variant works before register allocation.

See also
MachineLICMID.

Definition at line 275 of file MachineLICM.cpp.

Referenced by llvm::TargetPassConfig::addMachineSSAOptimization(), llvm::R600TargetMachine::createPassConfig(), llvm::NVPTXTargetMachine::getTargetTransformInfo(), and overridePass().

◆ EarlyTailDuplicateID

char & llvm::EarlyTailDuplicateID = EarlyTailDuplicate::ID

Duplicate blocks with unconditional branches into tails of their predecessors.

Variant that works before register allocation.

Definition at line 67 of file TailDuplication.cpp.

Referenced by llvm::TargetPassConfig::addMachineSSAOptimization(), llvm::NVPTXTargetMachine::getTargetTransformInfo(), and overridePass().

◆ EdgeBundlesID

char& llvm::EdgeBundlesID

EdgeBundles analysis - Bundle machine CFG edges.

◆ EnableDebugBuffering

bool llvm::EnableDebugBuffering = false

EnableDebugBuffering - This defaults to false.

EnableDebugBuffering - Turn on signal handler installation.

If true, the debug stream will install signal handlers to dump any buffered debug output. It allows clients to selectively allow the debug stream to install signal handlers if they are certain there will be no conflict.

Definition at line 166 of file Debug.cpp.

Referenced by dbgs().

◆ EnableMSSALoopDependency

cl::opt<bool> llvm::EnableMSSALoopDependency("enable-mssa-loop-dependency", cl::Hidden, cl::init(false), cl::desc("Enable MemorySSA dependency for loop pass manager"))

Enables memory ssa as a dependency for loop passes.

Enables memory ssa as a dependency for loop passes in legacy pass manager.

Referenced by FindLIVLoopCondition(), getLoopPassPreservedAnalyses(), llvm::LoopRotatePass::run(), llvm::LoopSimplifyCFGPass::run(), llvm::SimpleLoopUnswitchPass::run(), llvm::FunctionToLoopPassAdaptor< LoopPassT >::run(), and simplifyLoopInst().

◆ EnableTiming

cl::opt<bool, true> llvm::EnableTiming("time-passes", cl::location(TimePassesIsEnabled), cl::Hidden, cl::desc("Time each pass, printing elapsed time for each on exit"))
static

◆ ErrorsPrinted

unsigned llvm::ErrorsPrinted = 0

Definition at line 25 of file Error.cpp.

Referenced by PrintMessage(), and TableGenMain().

◆ ExpandISelPseudosID

char & llvm::ExpandISelPseudosID = ExpandISelPseudos::ID

ExpandISelPseudos - This pass expands pseudo-instructions.

Definition at line 43 of file ExpandISelPseudos.cpp.

Referenced by llvm::TargetPassConfig::addMachinePasses().

◆ ExpandPostRAPseudosID

char & llvm::ExpandPostRAPseudosID = ExpandPostRA::ID

ExpandPostRAPseudos - This pass expands pseudo instructions after register allocation.

Definition at line 59 of file ExpandPostRAPseudos.cpp.

Referenced by llvm::TargetPassConfig::addMachinePasses().

◆ FEntryInserterID

char & llvm::FEntryInserterID = FEntryInserter::ID

This pass inserts FEntry calls.

Definition at line 51 of file FEntryInserter.cpp.

Referenced by llvm::TargetPassConfig::addMachinePasses().

◆ FinalizeMachineBundlesID

char & llvm::FinalizeMachineBundlesID = FinalizeMachineBundles::ID

FinalizeMachineBundles - This pass finalize machine instruction bundles (created earlier, e.g.

during pre-RA scheduling).

Definition at line 100 of file MachineInstrBundle.cpp.

Referenced by llvm::GCNTargetMachine::getTargetTransformInfo().

◆ firstByteMark

const UTF8 llvm::firstByteMark[7] = { 0x00, 0x00, 0xC0, 0xE0, 0xF0, 0xF8, 0xFC }
static

Definition at line 130 of file ConvertUTF.cpp.

◆ ForceBottomUp

cl::opt<bool> llvm::ForceBottomUp("misched-bottomup", cl::Hidden, cl::desc("Force bottom-up list scheduling"))

◆ ForceTopDown

cl::opt<bool> llvm::ForceTopDown("misched-topdown", cl::Hidden, cl::desc("Force top-down list scheduling"))

◆ FuncletLayoutID

char & llvm::FuncletLayoutID = FuncletLayout::ID

◆ GCMachineCodeAnalysisID

char & llvm::GCMachineCodeAnalysisID = GCMachineCodeAnalysis::ID

GCMachineCodeAnalysis - Target-independent pass to mark safe points in machine code.

Must be added very late during code generation, just prior to output, and importantly after all CFG transformations (such as branch folding).

Definition at line 243 of file GCRootLowering.cpp.

Referenced by llvm::TargetPassConfig::addGCPasses().

◆ GCNDPPCombineID

char & llvm::GCNDPPCombineID = GCNDPPCombine::ID

Definition at line 115 of file GCNDPPCombine.cpp.

Referenced by llvm::R600TargetMachine::createPassConfig().

◆ get_array_pod_sort_comparator

template<typename T >
int(*)(const void*, const void*) llvm::get_array_pod_sort_comparator(const T &)
inline

get_array_pod_sort_comparator - This is an internal helper function used to get type deduction of T right.

Definition at line 1063 of file STLExtras.h.

◆ GPR

class llvm::RegisterBankInfo llvm::GPR

◆ halfBase

const UTF32 llvm::halfBase = 0x0010000UL
static

Definition at line 87 of file ConvertUTF.cpp.

Referenced by ConvertUTF32toUTF16(), and ConvertUTF8toUTF16().

◆ halfMask

const UTF32 llvm::halfMask = 0x3FFUL
static

Definition at line 88 of file ConvertUTF.cpp.

◆ halfShift

const int llvm::halfShift = 10
static

Definition at line 85 of file ConvertUTF.cpp.

◆ HexagonDisableCompound

cl::opt< bool > llvm::HexagonDisableCompound

◆ HexagonDisableDuplex

cl::opt< bool > llvm::HexagonDisableDuplex

◆ HexagonExpandCondsetsID

char & llvm::HexagonExpandCondsetsID = HexagonExpandCondsets::ID

◆ HexagonStages

const InstrStage llvm::HexagonStages[]

◆ hexDigitsLower

const char llvm::hexDigitsLower[] = "0123456789abcdef0"
static

Definition at line 594 of file APFloat.cpp.

Referenced by llvm::detail::IEEEFloat::convertToHexString().

◆ hexDigitsUpper

const char llvm::hexDigitsUpper[] = "0123456789ABCDEF0"
static

Definition at line 595 of file APFloat.cpp.

Referenced by llvm::detail::IEEEFloat::convertToHexString().

◆ huge_valf

const float llvm::huge_valf = HUGE_VALF

Use this rather than HUGE_VALF; the latter causes warnings on MSVC.

Definition at line 29 of file MathExtras.cpp.

Referenced by getNumAllocatableRegsForConstraints(), llvm::LiveInterval::isSpillable(), llvm::LiveInterval::markNotSpillable(), llvm::LiveIntervals::print(), and SaturatingMultiplyAdd().

◆ IfConverterID

char & llvm::IfConverterID = IfConverter::ID

◆ ImplicitNullChecksID

char & llvm::ImplicitNullChecksID = ImplicitNullChecks::ID

ImplicitNullChecks - This pass folds null pointer checks into nearby memory operations.

Definition at line 717 of file ImplicitNullChecks.cpp.

Referenced by llvm::TargetPassConfig::addMachinePasses().

◆ InferAddressSpacesID

char& llvm::InferAddressSpacesID

◆ infinityL

const char llvm::infinityL[] = "infinity"
static

Definition at line 596 of file APFloat.cpp.

◆ infinityU

const char llvm::infinityU[] = "INFINITY"
static

Definition at line 597 of file APFloat.cpp.

◆ InstrProfRecordClosure

ValueProfRecordClosure llvm::InstrProfRecordClosure
static
Initial value:
= {
nullptr,
nullptr,
void getValueForSiteInstrProf(const void *R, InstrProfValueData *Dst, uint32_t K, uint32_t S)
Definition: InstrProf.cpp:631
uint32_t getNumValueDataInstrProf(const void *Record, uint32_t VKind)
Definition: InstrProf.cpp:620
uint32_t getNumValueKindsInstrProf(const void *Record)
ValueProfRecordClosure Interface implementation for InstrProfRecord class.
Definition: InstrProf.cpp:611
ValueProfData * allocValueProfDataInstrProf(size_t TotalSizeInBytes)
Definition: InstrProf.cpp:636
uint32_t getNumValueSitesInstrProf(const void *Record, uint32_t VKind)
Definition: InstrProf.cpp:615
uint32_t getNumValueDataForSiteInstrProf(const void *R, uint32_t VK, uint32_t S)
Definition: InstrProf.cpp:625

Definition at line 643 of file InstrProf.cpp.

◆ InstructionNamerID

char& llvm::InstructionNamerID

◆ IntrinsicsWithChain

const IntrinsicData llvm::IntrinsicsWithChain[]
static

Definition at line 66 of file X86IntrinsicsInfo.h.

◆ IntrinsicsWithoutChain

const IntrinsicData llvm::IntrinsicsWithoutChain[]
static

Definition at line 338 of file X86IntrinsicsInfo.h.

◆ kAsanStackLeftRedzoneMagic

const int llvm::kAsanStackLeftRedzoneMagic = 0xf1
static

Definition at line 24 of file ASanStackFrameLayout.h.

Referenced by GetShadowBytes().

◆ kAsanStackMidRedzoneMagic

const int llvm::kAsanStackMidRedzoneMagic = 0xf2
static

Definition at line 25 of file ASanStackFrameLayout.h.

Referenced by GetShadowBytes().

◆ kAsanStackRightRedzoneMagic

const int llvm::kAsanStackRightRedzoneMagic = 0xf3
static

Definition at line 26 of file ASanStackFrameLayout.h.

Referenced by GetShadowBytes().

◆ kAsanStackUseAfterReturnMagic

const int llvm::kAsanStackUseAfterReturnMagic = 0xf5
static

Definition at line 27 of file ASanStackFrameLayout.h.

Referenced by StackMallocSizeClass().

◆ kAsanStackUseAfterScopeMagic

const int llvm::kAsanStackUseAfterScopeMagic = 0xf8
static

Definition at line 28 of file ASanStackFrameLayout.h.

Referenced by GetShadowBytesAfterScope().

◆ kMinAlignment

const size_t llvm::kMinAlignment = 16
static

Definition at line 37 of file ASanStackFrameLayout.cpp.

◆ LCSSAID

char & llvm::LCSSAID = LCSSAWrapperPass::ID

◆ LibCallsShrinkWrapPassID

char& llvm::LibCallsShrinkWrapPassID = LibCallsShrinkWrapLegacyPass::ID

Definition at line 544 of file LibCallsShrinkWrap.cpp.

◆ LiveDebugValuesID

char & llvm::LiveDebugValuesID = LiveDebugValues::ID

◆ LiveIntervalsID

char & llvm::LiveIntervalsID = LiveIntervals::ID

LiveIntervals - This analysis keeps track of the live ranges of virtual and physical registers.

Definition at line 62 of file LiveIntervals.cpp.

Referenced by llvm::TargetPassConfig::addOptimizedRegAlloc(), HasArgumentDef(), and INITIALIZE_PASS().

◆ LiveRangeShrinkID

char & llvm::LiveRangeShrinkID = LiveRangeShrink::ID

LiveRangeShrink pass.

Move instruction close to its definition to shrink the definition's live range.

Definition at line 65 of file LiveRangeShrink.cpp.

Referenced by llvm::X86TargetMachine::createPassConfig().

◆ LiveStacksID

Live Stack Slot false char & llvm::LiveStacksID = LiveStacks::ID

LiveStacks pass. An analysis keeping track of the liveness of stack slots.

Definition at line 34 of file LiveStacks.cpp.

◆ LiveVariablesID

char & llvm::LiveVariablesID = LiveVariables::ID

LiveVariables pass - This pass computes the set of blocks in which each variable is life and sets machine operand kill flags.

Definition at line 45 of file LiveVariables.cpp.

Referenced by llvm::TargetPassConfig::addOptimizedRegAlloc(), llvm::PPCTargetMachine::createPassConfig(), and llvm::NVPTXTargetMachine::getTargetTransformInfo().

◆ LLVMLoopUnrollFollowupAll

const char* const llvm::LLVMLoopUnrollFollowupAll = "llvm.loop.unroll.followup_all"

Metadata attribute names

Definition at line 40 of file UnrollLoop.h.

Referenced by CloneLoopBlocks(), and tryToUnrollLoop().

◆ LLVMLoopUnrollFollowupRemainder

const char* const llvm::LLVMLoopUnrollFollowupRemainder
Initial value:
=
"llvm.loop.unroll.followup_remainder"

Definition at line 43 of file UnrollLoop.h.

Referenced by CloneLoopBlocks(), and tryToUnrollLoop().

◆ LLVMLoopUnrollFollowupUnrolled

const char* const llvm::LLVMLoopUnrollFollowupUnrolled
Initial value:
=
"llvm.loop.unroll.followup_unrolled"

Definition at line 41 of file UnrollLoop.h.

Referenced by tryToUnrollLoop().

◆ LocalStackSlotAllocationID

char & llvm::LocalStackSlotAllocationID = LocalStackSlotPass::ID

LocalStackSlotAllocation - This pass assigns local frame indices to stack slots relative to one another and allocates base registers to access them when it is estimated by the target to be out of range of normal frame pointer or stack pointer index addressing.

Definition at line 109 of file LocalStackSlotAllocation.cpp.

Referenced by llvm::TargetPassConfig::addMachinePasses(), llvm::TargetPassConfig::addMachineSSAOptimization(), and llvm::NVPTXTargetMachine::getTargetTransformInfo().

◆ Lock

sys::Mutex llvm::Lock
static

Definition at line 38 of file NVPTXUtilities.cpp.

Referenced by llvm::orc::rpc::detail::RPCEndpointBase< SingleThreadedRPCEndpoint< ChannelT, FunctionIdT, SequenceNumberT >, ChannelT, FunctionIdT, SequenceNumberT >::abandonPendingResponses(), llvm::sys::DynamicLibrary::AddSymbol(), llvm::orc::rpc::detail::RPCEndpointBase< SingleThreadedRPCEndpoint< ChannelT, FunctionIdT, SequenceNumberT >, ChannelT, FunctionIdT, SequenceNumberT >::appendCallAsync(), llvm::TaskQueue::async(), llvm::orc::BasicIRLayerMaterializationUnit::BasicIRLayerMaterializationUnit(), llvm::orc::rpc::ParallelCallGroup::call(), llvm::orc::LazyCallThroughManager::callThroughToSymbol(), llvm::orc::SymbolStringPool::clearDeadEntries(), llvm::orc::cloneToNewContext(), llvm::orc::LocalIndirectStubsManager< TargetT >::createStub(), llvm::orc::LocalIndirectStubsManager< TargetT >::createStubs(), llvm::orc::ExecutionSession::dump(), llvm::CodeGenCoverage::emit(), llvm::orc::IRCompileLayer::emit(), llvm::orc::RTDyldObjectLinkingLayer::emit(), llvm::orc::SymbolStringPool::empty(), llvm::orc::JITCompileCallbackManager::executeCompileCallback(), llvm::orc::LocalIndirectStubsManager< TargetT >::findPointer(), llvm::orc::LocalIndirectStubsManager< TargetT >::findStub(), llvm::orc::LazyCallThroughManager::getCallThroughTrampoline(), llvm::orc::JITCompileCallbackManager::getCompileCallback(), llvm::orc::ThreadSafeContext::getLock(), llvm::orc::rpc::RPCTypeName< Expected< T > >::getName(), llvm::orc::rpc::RPCTypeName< std::pair< T1, T2 > >::getName(), llvm::orc::rpc::RPCTypeName< std::tuple< ArgTs... > >::getName(), llvm::orc::rpc::RPCTypeName< std::vector< T > >::getName(), llvm::orc::rpc::RPCTypeName< std::set< T > >::getName(), llvm::orc::rpc::RPCTypeName< std::map< K, V > >::getName(), llvm::PluginLoader::getNumPlugins(), llvm::PluginLoader::getPlugin(), llvm::orc::rpc::Function< DerivedFunc, RetT(ArgTs...)>::getPrototype(), llvm::orc::rpc::detail::SequenceNumberManager< uint32_t >::getSequenceNumber(), llvm::orc::LocalTrampolinePool< ORCABI >::getTrampoline(), llvm::orc::remote::OrcRemoteTargetClient::RemoteTrampolinePool::getTrampoline(), llvm::orc::rpc::detail::RPCEndpointBase< SingleThreadedRPCEndpoint< ChannelT, FunctionIdT, SequenceNumberT >, ChannelT, FunctionIdT, SequenceNumberT >::handleResponse(), install_bad_alloc_error_handler(), install_fatal_error_handler(), llvm::orc::SymbolStringPool::intern(), llvm::orc::JITDylib::legacyLookup(), llvm::orc::ExecutionSession::legacyLookup(), llvm_shutdown(), llvm::orc::ExecutionSession::lookup(), llvm::PluginLoader::operator=(), pathHasTraversal(), llvm::orc::rpc::SerializationTraits< ChannelT, Error >::registerErrorType(), llvm::ManagedStaticBase::RegisterManagedStatic(), llvm::Statistic::RegisterStatistic(), llvm::orc::rpc::detail::SequenceNumberManager< uint32_t >::releaseSequenceNumber(), llvm::orc::LocalTrampolinePool< ORCABI >::releaseTrampoline(), remove_bad_alloc_error_handler(), remove_fatal_error_handler(), report_bad_alloc_error(), report_fatal_error(), llvm::orc::rpc::detail::SequenceNumberManager< uint32_t >::reset(), llvm::orc::ExecutionSession::runSessionLocked(), llvm::sys::DynamicLibrary::SearchForAddressOfSymbol(), llvm::orc::IRCompileLayer::setNotifyCompiled(), llvm::orc::LocalIndirectStubsManager< TargetT >::updatePointer(), and llvm::orc::rpc::ParallelCallGroup::wait().

◆ LoopSimplifyID

loop Canonicalize natural false char & llvm::LoopSimplifyID = LoopSimplify::ID

◆ LowerInvokePassID

char & llvm::LowerInvokePassID = LowerInvokeLegacyPass::ID

Definition at line 83 of file LowerInvoke.cpp.

◆ LowerSwitchID

char & llvm::LowerSwitchID = LowerSwitch::ID

Definition at line 122 of file LowerSwitch.cpp.

Referenced by llvm::UnifyFunctionExitNodes::getAnalysisUsage().

◆ LTODiscardValueNames

cl::opt< bool > llvm::LTODiscardValueNames

◆ LTOPassRemarksWithHotness

cl::opt< bool > llvm::LTOPassRemarksWithHotness

◆ LTORemarksFilename

cl::opt< std::string > llvm::LTORemarksFilename

◆ MachineBlockPlacementID

char & llvm::MachineBlockPlacementID = MachineBlockPlacement::ID

MachineBlockPlacement - This pass places basic blocks based on branch probabilities.

Definition at line 536 of file MachineBlockPlacement.cpp.

Referenced by llvm::TargetPassConfig::addBlockPlacement(), and overridePass().

◆ MachineBlockPlacementStatsID

char & llvm::MachineBlockPlacementStatsID = MachineBlockPlacementStats::ID

MachineBlockPlacementStats - This pass collects statistics about the basic block placement using branch probabilities and block frequency information.

Definition at line 2879 of file MachineBlockPlacement.cpp.

Referenced by llvm::TargetPassConfig::addBlockPlacement().

◆ MachineCombinerID

char & llvm::MachineCombinerID = MachineCombiner::ID

This pass performs instruction combining using trace metrics to estimate critical-path and resource depth.

Definition at line 119 of file MachineCombiner.cpp.

Referenced by llvm::AArch64TargetMachine::createPassConfig(), llvm::PPCTargetMachine::createPassConfig(), and llvm::X86TargetMachine::createPassConfig().

◆ MachineCopyPropagationID

char & llvm::MachineCopyPropagationID = MachineCopyPropagation::ID

◆ MachineCSEID

char & llvm::MachineCSEID = MachineCSE::ID

MachineCSE - This pass performs global CSE on machine instructions.

Definition at line 134 of file MachineCSE.cpp.

Referenced by llvm::TargetPassConfig::addMachineSSAOptimization(), llvm::R600TargetMachine::createPassConfig(), llvm::NVPTXTargetMachine::getTargetTransformInfo(), and overridePass().

◆ MachineDominanceFrontierID

char & llvm::MachineDominanceFrontierID = MachineDominanceFrontier::ID

MachineDominanaceFrontier - This pass is a machine dominators analysis pass.

Definition at line 38 of file MachineDominanceFrontier.cpp.

◆ MachineDominatorsID

char& llvm::MachineDominatorsID

MachineDominators - This pass is a machine dominators analysis pass.

Referenced by llvm::LiveIntervals::getAnalysisUsage(), INITIALIZE_PASS(), and llvm::CoalescerPair::isCoalescable().

◆ MachineFunctionPrinterPassID

char & llvm::MachineFunctionPrinterPassID = MachineFunctionPrinterPass::ID

MachineFunctionPrinterPass - This pass prints out MachineInstr's.

Definition at line 58 of file MachineFunctionPrinterPass.cpp.

◆ MachineLICMID

char & llvm::MachineLICMID = MachineLICM::ID

This pass performs loop invariant code motion on machine instructions.

Definition at line 274 of file MachineLICM.cpp.

Referenced by llvm::TargetPassConfig::addOptimizedRegAlloc(), and overridePass().

◆ MachineLoopInfoID

machine Machine Natural Loop true char & llvm::MachineLoopInfoID = MachineLoopInfo::ID

◆ MachinePipelinerID

char & llvm::MachinePipelinerID = MachinePipeliner::ID

This pass performs software pipelining on machine instructions.

Definition at line 159 of file MachinePipeliner.cpp.

Referenced by llvm::HexagonTargetMachine::createPassConfig().

◆ MachineRegionInfoPassID

char& llvm::MachineRegionInfoPassID

MachineRegionInfo - This pass computes SESE regions for machine functions.

Definition at line 129 of file MachineRegionInfo.cpp.

◆ MachineSchedulerID

char & llvm::MachineSchedulerID = MachineScheduler::ID

◆ MachineSinkingID

char & llvm::MachineSinkingID = MachineSinking::ID

MachineSinking - This pass performs sinking on machine instructions.

Definition at line 183 of file MachineSink.cpp.

Referenced by llvm::TargetPassConfig::addMachineSSAOptimization(), llvm::NVPTXTargetMachine::getTargetTransformInfo(), and overridePass().

◆ MachineTraceMetricsID

char & llvm::MachineTraceMetricsID = MachineTraceMetrics::ID

MachineTraceMetrics - This pass computes critical path and CPU resource usage in an ensemble of traces.

Definition at line 46 of file MachineTraceMetrics.cpp.

◆ MAX_SUBTARGET_FEATURES

const unsigned llvm::MAX_SUBTARGET_FEATURES = 192

Definition at line 33 of file SubtargetFeature.h.

◆ maxExponent

const unsigned int llvm::maxExponent = 16383

Definition at line 150 of file APFloat.cpp.

◆ maxPowerOfFiveExponent

const unsigned int llvm::maxPowerOfFiveExponent = maxExponent + maxPrecision - 1

Definition at line 152 of file APFloat.cpp.

◆ maxPowerOfFiveParts

const unsigned int llvm::maxPowerOfFiveParts = 2 + ((maxPowerOfFiveExponent * 815) / (351 * APFloatBase::integerPartWidth))

◆ maxPrecision

const unsigned int llvm::maxPrecision = 113

Definition at line 151 of file APFloat.cpp.

◆ MIPS_NACL_BUNDLE_ALIGN

const unsigned llvm::MIPS_NACL_BUNDLE_ALIGN = 4u
static

◆ MipsInsts

const MCInstrDesc llvm::MipsInsts[]

Referenced by getInstDesc().

◆ MIRCanonicalizerID

char & llvm::MIRCanonicalizerID = MIRCanonicalizer::ID

Definition at line 99 of file MIRCanonicalizerPass.cpp.

◆ MIRPrintingPassID

char & llvm::MIRPrintingPassID = MIRPrintingPass::ID

MIRPrintingPass - this pass prints out the LLVM IR using the MIR serialization format.

Definition at line 62 of file MIRPrintingPass.cpp.

◆ MOStridedAccess

const MachineMemOperand::Flags llvm::MOStridedAccess
static

◆ MOSuppressPair

const MachineMemOperand::Flags llvm::MOSuppressPair
static

◆ NaNL

const char llvm::NaNL[] = "nan"
static

Definition at line 598 of file APFloat.cpp.

◆ NaNU

const char llvm::NaNU[] = "NAN"
static

Definition at line 599 of file APFloat.cpp.

◆ None

const NoneType llvm::None = NoneType::None

Definition at line 24 of file None.h.

Referenced by llvm::opt::ArgList::AddAllArgs(), llvm::vfs::InMemoryFileSystem::addHardLink(), llvm::fuzzerop::anyAggregateType(), llvm::fuzzerop::anyFloatType(), llvm::fuzzerop::anyIntType(), llvm::fuzzerop::anyType(), llvm::fuzzerop::anyVectorType(), llvm::slpvectorizer::BoUpSLP::bestOrder(), llvm::slpvectorizer::BoUpSLP::BoUpSLP(), calculateOffsetDiff(), callsiteIsHot(), changeFCMPPredToAArch64CC(), checkedMulAdd(), checkedMulAddUnsigned(), llvm::TimerGroup::clearAll(), collectBitParts(), llvm::orc::CompileOnDemandLayer::compileWholeModule(), ConstantFoldBinOp(), copyRangeMetadata(), llvm::DWARFFormValue::dump(), llvm::GVNExpression::Expression::dump(), dumpArrayType(), llvm::AMDGPU::HSAMD::MetadataStreamerV2::emitKernel(), ExecGraphViewer(), Failed(), llvm::cflaa::StratifiedSets< InstantiatedValue >::find(), llvm::DWARFDie::find(), llvm::DWARFAbbreviationDeclaration::findAttributeIndex(), findMainViewFileID(), llvm::DWARFDie::findRecursively(), findStringMetadataForLoop(), get64BitArgumentXMMs(), getABIRegCopyCC(), llvm::GlobalValue::getAbsoluteSymbolRange(), llvm::DWARFFormValue::getAsAddress(), llvm::DWARFFormValue::getAsBlock(), llvm::DWARFFormValue::getAsCString(), llvm::DWARFFormValue::getAsCStringOffset(), llvm::DWARFFormValue::getAsReference(), llvm::DWARFFormValue::getAsReferenceUVal(), llvm::DWARFFormValue::getAsSectionedAddress(), llvm::DWARFFormValue::getAsSectionOffset(), llvm::DWARFFormValue::getAsSignedConstant(), llvm::DWARFFormValue::getAsUnsignedConstant(), llvm::DWARFAbbreviationDeclaration::getAttributeValue(), getConstantVRegVal(), getExtractIndex(), getFailureName(), llvm::DWARFAbbreviationDeclaration::getFixedAttributesByteSize(), llvm::dwarf::getFixedFormByteSize(), llvm::xray::InstrumentationMap::getFunctionAddr(), llvm::xray::InstrumentationMap::getFunctionId(), llvm::DWARFDie::getHighPC(), llvm::CodeViewContext::getLinesForExtent(), getLoopEstimatedTripCount(), getMaskedTypeForICmpPair(), llvm::CallBase::getOperandBundle(), getOptionalBoolLoopAttribute(), getOptionalIntLoopAttribute(), llvm::slpvectorizer::BoUpSLP::getORE(), llvm::HvxSelector::getPairVT(), llvm::BlockFrequencyInfoImplBase::getProfileCountFromFreq(), llvm::SCEVExpander::getRelatedExistingExpansion(), getRetOpcode(), getSpecialRegForName(), llvm::JITSymbolFlags::getTargetFlags(), llvm::GlobalValue::GlobalValue(), llvm::DWARFDebugLine::LineTable::hasFileAtIndex(), hasValueBeenRAUWed(), INITIALIZE_PASS(), llvm::cflaa::instantiateExternalAttribute(), llvm::cflaa::instantiateExternalRelation(), llvm::cflaa::instantiateInterfaceValue(), IntersectSignedRange(), IntersectUnsignedRange(), isImpliedByDomCondition(), isImpliedCondAndOr(), isImpliedCondICmps(), isImpliedCondition(), isImpliedCondMatchingImmOperands(), isImpliedCondMatchingOperands(), isImpliedCondOperands(), isObjectDereferencedInBlock(), isShuffle(), llvm::dwarf::LanguageLowerBound(), llvm::orc::JITDylib::legacyLookup(), llvm::coverage::CoverageMapping::load(), makeFollowupLoopID(), llvm::JITSymbolFlags::operator bool(), operator!=(), llvm::VariadicFunction< ResultT, ArgT, Func >::operator()(), llvm::VariadicFunction1< ResultT, Param0T, ArgT, Func >::operator()(), llvm::VariadicFunction2< ResultT, Param0T, Param1T, ArgT, Func >::operator()(), llvm::VariadicFunction3< ResultT, Param0T, Param1T, Param2T, ArgT, Func >::operator()(), llvm::pdb::operator<<(), operator<=(), operator==(), operator>(), operator>=(), llvm::detail::HelperFunctions::parseNumericPrecision(), llvm::yaml::Scanner::printError(), PrintStatisticsJSON(), replaceAllDbgUsesWith(), llvm::Legalizer::runOnMachineFunction(), llvm::IRTranslator::runOnMachineFunction(), selectCallee(), llvm::orc::JITDylib::setGenerator(), llvm::fuzzerop::splitBlockDescriptor(), stripDebugLocFromLoopID(), to_hexString(), translateLocChar(), tryToUnrollAndJamLoop(), unwrap(), UpgradeIntrinsicFunction1(), llvm::InstCombiner::visitAllocSite(), llvm::InstCombiner::visitCallInst(), and widenVec().

◆ offsetsFromUTF8

const UTF32 llvm::offsetsFromUTF8[6]
static
Initial value:
= { 0x00000000UL, 0x00003080UL, 0x000E2080UL,
0x03C82080UL, 0xFA082080UL, 0x82082080UL }

Definition at line 120 of file ConvertUTF.cpp.

◆ OptimizePHIsID

char & llvm::OptimizePHIsID = OptimizePHIs::ID

OptimizePHIs - This pass optimizes machine instruction PHIs to take advantage of opportunities created during DAG legalization.

Definition at line 69 of file OptimizePHIs.cpp.

Referenced by llvm::TargetPassConfig::addMachineSSAOptimization(), and llvm::NVPTXTargetMachine::getTargetTransformInfo().

◆ PartialUnrollingThreshold

cl::opt< unsigned > llvm::PartialUnrollingThreshold

◆ PatchableFunctionID

char & llvm::PatchableFunctionID = PatchableFunction::ID

◆ PeepholeOptimizerID

char & llvm::PeepholeOptimizerID = PeepholeOptimizer::ID

PeepholeOptimizer - This pass performs peephole optimizations - like extension and comparison eliminations.

Definition at line 440 of file PeepholeOptimizer.cpp.

Referenced by llvm::TargetPassConfig::addMachineSSAOptimization(), llvm::AArch64TargetMachine::createPassConfig(), and llvm::NVPTXTargetMachine::getTargetTransformInfo().

◆ PGOMemOPSizeOptID

char& llvm::PGOMemOPSizeOptID = PGOMemOPSizeOptLegacyPass::ID

Definition at line 438 of file PGOMemOPSizeOpt.cpp.

◆ PHIEliminationID

char & llvm::PHIEliminationID = PHIElimination::ID

PHIElimination - This pass eliminates machine instruction PHI nodes by inserting copy instructions.

This destroys SSA information, but is the desired input for some register allocators. This pass is "required" by these register allocator like this: AU.addRequiredID(PHIEliminationID);

Definition at line 127 of file PHIElimination.cpp.

Referenced by llvm::TargetPassConfig::addFastRegAlloc(), llvm::TargetPassConfig::addOptimizedRegAlloc(), llvm::R600TargetMachine::createPassConfig(), and llvm::NVPTXTargetMachine::getTargetTransformInfo().

◆ PostMachineSchedulerID

char & llvm::PostMachineSchedulerID = PostMachineScheduler::ID

◆ PostRAHazardRecognizerID

char & llvm::PostRAHazardRecognizerID = PostRAHazardRecognizer::ID

createPostRAHazardRecognizer - This pass runs the post-ra hazard recognizer.

Definition at line 64 of file PostRAHazardRecognizer.cpp.

Referenced by llvm::R600TargetMachine::createPassConfig().

◆ PostRAMachineSinkingID

char & llvm::PostRAMachineSinkingID = PostRAMachineSinking::ID

This pass perform post-ra machine sink for COPY instructions.

Definition at line 974 of file MachineSink.cpp.

Referenced by llvm::TargetPassConfig::addMachinePasses(), llvm::WebAssemblyTargetMachine::createPassConfig(), llvm::NVPTXTargetMachine::getTargetTransformInfo(), and overridePass().

◆ PostRASchedulerID

char & llvm::PostRASchedulerID = PostRAScheduler::ID

◆ PPCVSXFMAMutateID

PowerPC VSX FMA false char & llvm::PPCVSXFMAMutateID = PPCVSXFMAMutate::ID

Definition at line 393 of file PPCVSXFMAMutate.cpp.

Referenced by llvm::PPCTargetMachine::createPassConfig().

◆ ProcessImplicitDefsID

char & llvm::ProcessImplicitDefsID = ProcessImplicitDefs::ID

ProcessImpicitDefs pass - This pass removes IMPLICIT_DEFs.

Definition at line 52 of file ProcessImplicitDefs.cpp.

Referenced by llvm::TargetPassConfig::addOptimizedRegAlloc(), and llvm::NVPTXTargetMachine::getTargetTransformInfo().

◆ PrologEpilogCodeInserterID

char & llvm::PrologEpilogCodeInserterID = PEI::ID

PrologEpilogCodeInserter - This pass inserts prolog and epilog code, and eliminates abstract frame references.

Definition at line 138 of file PrologEpilogInserter.cpp.

Referenced by llvm::TargetPassConfig::addMachinePasses(), and llvm::NVPTXTargetMachine::getTargetTransformInfo().

◆ QRegList

const MCPhysReg llvm::QRegList[] = { ARM::Q0, ARM::Q1, ARM::Q2, ARM::Q3 }
static

Definition at line 171 of file ARMCallingConv.h.

Referenced by CC_ARM_AAPCS_Custom_Aggregate().

◆ R600ClauseMergePassID

char & llvm::R600ClauseMergePassID = R600ClauseMergePass::ID

Definition at line 83 of file R600ClauseMergePass.cpp.

◆ R600ControlFlowFinalizerID

char & llvm::R600ControlFlowFinalizerID = R600ControlFlowFinalizer::ID

Definition at line 719 of file R600ControlFlowFinalizer.cpp.

◆ R600ExpandSpecialInstrsPassID

char & llvm::R600ExpandSpecialInstrsPassID = R600ExpandSpecialInstrsPass::ID

Definition at line 68 of file R600ExpandSpecialInstrs.cpp.

◆ R600PacketizerID

char & llvm::R600PacketizerID = R600Packetizer::ID

Definition at line 415 of file R600Packetizer.cpp.

◆ R600VectorRegMergerID

char & llvm::R600VectorRegMergerID = R600VectorRegMerger::ID

Definition at line 155 of file R600OptimizeVectorRegisters.cpp.

◆ RABasicID

char & llvm::RABasicID = RABasic::ID

Basic register allocator.

Definition at line 128 of file RegAllocBasic.cpp.

◆ RAGreedyID

char & llvm::RAGreedyID = RAGreedy::ID

Greedy register allocator.

Definition at line 558 of file RegAllocGreedy.cpp.

◆ RegisterCoalescerID

char & llvm::RegisterCoalescerID = RegisterCoalescer::ID

◆ RenameIndependentSubregsID

char & llvm::RenameIndependentSubregsID = RenameIndependentSubregs::ID

This pass detects subregister lanes in a virtual register that are used independently of other lanes and splits them into separate virtual registers.

Definition at line 113 of file RenameIndependentSubregs.cpp.

Referenced by llvm::TargetPassConfig::addOptimizedRegAlloc().

◆ ReuseFrameIndexVals

cl::opt<bool> llvm::ReuseFrameIndexVals

◆ RRegList

const MCPhysReg llvm::RRegList[] = { ARM::R0, ARM::R1, ARM::R2, ARM::R3 }
static

Definition at line 163 of file ARMCallingConv.h.

Referenced by CC_ARM_AAPCS_Custom_Aggregate().

◆ ScalarAddx2

class llvm::RegisterBankInfo llvm::ScalarAddx2

◆ semBogus

const fltSemantics llvm::semBogus = {0, 0, 0, 0}
static

◆ semIEEEdouble

const fltSemantics llvm::semIEEEdouble = {1023, -1022, 53, 64}
static

◆ semIEEEhalf

const fltSemantics llvm::semIEEEhalf = {15, -14, 11, 16}
static

Definition at line 72 of file APFloat.cpp.

Referenced by llvm::APFloatBase::IEEEhalf().

◆ semIEEEquad

const fltSemantics llvm::semIEEEquad = {16383, -16382, 113, 128}
static

Definition at line 75 of file APFloat.cpp.

Referenced by llvm::APFloatBase::IEEEquad().

◆ semIEEEsingle

const fltSemantics llvm::semIEEEsingle = {127, -126, 24, 32}
static

Definition at line 73 of file APFloat.cpp.

Referenced by llvm::APFloatBase::IEEEsingle().

◆ semPPCDoubleDouble

const fltSemantics llvm::semPPCDoubleDouble = {-1, 0, 0, 0}
static

Definition at line 88 of file APFloat.cpp.

Referenced by llvm::APFloatBase::PPCDoubleDouble().

◆ semPPCDoubleDoubleLegacy

const fltSemantics llvm::semPPCDoubleDoubleLegacy
static
Initial value:
= {1023, -1022 + 53,
53 + 53, 128}

Definition at line 114 of file APFloat.cpp.

◆ semX87DoubleExtended

const fltSemantics llvm::semX87DoubleExtended = {16383, -16382, 64, 80}
static

Definition at line 76 of file APFloat.cpp.

Referenced by llvm::APFloatBase::x87DoubleExtended().

◆ ShrinkWrapID

char & llvm::ShrinkWrapID = ShrinkWrap::ID

ShrinkWrap pass. Look for the best place to insert save and restore.

Definition at line 250 of file ShrinkWrap.cpp.

Referenced by llvm::TargetPassConfig::addMachinePasses(), llvm::WebAssemblyTargetMachine::createPassConfig(), and llvm::NVPTXTargetMachine::getTargetTransformInfo().

◆ SIAddIMGInitID

char & llvm::SIAddIMGInitID = SIAddIMGInit::ID

Definition at line 59 of file SIAddIMGInit.cpp.

◆ SIAnnotateControlFlowPassID

char& llvm::SIAnnotateControlFlowPassID

◆ SIDebuggerInsertNopsID

char & llvm::SIDebuggerInsertNopsID = SIDebuggerInsertNops::ID

Definition at line 57 of file SIDebuggerInsertNops.cpp.

◆ SIFixSGPRCopiesID

char & llvm::SIFixSGPRCopiesID = SIFixSGPRCopies::ID

Definition at line 141 of file SIFixSGPRCopies.cpp.

Referenced by llvm::R600TargetMachine::createPassConfig().

◆ SIFixupVectorISelID

char& llvm::SIFixupVectorISelID

◆ SIFixVGPRCopiesID

char & llvm::SIFixVGPRCopiesID = SIFixVGPRCopies::ID

Definition at line 47 of file SIFixVGPRCopies.cpp.

Referenced by llvm::R600TargetMachine::createPassConfig().

◆ SIFixWWMLivenessID

char & llvm::SIFixWWMLivenessID = SIFixWWMLiveness::ID

Definition at line 149 of file SIFixWWMLiveness.cpp.

Referenced by llvm::R600TargetMachine::createPassConfig().

◆ SIFoldOperandsID

char& llvm::SIFoldOperandsID

◆ SIFormMemoryClausesID

char & llvm::SIFormMemoryClausesID = SIFormMemoryClauses::ID

Definition at line 94 of file SIFormMemoryClauses.cpp.

Referenced by llvm::R600TargetMachine::createPassConfig().

◆ SIInsertSkipsPassID

char& llvm::SIInsertSkipsPassID

◆ SIInsertWaitcntsID

char & llvm::SIInsertWaitcntsID = SIInsertWaitcnts::ID

Definition at line 784 of file SIInsertWaitcnts.cpp.

◆ SILoadStoreOptimizerID

char & llvm::SILoadStoreOptimizerID = SILoadStoreOptimizer::ID

Definition at line 228 of file SILoadStoreOptimizer.cpp.

Referenced by llvm::R600TargetMachine::createPassConfig().

◆ SILowerControlFlowID

char & llvm::SILowerControlFlowID = SILowerControlFlow::ID

Definition at line 134 of file SILowerControlFlow.cpp.

Referenced by llvm::R600TargetMachine::createPassConfig().

◆ SILowerI1CopiesID

char & llvm::SILowerI1CopiesID = SILowerI1Copies::ID

Definition at line 408 of file SILowerI1Copies.cpp.

◆ SIMemoryLegalizerID

char & llvm::SIMemoryLegalizerID = SIMemoryLegalizer::ID

Definition at line 1043 of file SIMemoryLegalizer.cpp.

◆ SIModeRegisterID

char& llvm::SIModeRegisterID

Referenced by BlockData::BlockData().

◆ SIOptimizeExecMaskingID

char & llvm::SIOptimizeExecMaskingID = SIOptimizeExecMasking::ID

Definition at line 57 of file SIOptimizeExecMasking.cpp.

Referenced by llvm::R600TargetMachine::createPassConfig().

◆ SIOptimizeExecMaskingPreRAID

char & llvm::SIOptimizeExecMaskingPreRAID = SIOptimizeExecMaskingPreRA::ID

◆ SIPeepholeSDWAID

char & llvm::SIPeepholeSDWAID = SIPeepholeSDWA::ID

Definition at line 217 of file SIPeepholeSDWA.cpp.

Referenced by llvm::R600TargetMachine::createPassConfig().

◆ SIShrinkInstructionsID

char& llvm::SIShrinkInstructionsID

◆ SIWholeQuadModeID

SI Whole Quad false char & llvm::SIWholeQuadModeID = SIWholeQuadMode::ID

Definition at line 219 of file SIWholeQuadMode.cpp.

◆ SIZE_LONG

const int llvm::SIZE_LONG = 4

Definition at line 23 of file AVRMCELFStreamer.h.

Referenced by llvm::AVRMCELFStreamer::EmitValueForModiferKind().

◆ SIZE_WORD

const int llvm::SIZE_WORD = 2

Definition at line 24 of file AVRMCELFStreamer.h.

Referenced by llvm::AVRMCELFStreamer::EmitValueForModiferKind().

◆ SpillPlacementID

char & llvm::SpillPlacementID = SpillPlacement::ID

SpillPlacement analysis.

Suggest optimal placement of spill code between basic blocks.

Definition at line 54 of file SpillPlacement.cpp.

◆ SrcMgr

SourceMgr llvm::SrcMgr

◆ SRegList

const MCPhysReg llvm::SRegList[]
static
Initial value:
= { ARM::S0, ARM::S1, ARM::S2, ARM::S3,
ARM::S4, ARM::S5, ARM::S6, ARM::S7,
ARM::S8, ARM::S9, ARM::S10, ARM::S11,
ARM::S12, ARM::S13, ARM::S14, ARM::S15 }

Definition at line 165 of file ARMCallingConv.h.

Referenced by CC_ARM_AAPCS_Custom_Aggregate().

◆ StackColoringID

char & llvm::StackColoringID = StackColoring::ID

StackSlotColoring - This pass performs stack coloring and merging.

It merges disjoint allocas to reduce the stack size.

Definition at line 518 of file StackColoring.cpp.

Referenced by llvm::TargetPassConfig::addMachineSSAOptimization(), and llvm::NVPTXTargetMachine::getTargetTransformInfo().

◆ StackMapLivenessID

char & llvm::StackMapLivenessID = StackMapLiveness::ID

StackMapLiveness - This pass analyses the register live-out set of stackmap/patchpoint intrinsics and attaches the calculated information to the intrinsic for later emission to the StackMap.

Definition at line 86 of file StackMapLivenessAnalysis.cpp.

Referenced by llvm::TargetPassConfig::addMachinePasses(), llvm::WebAssemblyTargetMachine::createPassConfig(), llvm::NVPTXTargetMachine::getTargetTransformInfo(), and llvm::GCNTargetMachine::getTargetTransformInfo().

◆ StackSlotColoringID

char & llvm::StackSlotColoringID = StackSlotColoring::ID

StackSlotColoring - This pass performs stack slot coloring.

Definition at line 132 of file StackSlotColoring.cpp.

Referenced by llvm::TargetPassConfig::addOptimizedRegAlloc(), llvm::NVPTXTargetMachine::getTargetTransformInfo(), and overridePass().

◆ success

llvm::success

Parameters (see the expansion example below): (the builder, addr, loaded, new_val, ordering, /* OUT.

Definition at line 20 of file AtomicExpandUtils.h.

Referenced by llvm::pdb::DIASession::getLoadAddress().

◆ SwpEnableCopyToPhi

cl::opt<bool> llvm::SwpEnableCopyToPhi("pipeliner-enable-copytophi", cl::ReallyHidden, cl::init(true), cl::ZeroOrMore, cl::desc("Enable CopyToPhi DAG Mutation"))

◆ TailDuplicateID

char & llvm::TailDuplicateID = TailDuplicate::ID

TailDuplicate - Duplicate blocks with unconditional branches into tails of their predecessors.

Definition at line 66 of file TailDuplication.cpp.

Referenced by llvm::TargetPassConfig::addMachineLateOptimization(), llvm::NVPTXTargetMachine::getTargetTransformInfo(), and overridePass().

◆ TimePassesIsEnabled

bool llvm::TimePassesIsEnabled = false

If the user specifies the -time-passes argument on an LLVM tool command line then the value of this boolean will be true, otherwise false.

This is the storage for the -time-passes option.

Definition at line 357 of file Pass.h.

Referenced by llvm::DwarfDebug::beginModule(), llvm::AsmPrinter::doFinalization(), llvm::AsmPrinter::EmitDebugValue(), llvm::AsmPrinter::EmitFunctionBody(), llvm::AsmPrinter::EmitGlobalVariable(), getNumAllocatableRegsForConstraints(), and llvm::RegAllocBase::init().

◆ trailingBytesForUTF8

const char llvm::trailingBytesForUTF8[256]
static
Initial value:
= {
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, 3,3,3,3,3,3,3,3,4,4,4,4,5,5,5,5
}

Definition at line 104 of file ConvertUTF.cpp.

◆ TwoAddressInstructionPassID

char & llvm::TwoAddressInstructionPassID = TwoAddressInstructionPass::ID

TwoAddressInstruction - This pass reduces two-address instructions to use two operands.

This destroys SSA information but it is desired by register allocators.

Definition at line 203 of file TwoAddressInstructionPass.cpp.

Referenced by llvm::TargetPassConfig::addFastRegAlloc(), llvm::TargetPassConfig::addOptimizedRegAlloc(), and llvm::NVPTXTargetMachine::getTargetTransformInfo().

◆ UnpackMachineBundlesID

char & llvm::UnpackMachineBundlesID = UnpackMachineBundles::ID

UnpackMachineBundles - This pass unpack machine instruction bundles.

Definition at line 41 of file MachineInstrBundle.cpp.

◆ UnreachableMachineBlockElimID

char& llvm::UnreachableMachineBlockElimID

UnreachableMachineBlockElimination - This pass removes unreachable machine basic blocks.

Referenced by llvm::HexagonTargetMachine::createPassConfig(), llvm::LiveVariables::getAnalysisUsage(), and llvm::UnreachableBlockElimPass::run().

◆ UseSegmentSetForPhysRegs

cl::opt<bool> llvm::UseSegmentSetForPhysRegs("use-segment-set-for-physregs", cl::Hidden, cl::init(true), cl::desc( "Use segment set for the computation of the live ranges of physregs."))

◆ VerifyDomInfo

bool llvm::VerifyDomInfo = false

Enables verification of dominator trees.

Definition at line 32 of file Dominators.cpp.

Referenced by llvm::PostDominatorTreeWrapperPass::verifyAnalysis(), and llvm::DominatorTreeWrapperPass::verifyAnalysis().

◆ VerifyHSAMetadata

cl::opt<bool> llvm::VerifyHSAMetadata("amdgpu-verify-hsa-metadata", cl::desc("Verify AMDGPU HSA Metadata"))
static

◆ VerifyLoopInfo

bool llvm::VerifyLoopInfo = false

Enables verification of loop info.

Definition at line 48 of file LoopInfo.cpp.

Referenced by llvm::LoopInfoWrapperPass::verifyAnalysis().

◆ VerifyMemorySSA

bool llvm::VerifyMemorySSA = false

◆ VirtRegRewriterID

char & llvm::VirtRegRewriterID = VirtRegRewriter::ID

VirtRegRewriter pass.

Rewrite virtual registers to physical registers as assigned in VirtRegMap.

Definition at line 213 of file VirtRegMap.cpp.

Referenced by llvm::TargetPassConfig::addOptimizedRegAlloc().

◆ XRayInstrumentationID

char & llvm::XRayInstrumentationID = XRayInstrumentation::ID

This pass inserts the XRay instrumentation sleds if they are supported by the target platform.

Definition at line 244 of file XRayInstrumentation.cpp.

Referenced by llvm::TargetPassConfig::addMachinePasses().